{*******************************************************} { } { SSTP Bottle Client } { } { Copyright (C) 2001-2004 WinBottle Project } { } {*******************************************************} (********************************) (* これは不幸のソースです。 *) (* このソースを見た人は、 *) (* 一週間以内に6つのバグを *) (* 取らないと死にます。 *) (********************************) { http://bottle.mikage.to/viewlog2.cgi?around=3eb34d9300000001 } program SstpBottle; {%ToDo 'SstpBottle.todo'} uses Forms, Dialogs, Windows, MainForm in 'MainForm.pas' {frmSender}, BRegExp in 'BRegExp.pas', BottleDef in 'BottleDef.pas', ConstEditor in 'ConstEditor.pas' {frmConstEditor}, SendConfirm in 'SendConfirm.pas' {frmConfirmSend}, SettingForm in 'SettingForm.pas' {frmSetting}, LogForm in 'LogForm.pas' {frmLog}, HeadValue in 'HeadValue.pas', ChannelListForm in 'ChannelListForm.pas' {frmChannelList}, MessageBox in 'MessageBox.pas' {frmMessageBox}, Logs in 'Logs.pas', HttpThread in 'HttpThread.pas', LogDownload in 'LogDownload.pas' {frmLogDownload}, ColorSettingFrame in 'ColorSettingFrame.pas' {frmColorSetting: TFrame}, ScriptConsts in 'ScriptConsts.pas', BottleChainEvent in 'BottleChainEvent.pas', BottleChainRule in 'BottleChainRule.pas', BottleChainListFrame in 'BottleChainListFrame.pas' {frmBottleChainList: TFrame}, BottleChainRuleEditor in 'BottleChainRuleEditor.pas' {frmBottleChainRuleEditor}, MinMaxEditor in 'MinMaxEditor.pas' {frmMinMaxEditor}, StrListEditor in 'StrListEditor.pas' {frmStrListEditor}, MultipleChoiceEditor in 'MultipleChoiceEditor.pas' {frmMultipleChoiceEditor}, SakuraSeekerInstance in 'SakuraSeekerInstance.pas', FMOExplorer in 'FMOExplorer.pas' {frmFMOExplorer}, OpenFileEditor in 'OpenFileEditor.pas' {frmOpenFileEditor}, BottleSstp in 'BottleSstp.pas', SurfacePreview in 'SurfacePreview.pas' {frmSurfacePreview}, SppList in 'SppList.pas', TalkShowFrame in 'TalkShowFrame.pas' {frmTalkShow: TFrame}, EditorTalkShow in 'EditorTalkShow.pas' {frmEditorTalkShow}, ProgressWindow in 'ProgressWindow.pas' {frmProgressWindow}, Plugins in 'Plugins.pas', SpecialCharEditor in 'SpecialCharEditor.pas' {frmSpecialCharEditor}, HtmlOutputConfig in 'HtmlOutputConfig.pas' {frmHTMLOutputConfig}, HtmlOutputProgress in 'HtmlOutputProgress.pas' {frmHTMLOutputProgress}, SearchLog in 'SearchLog.pas' {frmSearchLog}, StrReplace in 'StrReplace.pas', RegexUtils in 'RegexUtils.pas', StrReplaceFrame in 'StrReplaceFrame.pas' {frmStrReplaceFrame: TFrame}, StrReplaceDialog in 'StrReplaceDialog.pas' {frmStrReplaceDialog}, ReplacePresetEditor in 'ReplacePresetEditor.pas' {frmReplacePresetEditor: TFrame}; // 型付き定数を変更できるようにするコンパイラオプション // 一部のコンポーネントにこれが必要 {$J+} {$R *.RES} // WindowsXPのLuna対応。ただしDelphi7のみ。 // Delphi6なら、もしかしたら$Rしても動くかもしれませんが、 // Delphi5Proだと ListView のカラムクリックなどで不具合が出ますのでダメです。 {$IFDEF CONDITIONALEXPRESSIONS} {$IF Declared(CompilerVersion)} {$IF CompilerVersion >= 15.0} // Delphi7以上なら {$R WindowsXP.RES} {$IFEND} {$IFEND} {$ENDIF} var Mutex: THandle; begin {$IFDEF NOMUTEX} ShowMessage('二重起動許可バージョンです。'#13#10 + VersionString); {$ELSE} Mutex := CreateMutex(nil, true, 'SSTPBottleClient2'); if GetLastError = ERROR_ALREADY_EXISTS then begin ShowMessage('SSTP Bottle Clientは二重起動できません'); CloseHandle(Mutex); Exit; end; {$ENDIF} Application.Initialize; Application.Title := 'SSTP Bottle Client'; Application.ShowMainForm := true; Application.CreateForm(TfrmSender, frmSender); Application.CreateForm(TfrmLog, frmLog); Application.CreateForm(TfrmMessageBox, frmMessageBox); Application.CreateForm(TfrmSurfacePreview, frmSurfacePreview); if not Application.Terminated then frmSender.Show; Application.Run; {$IFDEF BOTTLEMUTEX} if Mutex > 0 then CloseHandle(Mutex); {$ENDIF} end.