OSDN Git Service

import the last version of the original mayu extracted by following command:
[yamy/yamy.git] / hook.h
1 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 // hook.h
3
4
5 #ifndef _HOOK_H
6 #  define _HOOK_H
7
8 #  include "misc.h"
9 #  include <tchar.h>
10
11 ///
12 #  define HOOK_PIPE_NAME \
13  _T("\\\\.\\pipe\\GANAware\\mayu\\{4B22D464-7A4E-494b-982A-C2B2BBAAF9F3}") _T(VERSION)
14 ///
15 #  define WM_MAYU_MESSAGE_NAME _T("GANAware\\mayu\\WM_MAYU_MESSAGE")
16
17 ///
18 enum MayuMessage
19 {
20   MayuMessage_notifyName,
21   MayuMessage_funcRecenter,
22   MayuMessage_funcSetImeStatus,
23   MayuMessage_funcSetImeString,
24 };
25
26
27 ///
28 struct Notify
29 {
30   ///
31   enum Type
32   {
33     Type_setFocus,                              /// NotifySetFocus
34     Type_name,                                  /// NotifySetFocus
35     Type_lockState,                             /// NotifyLockState
36     Type_sync,                                  /// Notify
37     Type_threadDetach,                          /// NotifyThreadDetach
38     Type_command,                               /// NotifyThreadDetach
39     Type_show,                                  /// NotifyShow
40     Type_log,                                   /// NotifyLog
41   };
42   Type m_type;                                  ///
43   DWORD m_debugParam;                           /// (for debug)
44 };
45
46
47 ///
48 struct NotifySetFocus : public Notify
49 {
50   DWORD m_threadId;                             ///
51   HWND m_hwnd;                                  ///
52   _TCHAR m_className[GANA_MAX_PATH];            ///
53   _TCHAR m_titleName[GANA_MAX_PATH];            ///
54 };
55
56
57 ///
58 struct NotifyLockState : public Notify
59 {
60   bool m_isNumLockToggled;                      ///
61   bool m_isCapsLockToggled;                     ///
62   bool m_isScrollLockToggled;                   ///
63   bool m_isKanaLockToggled;                     ///
64   bool m_isImeLockToggled;                      ///
65   bool m_isImeCompToggled;                      ///
66 };
67
68
69 ///
70 struct NotifyThreadDetach : public Notify
71 {
72   DWORD m_threadId;                             ///
73 };
74
75
76 ///
77 struct NotifyCommand : public Notify
78 {
79   HWND m_hwnd;                                  ///
80   UINT m_message;                               ///
81   WPARAM m_wParam;                              ///
82   LPARAM m_lParam;                              ///
83 };
84
85
86 enum
87 {
88   NOTIFY_MESSAGE_SIZE = sizeof(NotifySetFocus), ///
89 };
90
91
92 ///
93 struct NotifyShow : public Notify
94 {
95   ///
96   enum Show
97   {
98     Show_Normal,
99     Show_Maximized,
100     Show_Minimized,
101   };
102   Show m_show;                                  ///
103   bool m_isMDI;                                 ///
104 };
105
106
107 ///
108 struct NotifyLog : public Notify
109 {
110   _TCHAR m_msg[GANA_MAX_PATH];                  ///
111 };
112
113
114 ///
115 enum MouseHookType
116 {
117   MouseHookType_None = 0,                               /// none
118   MouseHookType_Wheel = 1 << 0,                 /// wheel
119   MouseHookType_WindowMove = 1 << 1,            /// window move
120 };
121
122 ///
123 class HookData
124 {
125 public:
126   HHOOK m_hHookGetMessage;                      ///
127   HHOOK m_hHookCallWndProc;                     ///
128   HHOOK m_hHookMouseProc;                       ///
129   USHORT m_syncKey;                             ///
130   bool m_syncKeyIsExtended;                     ///
131   bool m_doesNotifyCommand;                     ///
132   HWND m_hwndTaskTray;                          ///
133   bool m_correctKanaLockHandling;               /// does use KL- ?
134   MouseHookType m_mouseHookType;                ///
135   int m_mouseHookParam;                 ///
136   HWND m_hwndMouseHookTarget;           ///
137   POINT m_mousePos;                             ///
138 };
139
140
141 ///
142 #  define DllExport __declspec(dllexport)
143 ///
144 #  define DllImport __declspec(dllimport)
145
146
147 #  ifndef _HOOK_CPP
148 extern DllImport HookData *g_hookData;
149 extern DllImport int installHooks();
150 extern DllImport int uninstallHooks();
151 extern DllImport bool notify(void *data, size_t sizeof_data);
152 extern DllImport void notifyLockState();
153 #  endif // !_HOOK_CPP
154
155
156 #endif // !_HOOK_H