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>