// 2010.06.17 - prodongi #include "Hooking.h" #include "Windows.h" #include "GameRule.h" static HHOOK hKeyboardHook = NULL; LRESULT CALLBACK keyboardProc(int code, WPARAM wParam, LPARAM lParam) { if (0 < code) { int vk = LOWORD(wParam); // key down if (!(lParam & 0x80000000)) { if(GameRule::GetCurrentLocalBitSet() == GameRule::LOCAL_BITSET::KR) { if (VK_HANJA == vk) return 1; } } } return ::CallNextHookEx(hKeyboardHook, code, wParam, lParam); } bool initKeyboardHook() { hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)keyboardProc, NULL, GetCurrentThreadId()); return (hKeyboardHook) ? true : false; } bool delKeyboardHook() { return (TRUE == UnhookWindowsHookEx(hKeyboardHook)) ? true : false; }