///\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
HANDLE m_hThread;\r
HANDLE m_hEvent; \r
INSTALL_HOOK m_installHook;\r
+ INPUT_DETOUR m_inputDetour;\r
Engine *m_engine;\r
};\r
\r
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
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
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
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