File Annotation

Not logged in
dcdd144598 2011-02-23        kinaba: #ifndef _KILIB_APP_H_
dcdd144598 2011-02-23        kinaba: #define _KILIB_APP_H_
dcdd144598 2011-02-23        kinaba: #include "types.h"
dcdd144598 2011-02-23        kinaba: #include "log.h"
dcdd144598 2011-02-23        kinaba: #ifndef __ccdoc__
dcdd144598 2011-02-23        kinaba: namespace ki {
dcdd144598 2011-02-23        kinaba: #endif
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: //=========================================================================
dcdd144598 2011-02-23        kinaba: //@{ @pkg ki.Core //@}
dcdd144598 2011-02-23        kinaba: //@{
dcdd144598 2011-02-23        kinaba: //	アプリケーション全体の統括
dcdd144598 2011-02-23        kinaba: //
dcdd144598 2011-02-23        kinaba: //	アプリ起動/終了用処理を担当します。
dcdd144598 2011-02-23        kinaba: //	旧kilibと違って、ユーザー側のアプリケーションクラスを
dcdd144598 2011-02-23        kinaba: //	ここから派生させることは出来ません。ユーザーのコードは、
dcdd144598 2011-02-23        kinaba: //	必ず kmain() というグローバル関数から実行開始されます。
dcdd144598 2011-02-23        kinaba: //	このAppクラス自体は、主にHINSTANCEの管理を行うだけ。
dcdd144598 2011-02-23        kinaba: //@}
dcdd144598 2011-02-23        kinaba: //=========================================================================
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: class App
dcdd144598 2011-02-23        kinaba: {
dcdd144598 2011-02-23        kinaba: public:
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	enum imflag { CTL=1, COM=2, OLE=4 };
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{
dcdd144598 2011-02-23        kinaba: 	//	種々のモジュールを初期化する
dcdd144598 2011-02-23        kinaba: 	//
dcdd144598 2011-02-23        kinaba: 	//	これで初期化しておくと、App終了時に自動で
dcdd144598 2011-02-23        kinaba: 	//	終了処理が行われるので簡単便利でございます。
dcdd144598 2011-02-23        kinaba: 	//	@param what CTL(コモンコントロール)、COM、OLE
dcdd144598 2011-02-23        kinaba: 	//@}
dcdd144598 2011-02-23        kinaba: 	void InitModule( imflag what );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ プロセス強制終了 //@}
dcdd144598 2011-02-23        kinaba: 	void Exit( int code );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ リソース //@}
dcdd144598 2011-02-23        kinaba: 	HACCEL LoadAccel( LPCTSTR name );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ リソース //@}
dcdd144598 2011-02-23        kinaba: 	HACCEL LoadAccel( UINT id );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ リソース //@}
dcdd144598 2011-02-23        kinaba: 	HBITMAP LoadBitmap( LPCTSTR name );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ リソース //@}
dcdd144598 2011-02-23        kinaba: 	HBITMAP LoadBitmap( UINT id );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ リソース(OBM_XXXX) //@}
dcdd144598 2011-02-23        kinaba: 	HBITMAP LoadOemBitmap( LPCTSTR obm );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ リソース //@}
dcdd144598 2011-02-23        kinaba: 	HCURSOR LoadCursor( LPCTSTR name );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ リソース //@}
dcdd144598 2011-02-23        kinaba: 	HCURSOR LoadCursor( UINT id );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ リソース(IDC_XXXX) //@}
dcdd144598 2011-02-23        kinaba: 	HCURSOR LoadOemCursor( LPCTSTR idc );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ リソース //@}
dcdd144598 2011-02-23        kinaba: 	HICON LoadIcon( LPCTSTR name );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ リソース //@}
dcdd144598 2011-02-23        kinaba: 	HICON LoadIcon( UINT id );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ リソース(IDI_XXXX) //@}
dcdd144598 2011-02-23        kinaba: 	HICON LoadOemIcon( LPCTSTR idi );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ リソース //@}
dcdd144598 2011-02-23        kinaba: 	HMENU LoadMenu( LPCTSTR name );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ リソース //@}
dcdd144598 2011-02-23        kinaba: 	HMENU LoadMenu( UINT id );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ リソース //@}
dcdd144598 2011-02-23        kinaba: 	int LoadString( UINT id, LPTSTR buf, int siz );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: public:
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ インスタンスハンドル //@}
dcdd144598 2011-02-23        kinaba: 	HINSTANCE hinst() const;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	//@{ Windowsのバージョン //@}
dcdd144598 2011-02-23        kinaba: 	static const OSVERSIONINFO& osver();
dcdd144598 2011-02-23        kinaba: 	static bool isWin95();
dcdd144598 2011-02-23        kinaba: 	static bool isNT();
dcdd144598 2011-02-23        kinaba: 	static bool isNewTypeWindows();
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: private:
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	App();
dcdd144598 2011-02-23        kinaba: 	~App();
dcdd144598 2011-02-23        kinaba: 	void SetExitCode( int code );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: private:
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	int             exitcode_;
dcdd144598 2011-02-23        kinaba: 	ulong           loadedModule_;
dcdd144598 2011-02-23        kinaba: 	const HINSTANCE hInst_;
dcdd144598 2011-02-23        kinaba: 	static App*     pUniqueInstance_;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: private:
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	friend void APIENTRY Startup();
dcdd144598 2011-02-23        kinaba: 	friend inline App& app();
dcdd144598 2011-02-23        kinaba: 	NOCOPY(App);
dcdd144598 2011-02-23        kinaba: };
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: //-------------------------------------------------------------------------
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: //@{ 唯一のアプリ情報オブジェクトを返す //@}
dcdd144598 2011-02-23        kinaba: inline App& app()
dcdd144598 2011-02-23        kinaba: 	{ return *App::pUniqueInstance_; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline HACCEL App::LoadAccel( LPCTSTR name )
dcdd144598 2011-02-23        kinaba: 	{ return ::LoadAccelerators( hInst_, name ); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline HACCEL App::LoadAccel( UINT id )
dcdd144598 2011-02-23        kinaba: 	{ return ::LoadAccelerators( hInst_, MAKEINTRESOURCE(id) ); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline HBITMAP App::LoadBitmap( LPCTSTR name )
dcdd144598 2011-02-23        kinaba: 	{ return ::LoadBitmap( hInst_, name ); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline HBITMAP App::LoadBitmap( UINT id )
dcdd144598 2011-02-23        kinaba: 	{ return ::LoadBitmap( hInst_, MAKEINTRESOURCE(id) ); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline HBITMAP App::LoadOemBitmap( LPCTSTR obm )
dcdd144598 2011-02-23        kinaba: 	{ return ::LoadBitmap( NULL, obm ); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline HCURSOR App::LoadCursor( LPCTSTR name )
dcdd144598 2011-02-23        kinaba: 	{ return ::LoadCursor( hInst_, name ); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline HCURSOR App::LoadCursor( UINT id )
dcdd144598 2011-02-23        kinaba: 	{ return ::LoadCursor( hInst_, MAKEINTRESOURCE(id) ); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline HCURSOR App::LoadOemCursor( LPCTSTR idc )
dcdd144598 2011-02-23        kinaba: 	{ return ::LoadCursor( NULL, idc ); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline HICON App::LoadIcon( LPCTSTR name )
dcdd144598 2011-02-23        kinaba: 	{ return ::LoadIcon( hInst_, name ); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline HICON App::LoadIcon( UINT id )
dcdd144598 2011-02-23        kinaba: 	{ return ::LoadIcon( hInst_, MAKEINTRESOURCE(id) ); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline HICON App::LoadOemIcon( LPCTSTR idi )
dcdd144598 2011-02-23        kinaba: 	{ return ::LoadIcon( NULL, idi ); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline HMENU App::LoadMenu( LPCTSTR name )
dcdd144598 2011-02-23        kinaba: 	{ return ::LoadMenu( hInst_, name ); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline HMENU App::LoadMenu( UINT id )
dcdd144598 2011-02-23        kinaba: 	{ return ::LoadMenu( hInst_, MAKEINTRESOURCE(id) ); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline int App::LoadString( UINT id, LPTSTR buf, int siz )
dcdd144598 2011-02-23        kinaba: 	{ return ::LoadString( hInst_, id, buf, siz ); }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: inline HINSTANCE App::hinst() const
dcdd144598 2011-02-23        kinaba: 	{ return hInst_; }
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: //=========================================================================
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: }      // namespace ki
dcdd144598 2011-02-23        kinaba: #endif // _KILIB_APP_H_