File Annotation

Not logged in
5128eecc9f 2011-02-23        kinaba: #ifndef AFX_KIUTIL_H__D2E1F380_468E_11D3_8D94_ECF8CA9E4339__INCLUDED_
5128eecc9f 2011-02-23        kinaba: #define AFX_KIUTIL_H__D2E1F380_468E_11D3_8D94_ECF8CA9E4339__INCLUDED_
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: // ちょっと便利かも知れない関数群「kiutil」
5128eecc9f 2011-02-23        kinaba: //
5128eecc9f 2011-02-23        kinaba: // VC++ のツリーでひとまとめで表示させるためにクラス化
5128eecc9f 2011-02-23        kinaba: // しただけで、実は全部 public & static だったりする。(^^;
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: class kiutil
5128eecc9f 2011-02-23        kinaba: {
5128eecc9f 2011-02-23        kinaba: public:
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: // タイムスタンプ
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	// WIN( 0.1 millisec from 1601.1.1 )
5128eecc9f 2011-02-23        kinaba: 	static void timeSet( const char* fname, FILETIME* pft );
5128eecc9f 2011-02-23        kinaba: 	// DOS( 0-4:day 5-8:month 9-15:year+1980, 0-4:sec/2 5-10:min 11-15:hour )
5128eecc9f 2011-02-23        kinaba: 	static void timeSet( const char* fname, WORD date, WORD time );
5128eecc9f 2011-02-23        kinaba: 	// UNIX( sec from 1970.1.1 )
5128eecc9f 2011-02-23        kinaba: 	static void timeSet( const char* fname, DWORD sec );
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: // パス文字列
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	// ↓最初に必ずコレを呼んでおくこと!
5128eecc9f 2011-02-23        kinaba: 	static void pathInit();
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	// 相対パスを与えると [不正文字除去],[複数階層makeDir] を行う
5128eecc9f 2011-02-23        kinaba: 	static char* pathMake( char* path );
5128eecc9f 2011-02-23        kinaba: 	// 絶対パスを与えると [複数階層makeDir]
5128eecc9f 2011-02-23        kinaba: 	static void pathMakeAbs( char* path );
5128eecc9f 2011-02-23        kinaba: 	// yに最後の\, dに最後の. の位置を入れる
5128eecc9f 2011-02-23        kinaba: 	static void pathSplit( const char* path, int* y, int* d );
5128eecc9f 2011-02-23        kinaba: 	// 拡張子
5128eecc9f 2011-02-23        kinaba: 	static const char* pathExt( const char* path );
5128eecc9f 2011-02-23        kinaba: 	// ファイル名
5128eecc9f 2011-02-23        kinaba: 	static const char* pathName( const char* path );
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: // window
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	// 強制的に前面へ。( kazubon氏の TClock のソースより。感謝! )
5128eecc9f 2011-02-23        kinaba: 	static void wndFront( HWND wnd );
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: // その他
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	// fgets改訂版(CR/LF/CRLFを改行と認定。改行コードは含めない文字列を返す)
5128eecc9f 2011-02-23        kinaba: 	static char* getline( char* str, int size, FILE* fp );
5128eecc9f 2011-02-23        kinaba: 	// 拡張子変換
5128eecc9f 2011-02-23        kinaba: 	static void getOriginalName( char* nw, const char* od, char* ext );
5128eecc9f 2011-02-23        kinaba: 	// 安全なところに移ってからLoadLibrary
5128eecc9f 2011-02-23        kinaba: 	static HMODULE safepathLoadLibrary(LPCTSTR lpFileName)
5128eecc9f 2011-02-23        kinaba: 	{
5128eecc9f 2011-02-23        kinaba: 		kiPath original_cur(kiPath::Cur), sys(kiPath::Sys);
5128eecc9f 2011-02-23        kinaba: 		::SetCurrentDirectory(sys);
5128eecc9f 2011-02-23        kinaba: 		HMODULE han = ::LoadLibrary(lpFileName);
5128eecc9f 2011-02-23        kinaba: 		::SetCurrentDirectory(original_cur);
5128eecc9f 2011-02-23        kinaba: 		return han;
5128eecc9f 2011-02-23        kinaba: 	}
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: // 変数
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: private:
5128eecc9f 2011-02-23        kinaba: 	static char lb[256];
5128eecc9f 2011-02-23        kinaba: };
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: #endif