Files
Leviathan/Client/Game/game/Hooking/Hooking.cpp
T
2026-06-01 12:46:52 +02:00

37 lines
750 B
C++

// 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;
}