Develop and Download Open Source Software

Browse CVS Repository

Contents of /enbanfukusyaya/EnbanFukusyaYa/Win32/EnbanFukusya.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (show annotations) (download) (as text)
Sat Jul 12 14:58:24 2008 UTC (15 years, 9 months ago) by bananajinn
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +77 -0 lines
File MIME type: text/x-c++src
*** empty log message ***

1 /* 円盤複写屋
2 * Copyright (C) 2004 Kagetani Hideto
3 */
4 // EnbanFukusya.cpp : アプリケーション用クラスの定義を行います。
5 //
6
7 #include "stdafx.h"
8 #include "EnbanFukusya.h"
9 #include "EnbanFukusyaDlg.h"
10
11 #ifdef _DEBUG
12 #define new DEBUG_NEW
13 #undef THIS_FILE
14 static char THIS_FILE[] = __FILE__;
15 #endif
16
17 /////////////////////////////////////////////////////////////////////////////
18 // CEnbanFukusyaApp
19
20 BEGIN_MESSAGE_MAP(CEnbanFukusyaApp, CWinApp)
21 //{{AFX_MSG_MAP(CEnbanFukusyaApp)
22 // メモ - ClassWizard はこの位置にマッピング用のマクロを追加または削除します。
23 // この位置に生成されるコードを編集しないでください。
24 //}}AFX_MSG
25 ON_COMMAND(ID_HELP, CWinApp::OnHelp)
26 END_MESSAGE_MAP()
27
28 /////////////////////////////////////////////////////////////////////////////
29 // CEnbanFukusyaApp クラスの構築
30
31 CEnbanFukusyaApp::CEnbanFukusyaApp()
32 {
33 // TODO: この位置に構築用のコードを追加してください。
34 // ここに InitInstance 中の重要な初期化処理をすべて記述してください。
35 }
36
37 /////////////////////////////////////////////////////////////////////////////
38 // 唯一の CEnbanFukusyaApp オブジェクト
39
40 CEnbanFukusyaApp theApp;
41
42 /////////////////////////////////////////////////////////////////////////////
43 // CEnbanFukusyaApp クラスの初期化
44
45 BOOL CEnbanFukusyaApp::InitInstance()
46 {
47 // 標準的な初期化処理
48 // もしこれらの機能を使用せず、実行ファイルのサイズを小さくしたけ
49 // れば以下の特定の初期化ルーチンの中から不必要なものを削除して
50 // ください。
51
52 #ifdef _AFXDLL
53 Enable3dControls(); // 共有 DLL 内で MFC を使う場合はここをコールしてください。
54 #else
55 Enable3dControlsStatic(); // MFC と静的にリンクする場合はここをコールしてください。
56 #endif
57
58 CEnbanFukusyaDlg dlg;
59 ParseArgument(&dlg);
60
61 m_pMainWnd = &dlg;
62 int nResponse = dlg.DoModal();
63 if (nResponse == IDOK)
64 {
65 // TODO: ダイアログが <OK> で消された時のコードを
66 // 記述してください。
67 }
68 else if (nResponse == IDCANCEL)
69 {
70 // TODO: ダイアログが <キャンセル> で消された時のコードを
71 // 記述してください。
72 }
73
74 // ダイアログが閉じられてからアプリケーションのメッセージ ポンプを開始するよりは、
75 // アプリケーションを終了するために FALSE を返してください。
76 return FALSE;
77 }
78
79 void CEnbanFukusyaApp::ParseArgument(CDialog *pDlg)
80 {
81 int i;
82 char *pCmdLine = strdup(::GetCommandLine());
83 int argc = 0;
84 char **argv = NULL;
85 char *p, *wp;
86 const char *pReader = NULL;
87 const char *pWriter = NULL;
88
89 if(pDlg == NULL){
90 return;
91 }
92 if(pCmdLine == NULL){
93 return;
94 }
95
96 /*
97 * コマンドラインを argv 配列にする
98 */
99 p = pCmdLine;
100 while(*p != '\0'){
101 if(*p == '\"'){
102 wp = strchr(p+1, '\"');
103 if(wp != NULL){
104 *wp = '\0';
105 wp++;
106 p++;
107 }
108 else{
109 wp = p+strlen(p);
110 }
111 }
112 else{
113 wp = strchr(p, ' ');
114 if(wp != NULL){
115 *wp = '\0';
116 wp++;
117 }
118 else{
119 wp = p+strlen(p);
120 }
121 }
122 argv = (char **)realloc((void *)argv, sizeof(char *)*(argc+1));
123 argv[argc] = p;
124 argc++;
125 p = wp;
126 while(*p == ' ') p++;
127 }
128 if(argv == NULL){
129 free(pCmdLine);
130 }
131
132 /*
133 * 引数解析
134 */
135 for(i=1; i<argc; i++){
136 if(pReader == NULL){
137 pReader = argv[i];
138 }
139 else if(pWriter == NULL){
140 pWriter = argv[i];
141 }
142 }
143 if(pReader != NULL){
144 ((CEnbanFukusyaDlg *)pDlg)->SetArgReader(pReader);
145 }
146 if(pWriter != NULL){
147 ((CEnbanFukusyaDlg *)pDlg)->SetArgWriter(pWriter);
148 }
149
150 free(pCmdLine);
151 free(argv);
152 }

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26