1 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\r
10 # include <windef.h>
\r
13 # define HOOK_PIPE_NAME \
\r
14 _T("\\\\.\\pipe\\GANAware\\mayu\\{4B22D464-7A4E-494b-982A-C2B2BBAAF9F3}") _T(VERSION)
\r
16 # define NOTIFY_MAILSLOT_NAME \
\r
17 _T("\\\\.\\mailslot\\GANAware\\mayu\\{330F7914-EB5B-49be-ACCE-D2B8DF585B32}") _T(VERSION)
\r
19 # define WM_MAYU_MESSAGE_NAME _T("GANAware\\mayu\\WM_MAYU_MESSAGE")
\r
23 MayuMessage_notifyName,
\r
24 MayuMessage_funcRecenter,
\r
25 MayuMessage_funcSetImeStatus,
\r
26 MayuMessage_funcSetImeString,
\r
34 Type_setFocus, /// NotifySetFocus
\r
35 Type_name, /// NotifySetFocus
\r
36 Type_lockState, /// NotifyLockState
\r
37 Type_sync, /// Notify
\r
38 Type_threadAttach, /// NotifyThreadAttach
\r
39 Type_threadDetach, /// NotifyThreadDetach
\r
40 Type_command64, /// NotifyCommand64
\r
41 Type_command32, /// NotifyCommand32
\r
42 Type_show, /// NotifyShow
\r
43 Type_log, /// NotifyLog
\r
46 DWORD m_debugParam; /// (for debug)
\r
51 struct NotifySetFocus : public Notify {
\r
52 DWORD m_threadId; ///
\r
54 _TCHAR m_className[GANA_MAX_PATH]; ///
\r
55 _TCHAR m_titleName[GANA_MAX_PATH]; ///
\r
60 struct NotifyLockState : public Notify {
\r
61 bool m_isNumLockToggled; ///
\r
62 bool m_isCapsLockToggled; ///
\r
63 bool m_isScrollLockToggled; ///
\r
64 bool m_isKanaLockToggled; ///
\r
65 bool m_isImeLockToggled; ///
\r
66 bool m_isImeCompToggled; ///
\r
71 struct NotifyThreadAttach : public Notify {
\r
72 DWORD m_threadId; ///
\r
77 struct NotifyThreadDetach : public Notify {
\r
78 DWORD m_threadId; ///
\r
83 struct NotifyCommand32 : public Notify {
\r
86 unsigned int m_wParam; ///
\r
92 struct NotifyCommand64 : public Notify {
\r
95 unsigned __int64 m_wParam; ///
\r
96 __int64 m_lParam; ///
\r
101 NOTIFY_MESSAGE_SIZE = sizeof(NotifySetFocus), ///
\r
106 struct NotifyShow : public Notify {
\r
119 struct NotifyLog : public Notify {
\r
120 _TCHAR m_msg[GANA_MAX_PATH]; ///
\r
125 enum MouseHookType {
\r
126 MouseHookType_None = 0, /// none
\r
127 MouseHookType_Wheel = 1 << 0, /// wheel
\r
128 MouseHookType_WindowMove = 1 << 1, /// window move
\r
132 typedef unsigned int (WINAPI *INPUT_DETOUR)(Engine *i_engine, WPARAM i_wParam, LPARAM i_lParam);
\r
138 USHORT m_syncKey; ///
\r
139 bool m_syncKeyIsExtended; ///
\r
140 bool m_doesNotifyCommand; ///
\r
141 DWORD m_hwndTaskTray; ///
\r
142 bool m_correctKanaLockHandling; /// does use KL- ?
\r
143 MouseHookType m_mouseHookType; ///
\r
144 int m_mouseHookParam; ///
\r
145 DWORD m_hwndMouseHookTarget; ///
\r
146 POINT m_mousePos; ///
\r
151 # define DllExport __declspec(dllexport)
\r
153 # define DllImport __declspec(dllimport)
\r
157 extern DllImport HookData *g_hookData;
\r
158 extern DllImport int installMessageHook(DWORD i_hwndTaskTray);
\r
159 extern DllImport int uninstallMessageHook();
\r
160 extern DllImport int installKeyboardHook(INPUT_DETOUR i_keyboardDetour, Engine *i_engine, bool i_install);
\r
161 extern DllImport int installMouseHook(INPUT_DETOUR i_mouseDetour, Engine *i_engine, bool i_install);
\r
162 extern DllImport bool notify(void *data, size_t sizeof_data);
\r
163 extern DllImport void notifyLockState();
\r
164 # endif // !_HOOK_CPP
\r