我的HOOK程序是放在DLL里面的,代码如下:
LRESULT CALLBACK CursorChangeProc(int nCode,WPARAM wParam,LPARAM lParam)

TRACE0("Get HOOK!");
         PMSG pmsg;
pmsg = (MSG*)lParam;
 
switch(pmsg->message)
{
case WM_SETCURSOR:
if(HitFlag){
TRACE0("Set FALSE");
HitFlag = FALSE;
}
else{
TRACE0("Set TRUE");
HitFlag = TRUE;
}
break;
default:
break;
}
    LRESULT RetVal = CallNextHookEx( hkb, nCode, wParam, lParam ); 
    return RetVal;
}然后在我的主程序里面安装的HOOK:
SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)hCursorChangeProc,hinstDLL,0);我是想对整个系统包括其他进程进行捕捉SETCURSOR这个事件。
我现在发现程序运行时,“Get HOOK!”这句话是可以打印出来的。可是HitFlag一直没有变,而且其中的"Set FALSE"和“Set TRUE”也一直都没有打印出来。也就是我的SETCURSOR没有被捕捉到。
郁闷中!!!
请问一下,我这里哪里写错了???在线等待。高分相送