#include <windows.h>
#include <stdio.h>
#include "hook.h"
HINSTANCE hInst;
HHOOK hHook;
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD dwReason, LPVOID lpReserved)
{
switch (dwReason)
{
case DLL_PROCESS_ATTACH:
hInst = hInstDLL;
hHook = NULL;
break;
}
return TRUE;
}
BOOL DllSetHook()
{
if (hHook != NULL)
{
return FALSE;
}
hHook = SetWindowsHookEx(WH_CALLWNDPROC, MyHookProc, hInst, 0);
if(hHook == NULL)
{
return FALSE;
}
return TRUE;
}
BOOL DllUnSetHook()
{
BOOL ret = TRUE;
ret = UnhookWindowsHookEx(hHook);
if(ret == FALSE)
{
return FALSE;
}
hHook = NULL;
return TRUE;
}
LRESULT CALLBACK MyHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
DWORD dwThreadID = (DWORD)wParam;
LPCWPSTRUCT pCwpStruct = LPCWPSTRUCT(lParam);
if (pCwpStruct->message WM_MOUSEMOVE &&
pCwpStruct->message <= WM_MBUTTONDBLCLK)
{
//do something~
}
return CallNextHookEx(NULL, nCode, wParam, lParam);
}