How to keep static data in a keyboard hook?
I created a simple DLL to do a global keyboard hook, but I was unable to communicate data between the procedure which set up the hook and the hook itself:
HHOOK hKeyboardHook = NULL;
int i = 0;
LRESULT CALLBACK KeyboardHookProc(int code, WPARAM wParam, LPARAM lParam) {
if (code < 0)
return CallNextHookEx(hKeyboardHook, code, wParam, lParam);
if (i = 0) {
MessageBox(NULL, "ERROR, DATA NOT COMMUNICATED", "ERROR", 0);
}
return 0;
}
extern "C" HHOOK CFHookKeyboard(void) {
if (!hKeyboardHook)
hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD, KeyboardHookProc, (HINSTANCE)hMod, 0);
i = 1;
return hKeyboardHook;
}
Anyone knows of any fix?