[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     ! 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>