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>