[BACK]Return to asir32gui.cpp CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / windows / asir32gui

Annotation of OpenXM_contrib2/windows/asir32gui/asir32gui.cpp, Revision 1.1.1.1

1.1       noro        1: // asir32gui.cpp : アプリケーション用クラスの機能定義を行います。
                      2: //
                      3:
                      4: #include "stdafx.h"
                      5: #include "asir32gui.h"
                      6:
                      7: #include "MainFrm.h"
                      8: #include "asir32guiDoc.h"
                      9: #include "Asir32guiView.h"
                     10: #include "FatalDialog.h"
                     11:
                     12: #ifdef _DEBUG
                     13: #define new DEBUG_NEW
                     14: #undef THIS_FILE
                     15: static char THIS_FILE[] = __FILE__;
                     16: #endif
                     17:
                     18: extern "C" {
                     19:        extern HANDLE hNotify;
                     20:        extern HANDLE hNotify_Ack;
                     21:        extern int asir_main_window;
                     22:        BOOL Init_IO(char *);
                     23:        void read_and_insert();
                     24: }
                     25:
                     26: /////////////////////////////////////////////////////////////////////////////
                     27: // CAsir32guiApp
                     28:
                     29: BEGIN_MESSAGE_MAP(CAsir32guiApp, CWinApp)
                     30:        //{{AFX_MSG_MAP(CAsir32guiApp)
                     31:        ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
                     32:        //}}AFX_MSG_MAP
                     33:        // 標準のファイル基本ドキュメント コマンド
                     34:        // 標準の印刷セットアップ コマンド
                     35: //     ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
                     36: END_MESSAGE_MAP()
                     37:
                     38: /////////////////////////////////////////////////////////////////////////////
                     39: // CAsir32guiApp クラスの構築
                     40:
                     41: CAsir32guiApp::CAsir32guiApp()
                     42: {
                     43:        // TODO: この位置に構築用コードを追加してください。
                     44:        // ここに InitInstance 中の重要な初期化処理をすべて記述してください。
                     45:        char errmsg[BUFSIZ];
                     46:
                     47:        if ( Init_IO(errmsg) == FALSE ) {
                     48:                CFatalDialog fatalDlg;
                     49:                fatalDlg.m_errmsg = errmsg;
                     50:                fatalDlg.DoModal();
                     51:                exit(0);
                     52:        }
                     53: }
                     54:
                     55: /////////////////////////////////////////////////////////////////////////////
                     56: // 唯一の CAsir32guiApp オブジェクト
                     57:
                     58: CAsir32guiApp theApp;
                     59:
                     60:
                     61: /////////////////////////////////////////////////////////////////////////////
                     62: // CAsir32guiApp クラスの初期化
                     63:
                     64: BOOL CAsir32guiApp::InitInstance()
                     65: {
                     66:        // 標準的な初期化処理
                     67:        // もしこれらの機能を使用せず、実行ファイルのサイズを小さく
                     68:        // したければ以下の特定の初期化ルーチンの中から不必要なもの
                     69:        // を削除してください。
                     70:
                     71: #ifdef _AFXDLL
                     72:        Enable3dControls();                     // 共有 DLL の中で MFC を使用する場合にはここをコールしてください。
                     73: #else
                     74:        Enable3dControlsStatic();       // MFC と静的にリンクしている場合にはここをコールしてください。
                     75: #endif
                     76:
                     77:        LoadStdProfileSettings();  // 標準の INI ファイルのオプションをロードします (MRU を含む)
                     78:        // アプリケーション用のドキュメント テンプレートを登録します。ドキュメント テンプレート
                     79:        // はドキュメント、フレーム ウィンドウとビューを結合するために機能します。
                     80:
                     81:        CSingleDocTemplate* pDocTemplate;
                     82:        pDocTemplate = new CSingleDocTemplate(
                     83:                asir_main_window?IDR_MAINFRAME:IDR_DEBUGFRAME,
                     84:                RUNTIME_CLASS(CAsir32guiDoc),
                     85:                RUNTIME_CLASS(CMainFrame),       // メイン SDI フレーム ウィンドウ
                     86:                RUNTIME_CLASS(CAsir32guiView));
                     87:        AddDocTemplate(pDocTemplate);
                     88:
                     89:        // DDE、file open など標準のシェル コマンドのコマンドラインを解析します。
                     90:        CCommandLineInfo cmdInfo;
                     91: //     ParseCommandLine(cmdInfo);
                     92:
                     93:        // コマンドラインでディスパッチ コマンドを指定します。
                     94:        if (!ProcessShellCommand(cmdInfo))
                     95:                return FALSE;
                     96:
                     97:        return TRUE;
                     98: }
                     99:
                    100: /////////////////////////////////////////////////////////////////////////////
                    101: // アプリケーションのバージョン情報で使われる CAboutDlg ダイアログ
                    102:
                    103: class CAboutDlg : public CDialog
                    104: {
                    105: public:
                    106:        CAboutDlg();
                    107:
                    108: // ダイアログ データ
                    109:        //{{AFX_DATA(CAboutDlg)
                    110:        enum { IDD = IDD_ABOUTBOX };
                    111:        //}}AFX_DATA
                    112:
                    113:        // ClassWizard は仮想関数を生成しオーバーライドします。
                    114:        //{{AFX_VIRTUAL(CAboutDlg)
                    115: protected:
                    116:        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV のサポート
                    117:        //}}AFX_VIRTUAL
                    118:
                    119: // Implementation
                    120: protected:
                    121:        //{{AFX_MSG(CAboutDlg)
                    122:                // メッセージ ハンドラはありません。
                    123:        //}}AFX_MSG
                    124:        DECLARE_MESSAGE_MAP()
                    125: };
                    126:
                    127: CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
                    128: {
                    129:        //{{AFX_DATA_INIT(CAboutDlg)
                    130:        //}}AFX_DATA_INIT
                    131: }
                    132:
                    133: void CAboutDlg::DoDataExchange(CDataExchange* pDX)
                    134: {
                    135:        CDialog::DoDataExchange(pDX);
                    136:        //{{AFX_DATA_MAP(CAboutDlg)
                    137:        //}}AFX_DATA_MAP
                    138: }
                    139:
                    140: BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
                    141:        //{{AFX_MSG_MAP(CAboutDlg)
                    142:                // メッセージ ハンドラがありません。
                    143:        //}}AFX_MSG_MAP
                    144: END_MESSAGE_MAP()
                    145:
                    146: // ダイアログを実行するためのアプリケーション コマンド
                    147: void CAsir32guiApp::OnAppAbout()
                    148: {
                    149:        CAboutDlg aboutDlg;
                    150:        aboutDlg.DoModal();
                    151: }
                    152:
                    153: /////////////////////////////////////////////////////////////////////////////
                    154: // CAsir32guiApp コマンド
                    155:
                    156: BOOL CAsir32guiApp::OnIdle(LONG lCount)
                    157: {
                    158:        // TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください
                    159:
                    160:        if ( CWinApp::OnIdle(lCount) )
                    161:                return TRUE;
                    162:        while ( 1 ) {
                    163:                int retcode = ::MsgWaitForMultipleObjects(1,&hNotify,FALSE,-1,QS_ALLINPUT);
                    164:                retcode -= WAIT_OBJECT_0;
                    165:                if ( retcode == 0 ) {
                    166:                        ResetEvent(hNotify);
                    167:                        SetEvent(hNotify_Ack);
                    168:                        read_and_insert();
                    169:                } else
                    170:                        break;
                    171:        }
                    172:        return TRUE;
                    173: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>