OSDN Git Service

・Windows 95 でもお気に入りが使えるようになった。
[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
48 {$R *.RES}
49 {$R gikoResource.res}
50
51 var
52         hMutex: THandle;
53         Wnd{, AppWnd}: HWnd;
54         i: Integer;
55         CDS: TCopyDataStruct;
56 const
57         MutexString: string = 'gikoNaviInstance';
58 begin
59         hMutex := OpenMutex(MUTEX_ALL_ACCESS, False, PChar(MutexString));
60         if hMutex <> 0 then begin
61                 //\83~\83\85\81[\83e\83b\83N\83X\82ª\91\8dÝ\82µ\82½\8fê\8d\87\82Í\8bN\93®\92\86\8e~
62                 Wnd := FindWindow('TGikoForm', nil);
63                 if Wnd <> 0 then begin
64                         //\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³
65                         SetForegroundWindow(Wnd);
66                         if IsIconic(Wnd) then
67                                 SendMessage(Wnd, WM_SYSCOMMAND, SC_RESTORE, -1);
68 //                      AppWnd := GetWindowLong(Wnd, GWL_HWNDPARENT);
69 //                      if (AppWnd <> 0) and (IsIconic(AppWnd)) then
70 //                              SendMessage(AppWnd, WM_SYSCOMMAND, SC_RESTORE, -1);
71
72                         //\82Å\81A\88ø\90\94\82ª\82 \82Á\82½\82ç\8bN\93®\8dÏ\82Ý\83M\83R\83i\83r\82É\91\97\82é
73                         for i := 1 to ParamCount do     begin
74                                 CDS.dwData := 0;
75                                 CDS.cbData := Length(ParamStr(i)) + 1;
76                                 GetMem(CDS.lpData, CDS.cbData);
77                                 try
78                                         StrPCopy(CDS.lpData, ParamStr(i));
79                                         SendMessage(Wnd, WM_COPYDATA, 0, LParam(@CDS));
80                                 finally
81                                         FreeMem(CDS.lpData);
82                                 end;
83                         end;
84                 end;
85                 CloseHandle(hMutex);
86         end else begin
87                 //\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
88                 hMutex := CreateMutex(nil, False, PChar(MutexString));
89                 Application.Initialize;
90                 Application.Title := '\83M\83R\83i\83r';
91                 Application.ShowMainForm := False;
92                 Application.CreateForm(TMainWindow, MainWindow);
93   Application.CreateForm(TFavoriteDM, FavoriteDM);
94   Application.CreateForm(TAddressHistoryDM, AddressHistoryDM);
95   Application.CreateForm(TGikoForm, GikoForm);
96   Application.Run;
97                 ReleaseMutex(hMutex);
98         end;
99 end.
100