OSDN Git Service

初期化処理の改善:amodi.exeの起動を正しく検知できず、amodiが使用できなくなる場合の対応
[dokopop/dokopop.git] / DCHookTest / DCHookMain.h
1 //---------------------------------------------------------------------------
2 #ifndef DCHookMainH
3 #define DCHookMainH
4 //---------------------------------------------------------------------------
5 #include <Classes.hpp>
6 #include <Controls.hpp>
7 #include <StdCtrls.hpp>
8 #include <Forms.hpp>
9 #include <Menus.hpp>
10 #include "../DCHook/DCHook.h"
11 #include <ExtCtrls.hpp>
12 #include <DdeMan.hpp>
13 #include <Graphics.hpp>
14 //---------------------------------------------------------------------------
15 #include "Util.h"
16 #include "StringLib.h"
17
18 #define WM_POPUP        (WM_APP+0x200)
19 #define WM_NOTIFYICON (WM_APP+0x201)
20 #define WM_TOGGLE       (WM_APP+0x202)
21 #define UM_SHORTCUT     (WM_APP+33)
22 #define WM_MOVESEND     (WM_APP+0x208)  // DCH_MOVESEND\82Ì\91ã\82í\82è\82ÉPostMessage\82Å\91\97\82é
23
24 class TDCHookMainForm : public TForm
25 {
26 typedef TForm super;
27 __published:    // IDE \8aÇ\97\9d\82Ì\83R\83\93\83|\81[\83l\83\93\83g
28         TMainMenu *MainMenu;
29         TMenuItem *File1;
30         TMenuItem *miExit;
31         TMenuItem *miHook;
32         TMenuItem *miUnhook;
33         TMenuItem *N1;
34         TMenuItem *miTest;
35         TMemo *Memo;
36         TSplitter *Splitter1;
37         TPaintBox *PaintBox;
38         TPanel *Panel1;
39         TMenuItem *miDdeTest;
40         TEdit *edFound;
41         TEdit *edWord;
42         TEdit *edPrev;
43         TPopupMenu *pmTrayIcon;
44         TMenuItem *miExit2;
45         TMenuItem *miAbout;
46         TMenuItem *N5;
47         TMenuItem *N6;
48         TMenuItem *miOption;
49         TMenuItem *miGroup;
50         TMenuItem *N4;
51         TMenuItem *miEnablePopup;
52         TTimer *BootTimer;
53         TImage *Image;
54         TTimer *TestTimer;
55         TButton *btnOK;
56         TLabel *lbVersion;
57         TMenuItem *miClickOnly;
58         TMenuItem *miReload;
59         TMenuItem *miClose;
60         TTimer *tmMenuClose;
61         TTimer *tmNotify;
62         TTimer *tmPopup;
63         TMenuItem *miReadMe;
64         TMenuItem *miIncSearch;
65         TTimer *tmMouseMove;
66         TMenuItem *N2;
67         TMenuItem *miConfig;
68         TMenuItem *miInstallMODI;
69         TTimer *tmMODIInstallCheck;
70         TTimer *tmMODINotify;
71         TMenuItem *miCheckLatest;
72         TMenuItem *miOCRText;
73         TTimer *tmReInit;
74         void __fastcall miHookClick(TObject *Sender);
75         void __fastcall miUnhookClick(TObject *Sender);
76         void __fastcall miExitClick(TObject *Sender);
77         void __fastcall miTestClick(TObject *Sender);
78         void __fastcall miDdeTestClick(TObject *Sender);
79         void __fastcall FormCreate(TObject *Sender);
80         void __fastcall miAboutClick(TObject *Sender);
81         void __fastcall miOptionClick(TObject *Sender);
82         void __fastcall pmTrayIconPopup(TObject *Sender);
83         void __fastcall miEnablePopupClick(TObject *Sender);
84         void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
85         void __fastcall BootTimerTimer(TObject *Sender);
86         void __fastcall ImageMouseUp(TObject *Sender, TMouseButton Button,
87                   TShiftState Shift, int X, int Y);
88         void __fastcall FormKeyPress(TObject *Sender, char &Key);
89         void __fastcall TestTimerTimer(TObject *Sender);
90         void __fastcall btnOKClick(TObject *Sender);
91         void __fastcall ImageMouseDown(TObject *Sender, TMouseButton Button,
92                   TShiftState Shift, int X, int Y);
93         void __fastcall ImageMouseMove(TObject *Sender, TShiftState Shift, int X,
94                   int Y);
95         void __fastcall miClickOnlyClick(TObject *Sender);
96         void __fastcall miReloadClick(TObject *Sender);
97         void __fastcall miCloseClick(TObject *Sender);
98         void __fastcall tmMenuCloseTimer(TObject *Sender);
99         void __fastcall tmNotifyTimer(TObject *Sender);
100         void __fastcall tmPopupTimer(TObject *Sender);
101         void __fastcall miReadMeClick(TObject *Sender);
102         void __fastcall miIncSearchClick(TObject *Sender);
103         void __fastcall tmMouseMoveTimer(TObject *Sender);
104         void __fastcall miConfigClick(TObject *Sender);
105         void __fastcall tmMODIInstallCheckTimer(TObject *Sender);
106         void __fastcall tmMODINotifyTimer(TObject *Sender);
107         void __fastcall miCheckLatestClick(TObject *Sender);
108         void __fastcall miOCRTextClick(TObject *Sender);
109         void __fastcall tmReInitTimer(TObject *Sender);
110 private:        // \83\86\81[\83U\81[\90é\8c¾
111         //void __fastcall IdleHandler(TObject *sender, bool &done);
112
113         bool BootUp;
114         bool Capturing;
115         POINT CapPoint;
116         class TDCHookLoader *hDll;
117
118         int SavedWidth;
119
120         // Popup Configuration //
121         bool GroupOpen;
122         AnsiString GroupName;
123         bool CtrlClose;
124         bool IgnoreJ;
125         bool Banner;
126         int CaptureMode;        // 0:conventional 1:use AMODI
127         bool AMODIAvail;        // AMODI available or not
128         AnsiString AMODIPath;
129         bool MouseIncSrch;
130 public:         // \83\86\81[\83U\81[\90é\8c¾
131         __fastcall TDCHookMainForm(TComponent* Owner);
132         void EvCopyData(TMessage&);
133         void InitAMODI();
134         void Start();
135         void MenuClosed();
136         void ShowNotify();
137         void EvToggle( TMessage & );
138         void EvShortcut( TMessage & );
139         void EvGetVersion( TMessage & );
140
141         // Hooking //
142         bool Hook();
143         void Unhook();
144
145         // Popup Control //
146         POINT CursorPoint;
147         void SetupConfig();
148         void SetupConfig2();
149         void SetupAMODI();
150         bool EnablePopup;
151         bool DoPopup( const tchar *text, const tchar *prevtext, bool movesend );
152         tchar *PopupText;
153         int PopupLoc;
154         bool PopupMoveSend;
155         void EvPopup(TMessage &);
156         int DoPopupRetry;
157         void EvMoveSend(TMessage &);
158         void EvMoveSend(bool enable);
159
160         // Tray Icon Control //
161         void RegisterTrayIcon( bool flag );
162         void EvNotifyIcon( TMessage & );
163         void SaveConfig();
164         void EnableClickOnly( bool enable );
165         void DokoPopMenu( bool all );
166
167         // PDIC Control //
168         void __fastcall miDicGroup(TObject *Sender);
169         void OpenDicGroup( const char *name );
170         TDdeClientConv *OpenPdic( const char *topic );
171         void ClosePdic( TDdeClientConv *dde );
172
173         // WM_COPYDATA control //
174         HWND FindPdic( );
175         LRESULT SendCopyData( HWND hwnd, int message, const char *str );
176
177         void NotifyAMODI();
178
179         void Reboot();
180         
181 protected:
182         BEGIN_MESSAGE_MAP
183                 VCL_MESSAGE_HANDLER(WM_COPYDATA, TMessage, EvCopyData)
184                 VCL_MESSAGE_HANDLER(WM_POPUP, TMessage, EvPopup)
185                 VCL_MESSAGE_HANDLER(WM_MOVESEND, TMessage, EvMoveSend)
186                 VCL_MESSAGE_HANDLER(WM_NOTIFYICON, TMessage, EvNotifyIcon)
187                 VCL_MESSAGE_HANDLER(WM_TOGGLE, TMessage, EvToggle)
188                 VCL_MESSAGE_HANDLER(UM_SHORTCUT, TMessage, EvShortcut)
189                 VCL_MESSAGE_HANDLER(WM_GET_VERSION, TMessage, EvGetVersion)
190         END_MESSAGE_MAP(TForm)
191 };
192 //---------------------------------------------------------------------------
193 extern PACKAGE TDCHookMainForm *DCHookMainForm;
194 //---------------------------------------------------------------------------
195
196 extern bool Reboot;
197
198 #endif
199