OSDN Git Service

fix ticket #18663
[yamy/yamy.git] / engine.h
index 69a5b2a..9e948bf 100644 (file)
--- a/engine.h
+++ b/engine.h
@@ -147,11 +147,11 @@ private:
        ///\r
        class InputHandler {\r
        public:\r
-               typedef int (*INSTALL_HOOK)(KEYBOARD_DETOUR i_keyboardDetour, Engine *i_engine, bool i_install);\r
+               typedef int (*INSTALL_HOOK)(INPUT_DETOUR i_keyboardDetour, Engine *i_engine, bool i_install);\r
 \r
                static unsigned int WINAPI run(void *i_this);\r
 \r
-               InputHandler(INSTALL_HOOK i_installHook);\r
+               InputHandler(INSTALL_HOOK i_installHook, INPUT_DETOUR i_inputDetour);\r
 \r
                ~InputHandler();\r
 \r
@@ -166,6 +166,7 @@ private:
                HANDLE m_hThread;\r
                HANDLE m_hEvent; \r
                INSTALL_HOOK m_installHook;\r
+               INPUT_DETOUR m_inputDetour;\r
                Engine *m_engine;\r
        };\r
 \r
@@ -178,31 +179,22 @@ private:
        Setting * volatile m_setting;                   /// setting\r
 \r
        // engine thread state\r
-       HANDLE m_device;                                /// mayu device\r
-       bool m_didMayuStartDevice;                      /** Did the mayu start the\r
-                                                    mayu-device ? */\r
-       HANDLE m_threadEvent;                           /** 1. thread has been started\r
-                                                   2. thread is about to end*/\r
        HANDLE m_threadHandle;\r
        unsigned m_threadId;\r
-       tstring m_mayudVersion;                 /// version of mayud.sys\r
-#ifdef NO_DRIVER\r
-       std::deque<KEYBOARD_INPUT_DATA> m_kidq;\r
-       CriticalSection m_cskidq;\r
+       std::deque<KEYBOARD_INPUT_DATA> *m_inputQueue;\r
+       HANDLE m_queueMutex;\r
+       MSLLHOOKSTRUCT m_msllHookCurrent;\r
+       bool m_buttonPressed;\r
+       bool m_dragging;\r
        InputHandler m_keyboardHandler;\r
        InputHandler m_mouseHandler;\r
-#endif // NO_DRIVER\r
        HANDLE m_readEvent;                             /** reading from mayu device\r
                                                     has been completed */\r
-       HANDLE m_interruptThreadEvent;          /// interrupt thread event\r
-       volatile InterruptThreadReason\r
-       m_interruptThreadReason;                        /// interrupt thread reason\r
        OVERLAPPED m_ol;                                /** for async read/write of\r
                                                    mayu device */\r
        HANDLE m_hookPipe;                              /// named pipe for &SetImeString\r
        HMODULE m_sts4mayu;                             /// DLL module for ThumbSense\r
        HMODULE m_cts4mayu;                             /// DLL module for ThumbSense\r
-       bool volatile m_doForceTerminate;               /// terminate engine thread\r
        bool volatile m_isLogMode;                      /// is logging mode ?\r
        bool volatile m_isEnabled;                      /// is enabled  ?\r
        bool volatile m_isSynchronizing;                /// is synchronizing ?\r
@@ -263,15 +255,17 @@ public:
                                                     dialog's edit) */\r
 \r
 public:\r
-#ifdef NO_DRIVER\r
        /// keyboard handler thread\r
-       static unsigned int WINAPI keyboardDetour(Engine *i_this, KBDLLHOOKSTRUCT *i_kid);\r
+       static unsigned int WINAPI keyboardDetour(Engine *i_this, WPARAM i_wParam, LPARAM i_lParam);\r
+       /// mouse handler thread\r
+       static unsigned int WINAPI mouseDetour(Engine *i_this, WPARAM i_wParam, LPARAM i_lParam);\r
 private:\r
        ///\r
        unsigned int keyboardDetour(KBDLLHOOKSTRUCT *i_kid);\r
        ///\r
+       unsigned int mouseDetour(WPARAM i_message, MSLLHOOKSTRUCT *i_mid);\r
+       ///\r
        unsigned int injectInput(const KEYBOARD_INPUT_DATA *i_kid, const KBDLLHOOKSTRUCT *i_kidRaw);\r
-#endif // NO_DRIVER\r
 \r
 private:\r
        /// keyboard handler thread\r
@@ -519,6 +513,8 @@ private:
        void funcSetImeString(FunctionParam *i_param, const StrExprArg &i_data);\r
        /// enter to mouse event hook mode\r
        void funcMouseHook(FunctionParam *i_param, MouseHookType i_hookType, int i_hookParam);\r
+       /// cancel prefix\r
+       void funcCancelPrefix(FunctionParam *i_param);\r
 \r
        // END OF FUNCTION DEFINITION\r
 #  define FUNCTION_FRIEND\r
@@ -620,11 +616,6 @@ public:
        const tstringi &getCurrentWindowTitleName() const {\r
                return m_currentFocusOfThread->m_titleName;\r
        }\r
-\r
-       /// get mayud version\r
-       const tstring &getMayudVersion() const {\r
-               return m_mayudVersion;\r
-       }\r
 };\r
 \r
 \r