OSDN Git Service

・ExternalBoardManager が大きくなったので分割。
[gikonavigoeson/gikonavi.git] / gikoNavi.dpr
1 program gikoNavi;
2
3 {%ToDo 'gikoNavi.todo'}
4
5 uses
6   Windows,
7   SysUtils,
8   Forms,
9   Messages,
10   MainForm in 'MainForm.pas' {MainWindow},
11   Giko in 'Giko.pas' {GikoForm},
12   Splash in 'Splash.pas' {SplashWindow},
13   About in 'About.pas' {AboutDialog},
14   Option in 'Option.pas' {OptionDialog},
15   Editor in 'Editor.pas' {EditorForm},
16   Round in 'Round.pas' {RoundDialog},
17   ListSelect in 'ListSelect.pas' {ListSelectDialog},
18   Search in 'Search.pas' {SearchDialog},
19   GikoSystem in 'GikoSystem.pas',
20   Setting in 'Setting.pas',
21   BoardGroup in 'BoardGroup.pas',
22   SaveFile in 'SaveFile.pas',
23   Sort in 'Sort.pas',
24   ThreadControl in 'ThreadControl.pas',
25   ItemDownload in 'ItemDownload.pas',
26   RoundData in 'RoundData.pas',
27   RoundName in 'RoundName.pas' {RoundNameDialog},
28   NewBoard in 'NewBoard.pas' {NewBoardDialog},
29   Dolib in 'Dolib.pas',
30   UBase64 in 'Encrypt\UBase64.pas',
31   UCryptAuto in 'Encrypt\UCryptAuto.pas',
32   KeySetting in 'KeySetting.pas' {KeySettingForm},
33   FavoriteAdd in 'FavoriteAdd.pas' {FavoriteAddDialog},
34   NewFavoriteFolder in 'NewFavoriteFolder.pas' {NewFavoriteFolderDialog},
35   FavoriteArrange in 'FavoriteArrange.pas' {FavoriteArrangeDialog},
36   Favorite in 'Favorite.pas' {FavoriteDM: TDataModule},
37   AddressHistory in 'AddressHistory.pas' {AddressHistoryDM: TDataModule},
38   Preview in 'Preview.pas',
39   HTMLDocumentEvent in 'HTMLDocumentEvent.pas',
40   Kotehan in 'Kotehan.pas' {KotehanDialog},
41   MonaUtils in 'MonaUtils.pas',
42   HintWindow in 'HintWindow.pas',
43   GikoUtil in 'GikoUtil.pas',
44   ToolBarSetting in 'ToolBarSetting.pas' {ToolBarSettingDialog},
45   ToolBarUtil in 'ToolBarUtil.pas',
46   YofUtils in 'YofUtils.pas',
47   AbonUnit in 'AbonUnit.pas',
48   IndividualAbon in 'IndividualAbon.pas' {IndividualAbonForm},
49   Trip in 'Trip.pas',
50   GikoXMLDoc in 'GikoXMLDoc.pas',
51   ExternalBoardManager in 'ExternalBoardManager.pas',
52   ExternalThreadItem in 'ExternalThreadItem.pas',
53   ExternalBoardItem in 'ExternalBoardItem.pas',
54   ExternalBoardPlugInMain in 'ExternalBoardPlugInMain.pas',
55   ExternalFilePath in 'ExternalFilePath.pas';
56
57 {$R *.RES}
58 {$R gikoResource.res}
59
60 var
61         hMutex: THandle;
62         Wnd{, AppWnd}: HWnd;
63         i: Integer;
64         CDS: TCopyDataStruct;
65 const
66         MutexString: string = 'gikoNaviInstance';
67 begin
68         hMutex := OpenMutex(MUTEX_ALL_ACCESS, False, PChar(MutexString));
69         if hMutex <> 0 then begin
70                 //\83~\83\85\81[\83e\83b\83N\83X\82ª\91\8dÝ\82µ\82½\8fê\8d\87\82Í\8bN\93®\92\86\8e~
71                 Wnd := FindWindow('TGikoForm', nil);
72                 if Wnd <> 0 then begin
73                         //\8aù\82É\8bN\93®\8dÏ\82Ý\83M\83R\83i\83r\82Ì\83A\83N\83e\83B\83u\89»\81\95\83A\83C\83R\83\93\89»\82³\82ê\82Ä\82½\82ç\95\9c\8c³
74                         SetForegroundWindow(Wnd);
75                         if IsIconic(Wnd) then
76                                 SendMessage(Wnd, WM_SYSCOMMAND, SC_RESTORE, -1);
77 //                      AppWnd := GetWindowLong(Wnd, GWL_HWNDPARENT);
78 //                      if (AppWnd <> 0) and (IsIconic(AppWnd)) then
79 //                              SendMessage(AppWnd, WM_SYSCOMMAND, SC_RESTORE, -1);
80
81                         //\82Å\81A\88ø\90\94\82ª\82 \82Á\82½\82ç\8bN\93®\8dÏ\82Ý\83M\83R\83i\83r\82É\91\97\82é
82                         for i := 1 to ParamCount do     begin
83                                 CDS.dwData := 0;
84                                 CDS.cbData := Length(ParamStr(i)) + 1;
85                                 GetMem(CDS.lpData, CDS.cbData);
86                                 try
87                                         StrPCopy(CDS.lpData, ParamStr(i));
88                                         SendMessage(Wnd, WM_COPYDATA, 0, LParam(@CDS));
89                                 finally
90                                         FreeMem(CDS.lpData);
91                                 end;
92                         end;
93                 end;
94
95                 CloseHandle(hMutex);
96         end else begin
97                 //\83~\83\85\81[\83e\83b\83N\83X\82ª\91\8dÝ\82µ\82È\82¢\8fê\8d\87\82Í\83A\83v\83\8a\83P\81[\83V\83\87\83\93\8bN\93®\91±\8ds
98                 hMutex := CreateMutex(nil, False, PChar(MutexString));
99                 Application.Initialize;
100                 Application.Title := '\83M\83R\83i\83r';
101                 Application.ShowMainForm := False;
102                 Application.CreateForm(TMainWindow, MainWindow);
103   Application.CreateForm(TFavoriteDM, FavoriteDM);
104   Application.CreateForm(TAddressHistoryDM, AddressHistoryDM);
105   Application.CreateForm(TGikoForm, GikoForm);
106   Application.Run;
107                 ReleaseMutex(hMutex);
108         end;
109 end.
110