5128eecc9f 2011-02-23 kinaba: //--- K.I.LIB --- 5128eecc9f 2011-02-23 kinaba: // kl_app.h : application class for K.I.LIB 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #ifndef AFX_KIAPP_H__AC24C8AF_2187_4873_83E8_AB4F2325017B__INCLUDED_ 5128eecc9f 2011-02-23 kinaba: #define AFX_KIAPP_H__AC24C8AF_2187_4873_83E8_AB4F2325017B__INCLUDED_ 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ 5128eecc9f 2011-02-23 kinaba: // �ėp�A�v���P�[�V�����N���X 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: class kiApp 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: friend kiApp* app(); 5128eecc9f 2011-02-23 kinaba: friend void kilib_startUp(); 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: public: //-- �O�����C���^�[�t�F�C�X -------------------------- 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // �C���X�^���X 5128eecc9f 2011-02-23 kinaba: HINSTANCE inst() const 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: return m_hInst; 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // ���C���E�C���h�E 5128eecc9f 2011-02-23 kinaba: HWND mainhwnd() const 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: return m_pMainWnd ? m_pMainWnd->hwnd() : NULL; 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: kiWindow* mainwnd() const 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: return m_pMainWnd; 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: void setMainWnd( kiWindow* wnd ) 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: m_pMainWnd = wnd; 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // �n�r�o�[�W���� 5128eecc9f 2011-02-23 kinaba: const OSVERSIONINFO& osver() const 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: return m_OsVer; 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // ���b�Z�[�W�{�b�N�X 5128eecc9f 2011-02-23 kinaba: int msgBox( const char* msg, const char* caption=NULL, UINT type=MB_OK ) 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: return ::MessageBox( mainhwnd(), msg, caption, type ); 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // �V�F���̃A���P�[�^�Ń�������� 5128eecc9f 2011-02-23 kinaba: void shellFree( void* ptr ) const 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: m_pShellAlloc->Free( ptr ); 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // ���z�R�[�h vKey �̃L�[�͉�����Ă��邩�H 5128eecc9f 2011-02-23 kinaba: static bool keyPushed( int vKey ) 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: return( 0!=(::GetAsyncKeyState( vKey )>>15) ); 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // CommonControl / OLE ������ 5128eecc9f 2011-02-23 kinaba: void shellInit() 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: if( !m_bShellInit ) 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: ::InitCommonControls(); 5128eecc9f 2011-02-23 kinaba: ::OleInitialize( NULL ); 5128eecc9f 2011-02-23 kinaba: m_bShellInit = true; 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #ifdef KILIB_LOG 5128eecc9f 2011-02-23 kinaba: void log( const char* str ) 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: if( !m_log.isOpened() ) 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: kiPath logtxt( kiPath::Exe ); logtxt += "log.txt"; 5128eecc9f 2011-02-23 kinaba: m_log.open( logtxt, false ); 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: m_log.write( str, ki_strlen(str) ); 5128eecc9f 2011-02-23 kinaba: m_log.write( "\r\n", 2 ); 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: protected: //-- �h���N���X���� ----------------------------- 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // �N�����ɌĂ����B�K�{�B 5128eecc9f 2011-02-23 kinaba: virtual void run( kiCmdParser& cmd ) = 0; 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: protected: //-- �������� ----------------------------------- 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: kiApp() 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: st_pApp = this; 5128eecc9f 2011-02-23 kinaba: m_hInst = ::GetModuleHandle( NULL ); 5128eecc9f 2011-02-23 kinaba: m_pMainWnd = NULL; 5128eecc9f 2011-02-23 kinaba: m_bShellInit = false; 5128eecc9f 2011-02-23 kinaba: m_OsVer.dwOSVersionInfoSize = sizeof( m_OsVer ); 5128eecc9f 2011-02-23 kinaba: ::GetVersionEx( &m_OsVer ); 5128eecc9f 2011-02-23 kinaba: ::SHGetMalloc( &m_pShellAlloc ); 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: protected: 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: virtual ~kiApp() 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: m_pShellAlloc->Release(); 5128eecc9f 2011-02-23 kinaba: if( m_bShellInit ) 5128eecc9f 2011-02-23 kinaba: ::OleUninitialize(); 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: private: 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: HINSTANCE m_hInst; 5128eecc9f 2011-02-23 kinaba: IMalloc* m_pShellAlloc; 5128eecc9f 2011-02-23 kinaba: bool m_bShellInit; 5128eecc9f 2011-02-23 kinaba: OSVERSIONINFO m_OsVer; 5128eecc9f 2011-02-23 kinaba: kiWindow* m_pMainWnd; 5128eecc9f 2011-02-23 kinaba: static kiApp* st_pApp; 5128eecc9f 2011-02-23 kinaba: #ifdef KILIB_LOG 5128eecc9f 2011-02-23 kinaba: kiFile m_log; 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: }; 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #endif