#pragma data_seg(".xkmcs")\r
bool CXkeymacsDll::m_bEnableKeyboardHook = false;\r
DWORD CXkeymacsDll::m_nHookAltRelease = 0;\r
- HHOOK CXkeymacsDll::m_hHookCallWnd = NULL;\r
- HHOOK CXkeymacsDll::m_hHookCallWndRet = NULL;\r
- HHOOK CXkeymacsDll::m_hHookGetMessage = NULL;\r
- HHOOK CXkeymacsDll::m_hHookShell = NULL;\r
BOOL CXkeymacsDll::m_bRightControl = FALSE;\r
BOOL CXkeymacsDll::m_bRightAlt = FALSE;\r
BOOL CXkeymacsDll::m_bRightShift = FALSE;\r
TCHAR CXkeymacsDll::m_M_xTip[128] = "";\r
CONFIG CXkeymacsDll::m_Config = {0};\r
#pragma data_seg()\r
+HHOOK CXkeymacsDll::m_hHookCallWnd = NULL;\r
+HHOOK CXkeymacsDll::m_hHookCallWndRet = NULL;\r
+HHOOK CXkeymacsDll::m_hHookGetMessage = NULL;\r
+HHOOK CXkeymacsDll::m_hHookShell = NULL;\r
BOOL CXkeymacsDll::m_bRecordingMacro = FALSE;\r
BOOL CXkeymacsDll::m_bDown[MAX_KEY] = {0};\r
std::list<KbdMacro> CXkeymacsDll::m_Macro;\r
\r
void CXkeymacsDll::SetHooks()\r
{\r
- m_hHookCallWnd = SetWindowsHookEx(WH_CALLWNDPROC, (HOOKPROC)CallWndProc, g_hDllInst, 0);\r
- m_hHookCallWndRet = SetWindowsHookEx(WH_CALLWNDPROCRET, (HOOKPROC)CallWndRetProc, g_hDllInst, 0);\r
- m_hHookGetMessage = SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC)GetMsgProc, g_hDllInst, 0);\r
- m_hHookShell = SetWindowsHookEx(WH_SHELL, (HOOKPROC)ShellProc, g_hDllInst, 0);\r
+ m_hHookCallWnd = SetWindowsHookEx(WH_CALLWNDPROC, CallWndProc, g_hDllInst, 0);\r
+ m_hHookCallWndRet = SetWindowsHookEx(WH_CALLWNDPROCRET, CallWndRetProc, g_hDllInst, 0);\r
+ m_hHookGetMessage = SetWindowsHookEx(WH_GETMESSAGE, GetMsgProc, g_hDllInst, 0);\r
+ m_hHookShell = SetWindowsHookEx(WH_SHELL, ShellProc, g_hDllInst, 0);\r
m_bEnableKeyboardHook = true;\r
}\r
\r
LRESULT CALLBACK CXkeymacsDll::CallWndProc(int nCode, WPARAM wParam, LPARAM lParam)\r
{\r
SetKeyboardHook();\r
- if (nCode < 0)\r
- return CallNextHookEx(m_hHookCallWnd, nCode, wParam, lParam);\r
- const CWPSTRUCT *cwps = reinterpret_cast<CWPSTRUCT *>(lParam);\r
- switch (cwps->message) {\r
- case WM_IME_STARTCOMPOSITION:\r
- InitKeyboardProc(TRUE);\r
- break;\r
- case WM_IME_ENDCOMPOSITION:\r
- InitKeyboardProc(FALSE);\r
- break;\r
- case WM_SETFOCUS:\r
- if (cwps->hwnd == GetForegroundWindow()) {\r
- InitKeyboardProc(FALSE);\r
- ShowKeyboardHookState();\r
- }\r
- break;\r
- case WM_NCACTIVATE:\r
- if (cwps->wParam && cwps->hwnd == GetForegroundWindow()) {\r
+ if (nCode >= 0) {\r
+ const CWPSTRUCT *cwps = reinterpret_cast<CWPSTRUCT *>(lParam);\r
+ switch (cwps->message) {\r
+ case WM_IME_STARTCOMPOSITION:\r
+ InitKeyboardProc(TRUE);\r
+ break;\r
+ case WM_IME_ENDCOMPOSITION:\r
InitKeyboardProc(FALSE);\r
- ShowKeyboardHookState();\r
+ break;\r
+ case WM_SETFOCUS:\r
+ if (cwps->hwnd == GetForegroundWindow()) {\r
+ InitKeyboardProc(FALSE);\r
+ ShowKeyboardHookState();\r
+ }\r
+ break;\r
+ case WM_NCACTIVATE:\r
+ if (cwps->wParam && cwps->hwnd == GetForegroundWindow()) {\r
+ InitKeyboardProc(FALSE);\r
+ ShowKeyboardHookState();\r
+ }\r
+ break;\r
}\r
- break;\r
}\r
return CallNextHookEx(m_hHookCallWnd, nCode, wParam, lParam);\r
}\r
\r
LRESULT CALLBACK CXkeymacsDll::CallWndRetProc(int nCode, WPARAM wParam, LPARAM lParam)\r
{\r
+ SetKeyboardHook();\r
if (nCode >= 0) {\r
const CWPRETSTRUCT *cwprets = reinterpret_cast<CWPRETSTRUCT *>(lParam);\r
switch (cwprets->message) {\r
\r
LRESULT CALLBACK CXkeymacsDll::GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)\r
{\r
- const MSG *msg = reinterpret_cast<MSG *>(lParam);\r
- switch (msg->message) {\r
- case WM_IME_STARTCOMPOSITION:\r
- InitKeyboardProc(TRUE);\r
- break;\r
- case WM_IME_ENDCOMPOSITION:\r
- InitKeyboardProc(FALSE);\r
- break;\r
+ SetKeyboardHook();\r
+ if (nCode >= 0) {\r
+ const MSG *msg = reinterpret_cast<MSG *>(lParam);\r
+ switch (msg->message) {\r
+ case WM_IME_STARTCOMPOSITION:\r
+ InitKeyboardProc(TRUE);\r
+ break;\r
+ case WM_IME_ENDCOMPOSITION:\r
+ InitKeyboardProc(FALSE);\r
+ break;\r
+ }\r
}\r
return CallNextHookEx(m_hHookGetMessage, nCode, wParam, lParam);\r
}\r
ShowKeyboardHookState();\r
}\r
}\r
- return CallNextHookEx( m_hHookShell, nCode, wParam, lParam );\r
+ return CallNextHookEx(m_hHookShell, nCode, wParam, lParam);\r
}\r
\r
UINT CXkeymacsDll::GetModifierState(BOOL bPhysicalKey)\r