Develop and Download Open Source Software

Browse Subversion Repository

Contents of /CopalPro/CopalPro.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations) (download) (as text)
Thu Jul 28 09:05:52 2011 UTC (12 years, 9 months ago) by kaityo
File MIME type: text/x-c++src
File size: 3321 byte(s)
First Commit
1 //---------------------------------------------------------------------------
2 #include <vcl.h>
3 #include "Main.h"
4 #pragma hdrstop
5 USEFORM("Main.cpp", FMain);
6 USEFORM("Base.cpp", FBase);
7 USEFORM("Script.cpp", FScript);
8 USEFORM("Result.cpp", FResult);
9 USEFORM("StdError.cpp", FStdError);
10 USEFORM("Version.cpp", FVersion);
11 USEFORM("LangConfig.cpp", FLangConfig);
12 USEFORM("Config.cpp", FConfig);
13 USEFORM("NewLang.cpp", FNewLang);
14 USEFORM("Dummy.cpp", FCopalProMain);
15 USEFORM("OpenDir.cpp", FOpenDir);
16 USEFORM("Editor.cpp", FEditor);
17 USEFORM("OpenFile.cpp", FOpenFile);
18 //---------------------------------------------------------------------------
19 WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR lpCmdLine, int) {
20
21 //もしディレクトリ情報が無かったらカレントディレクトリも取得
22 AnsiString FileName = lpCmdLine;
23 if (FileName != "" && ExtractFileDir(FileName)=="") {
24 FileName = GetCurrentDir() + "\\"+FileName;
25 }
26
27 FileName = FileName.Trim();
28 //ファイル名が""で囲まれていたら削除する。
29 if(FileName.Length() > 2 && FileName.AnsiPos("\"")!=0) {
30 FileName = FileName.SubString(2,FileName.Length()-2);
31 }
32
33 //二重常駐の禁止処理
34 CreateMutex(NULL, TRUE, "CopalProMutex");
35 DWORD err = GetLastError();
36
37 if (err == ERROR_ALREADY_EXISTS) {
38 //もしすでに常駐してたらそいつにメッセージを投げて、自分は死ぬ
39 HWND prev = FindWindow("TFCopalProMain",NULL);
40 if(prev!=NULL) {
41 //引数をGlobal Atomとして追加
42 ATOM atom = GlobalAddAtom(FileName.c_str());
43 if (PostMessage(prev,WM_FILEPOST,(int)atom,0)==0) {
44 MessageBox(NULL,"Posting Message was failed.","CopalPro",MB_OK);
45 }
46 return 0;
47 }else {
48 //mutexが設定されているのにウィンドウが見つからない(強制終了の疑い)
49 const char *msg = "前回、正常に終了していない可能性があります。\n"
50 "Perlなどのプロセスが残っている可能性がありますので、\n"
51 "タスクマネージャから削除するようにしてください。\n"
52 "また、なるべく強制終了をせず、エスケープキーを利用するように\n"
53 "してください。";
54 MessageBox(NULL,msg,"CopalPro",MB_OK);
55 }
56 }
57 try {
58 Application->Initialize();
59 Application->Title = "Copal 2";
60 Application->CreateForm(__classid(TFMain), &FMain);
61 Application->CreateForm(__classid(TFBase), &FBase);
62 Application->CreateForm(__classid(TFScript), &FScript);
63 Application->CreateForm(__classid(TFResult), &FResult);
64 Application->CreateForm(__classid(TFStdError), &FStdError);
65 Application->CreateForm(__classid(TFLangConfig), &FLangConfig);
66 Application->CreateForm(__classid(TFConfig), &FConfig);
67 Application->CreateForm(__classid(TFNewLang), &FNewLang);
68 Application->CreateForm(__classid(TFCopalProMain), &FCopalProMain);
69 Application->CreateForm(__classid(TFOpenDir), &FOpenDir);
70 Application->CreateForm(__classid(TFOpenFile), &FOpenFile);
71 Application->CreateForm(__classid(TFEditor), &FEditor);
72 FMain->Init(FileName);
73 Application->Run();
74 } catch (Exception &exception) {
75 Application->ShowException(&exception);
76 }
77 return 0;
78 }
79 //---------------------------------------------------------------------------

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