OSDN Git Service

fix ticket #18663
[yamy/yamy.git] / hook.h
diff --git a/hook.h b/hook.h
index a3e1401..6db9b3d 100644 (file)
--- a/hook.h
+++ b/hook.h
@@ -7,9 +7,7 @@
 \r
 #  include "misc.h"\r
 #  include <tchar.h>\r
-#ifdef NO_DRIVER\r
-#  include <windows.h>\r
-#endif // NO_DRIVER\r
+#  include <windef.h>\r
 \r
 ///\r
 #  define HOOK_PIPE_NAME \\r
@@ -23,128 +21,114 @@ _T("\\\\.\\mailslot\\GANAware\\mayu\\{330F7914-EB5B-49be-ACCE-D2B8DF585B32}") _T
 #  define WM_MAYU_MESSAGE_NAME _T("GANAware\\mayu\\WM_MAYU_MESSAGE")\r
 \r
 ///\r
-enum MayuMessage\r
-{\r
-  MayuMessage_notifyName,\r
-  MayuMessage_funcRecenter,\r
-  MayuMessage_funcSetImeStatus,\r
-  MayuMessage_funcSetImeString,\r
+enum MayuMessage {\r
+       MayuMessage_notifyName,\r
+       MayuMessage_funcRecenter,\r
+       MayuMessage_funcSetImeStatus,\r
+       MayuMessage_funcSetImeString,\r
 };\r
 \r
 \r
 ///\r
-struct Notify\r
-{\r
-  ///\r
-  enum Type\r
-  {\r
-    Type_setFocus,                             /// NotifySetFocus\r
-    Type_name,                                 /// NotifySetFocus\r
-    Type_lockState,                            /// NotifyLockState\r
-    Type_sync,                                 /// Notify\r
-    Type_threadDetach,                         /// NotifyThreadDetach\r
-    Type_command,                              /// NotifyThreadDetach\r
-    Type_show,                                 /// NotifyShow\r
-    Type_log,                                  /// NotifyLog\r
-  };\r
-  Type m_type;                                 ///\r
-  DWORD m_debugParam;                          /// (for debug)\r
+struct Notify {\r
+       ///\r
+       enum Type {\r
+               Type_setFocus,                          /// NotifySetFocus\r
+               Type_name,                                      /// NotifySetFocus\r
+               Type_lockState,                         /// NotifyLockState\r
+               Type_sync,                                      /// Notify\r
+               Type_threadDetach,                              /// NotifyThreadDetach\r
+               Type_command,                           /// NotifyThreadDetach\r
+               Type_show,                                      /// NotifyShow\r
+               Type_log,                                       /// NotifyLog\r
+       };\r
+       Type m_type;                                    ///\r
+       DWORD m_debugParam;                             /// (for debug)\r
 };\r
 \r
 \r
 ///\r
-struct NotifySetFocus : public Notify\r
-{\r
-  DWORD m_threadId;                            ///\r
-  DWORD m_hwnd;                                ///\r
-  _TCHAR m_className[GANA_MAX_PATH];           ///\r
-  _TCHAR m_titleName[GANA_MAX_PATH];           ///\r
+struct NotifySetFocus : public Notify {\r
+       DWORD m_threadId;                               ///\r
+       DWORD m_hwnd;                           ///\r
+       _TCHAR m_className[GANA_MAX_PATH];              ///\r
+       _TCHAR m_titleName[GANA_MAX_PATH];              ///\r
 };\r
 \r
 \r
 ///\r
-struct NotifyLockState : public Notify\r
-{\r
-  bool m_isNumLockToggled;                     ///\r
-  bool m_isCapsLockToggled;                    ///\r
-  bool m_isScrollLockToggled;                  ///\r
-  bool m_isKanaLockToggled;                    ///\r
-  bool m_isImeLockToggled;                     ///\r
-  bool m_isImeCompToggled;                     ///\r
+struct NotifyLockState : public Notify {\r
+       bool m_isNumLockToggled;                        ///\r
+       bool m_isCapsLockToggled;                       ///\r
+       bool m_isScrollLockToggled;                     ///\r
+       bool m_isKanaLockToggled;                       ///\r
+       bool m_isImeLockToggled;                        ///\r
+       bool m_isImeCompToggled;                        ///\r
 };\r
 \r
 \r
 ///\r
-struct NotifyThreadDetach : public Notify\r
-{\r
-  DWORD m_threadId;                            ///\r
+struct NotifyThreadDetach : public Notify {\r
+       DWORD m_threadId;                               ///\r
 };\r
 \r
 \r
 ///\r
-struct NotifyCommand : public Notify\r
-{\r
-  HWND m_hwnd;                                 ///\r
-  UINT m_message;                              ///\r
-  WPARAM m_wParam;                             ///\r
-  LPARAM m_lParam;                             ///\r
+struct NotifyCommand : public Notify {\r
+       HWND m_hwnd;                                    ///\r
+       UINT m_message;                         ///\r
+       WPARAM m_wParam;                                ///\r
+       LPARAM m_lParam;                                ///\r
 };\r
 \r
 \r
-enum\r
-{\r
-  NOTIFY_MESSAGE_SIZE = sizeof(NotifySetFocus),        ///\r
+enum {\r
+       NOTIFY_MESSAGE_SIZE = sizeof(NotifySetFocus),   ///\r
 };\r
 \r
 \r
 ///\r
-struct NotifyShow : public Notify\r
-{\r
-  ///\r
-  enum Show\r
-  {\r
-    Show_Normal,\r
-    Show_Maximized,\r
-    Show_Minimized,\r
-  };\r
-  Show m_show;                                 ///\r
-  bool m_isMDI;                                        ///\r
+struct NotifyShow : public Notify {\r
+       ///\r
+       enum Show {\r
+               Show_Normal,\r
+               Show_Maximized,\r
+               Show_Minimized,\r
+       };\r
+       Show m_show;                                    ///\r
+       bool m_isMDI;                                   ///\r
 };\r
 \r
 \r
 ///\r
-struct NotifyLog : public Notify\r
-{\r
-  _TCHAR m_msg[GANA_MAX_PATH];                 ///\r
+struct NotifyLog : public Notify {\r
+       _TCHAR m_msg[GANA_MAX_PATH];                    ///\r
 };\r
 \r
 \r
 ///\r
-enum MouseHookType\r
-{\r
-  MouseHookType_None = 0,                              /// none\r
-  MouseHookType_Wheel = 1 << 0,                        /// wheel\r
-  MouseHookType_WindowMove = 1 << 1,           /// window move\r
+enum MouseHookType {\r
+       MouseHookType_None = 0,                         /// none\r
+       MouseHookType_Wheel = 1 << 0,                   /// wheel\r
+       MouseHookType_WindowMove = 1 << 1,              /// window move\r
 };\r
 \r
-#ifdef NO_DRIVER\r
 class Engine;\r
-typedef unsigned int (WINAPI *KEYBOARD_DETOUR)(Engine *i_engine, KBDLLHOOKSTRUCT *i_kid);\r
-#endif // NO_DRIVER\r
+typedef unsigned int (WINAPI *INPUT_DETOUR)(Engine *i_engine, WPARAM i_wParam, LPARAM i_lParam);\r
 \r
 ///\r
 class HookData\r
 {\r
 public:\r
-  USHORT m_syncKey;                            ///\r
-  bool m_syncKeyIsExtended;                    ///\r
-  bool m_doesNotifyCommand;                    ///\r
-  DWORD m_hwndTaskTray;                                ///\r
-  bool m_correctKanaLockHandling;              /// does use KL- ?\r
-  MouseHookType m_mouseHookType;               ///\r
-  int m_mouseHookParam;                        ///\r
-  DWORD m_hwndMouseHookTarget;         ///\r
-  POINT m_mousePos;                            ///\r
+       USHORT m_syncKey;                               ///\r
+       bool m_syncKeyIsExtended;                       ///\r
+       bool m_doesNotifyCommand;                       ///\r
+       DWORD m_hwndTaskTray;                           ///\r
+       bool m_correctKanaLockHandling;         /// does use KL- ?\r
+       MouseHookType m_mouseHookType;          ///\r
+       int m_mouseHookParam;                   ///\r
+       DWORD m_hwndMouseHookTarget;            ///\r
+       POINT m_mousePos;                               ///\r
 };\r
 \r
 \r
@@ -156,8 +140,10 @@ public:
 \r
 #  ifndef _HOOK_CPP\r
 extern DllImport HookData *g_hookData;\r
-extern DllImport int installHooks(KEYBOARD_DETOUR i_keyboardDetour, Engine *i_engine);\r
-extern DllImport int uninstallHooks();\r
+extern DllImport int installMessageHook();\r
+extern DllImport int uninstallMessageHook();\r
+extern DllImport int installKeyboardHook(INPUT_DETOUR i_keyboardDetour, Engine *i_engine, bool i_install);\r
+extern DllImport int installMouseHook(INPUT_DETOUR i_mouseDetour, Engine *i_engine, bool i_install);\r
 extern DllImport bool notify(void *data, size_t sizeof_data);\r
 extern DllImport void notifyLockState();\r
 #  endif // !_HOOK_CPP\r