Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef _DLL_HOOKER
- #define _DLL_HOOKER
- #include<Windows.h>
- static HHOOK hHook;
- typedef void (*FuncHandle)(int,int);
- static FuncHandle Handler = NULL;
- LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam);
- BOOL APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
- {
- switch (dwReason)
- {
- case DLL_PROCESS_ATTACH:
- DisableThreadLibraryCalls(hInstance);
- hHook = SetWindowsHookEx(WH_KEYBOARD_LL, HookProc, hInstance, NULL);
- break;
- case DLL_PROCESS_DETACH:
- UnhookWindowsHookEx(hHook);
- break;
- }
- return true;
- }
- LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam)
- {
- if (nCode >= 0 && LOWORD(wParam) == WM_KEYDOWN)
- {
- if(Handler)
- {
- KBDLLHOOKSTRUCT St = *(KBDLLHOOKSTRUCT *)lParam;
- (*Handler)(St.vkCode, St.flags);
- }
- }
- return CallNextHookEx(NULL, nCode, wParam, lParam);
- }
- extern "C" __declspec(dllexport) void CALLBACK SetHandler(FuncHandle handlerfunc)
- {
- Handler = handlerfunc;
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement