Пытаюсь написать хук клавиатуры и сразу возникла проблема в написании DLL. При установки самого хука devenv.exe начинает жрать все 99.9% процесорного времени

, но этого не происходит если в KeyboardProc оставить только:
return (int)CallNextHookEx(hdHookData->ghHook,nCode,wParam,lParam);
на самом деле DLL выглядит прмерно так:
#define WM_MYHOOKMSG (WM_USER+1)
HWND hCaller;
HHOOK ghHook;
BOOL WINAPI DllMain(HINSTANCE hDLLInst, DWORD fdwReason, LPVOID lpvReserved){
...
}
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode>=0)
{
PostMessage(hCaller,WM_MYHOOKMSG,wParam,lParam);
}
return (int)CallNextHookEx(hdHookData->ghHook,nCode,wParam,lParam);
}
HHOOK APIENTRY SetKeyHook(HWND CallerHwnd)
{
if (ghHook) UnhookWindowsHookEx(hdHookData->ghHook);
hCaller=CallerHwnd;
ghHook=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardProc,hInstDLL,0);
return ghHook;
}
void APIENTRY ReleaseHook(void)
{
UnhookWindowsHookEx(ghHook);
}
Из программы вызываю SetKeyHook(hMainWnd); где hMainWnd это хендл моего окна, чтобы потом получать сообщения о хуках. Но в самой программе я WM_MYHOOKMSG ещё никак не обрабатываю. Я хук то поставить не могу