为什么WH_GETMESSAGE全局钩子,不能拦截SendMessage函数发的消息
__declspec(dllexport) BOOL setMyHook(HWND hWnd)
{
if(hWndServer != NULL)
return FALSE; // already hooked!
hook = SetWindowsHookEx(WH_GETMESSAGE,
(HOOKPROC)msghook,
hInst,
0);
if(hook != NULL)
{ /* success */
hWndServer = hWnd;
return TRUE;
} /* success */
return FALSE; // failed to set hook
} // setMyHook
static LRESULT CALLBACK msghook(UINT nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode < 0)
{ /* pass it on */
CallNextHookEx(hook, nCode, wParam, lParam);
return 0;
} /* pass it on */
LPMSG msg = (LPMSG)lParam;
if(msg->message == WM_LBUTTONDBLCLK)
{
MessageBox(NULL,"ddd","copydata",MB_OK);
}
return CallNextHookEx(hook, nCode, wParam, lParam);
} // msghook
在exe里设置hook后,用鼠标双击可以拦截,显示消息框,但用SendMessage函数发WM_LBUTTONDBLCLK 消息就不行