读书人

为什么小弟我这个简单的全局鼠标钩子

发布时间: 2012-02-21 16:26:23 作者: rapoo

为什么我这个简单的全局鼠标钩子,停止以后就无法启动了?大家帮忙看看
extern "C " LRESULT CALLBACK mouseproc(int code,WPARAM wparam,LPARAM lparam)
{
if(code <0)
return CallNextHookEx(hhook,code,wparam,lparam);
if(wparam==WM_LBUTTONDOWN)
{
mouseclickl++;
CPoint m_pPoint;
GetCursorPos(&m_pPoint);
point[0]=m_pPoint.x;
point[1]=m_pPoint.y;

}
return CallNextHookEx(hhook,code,wparam,lparam);
}

extern "C " bool WINAPI starthook()
{
hhook=SetWindowsHookEx(WH_MOUSE,mouseproc,pinstance,0);
if(hhook!=NULL)
return true;
else
{
return false;
}
}

extern "C " int WINAPI stophook()
{
point[0]=0;
point[1]=0;
return UnhookWindowsHookEx(hhook);
}

首次调用starthook()返回值为TRUE
调用stophook()以后再调用starthook(),返回值就为FALSE了,
奇怪

[解决办法]
帮顶一下
[解决办法]
调用GetLastError看一下错误代码
[解决办法]
这个确实要看看原因。
[解决办法]
http://blog.sina.com.cn/s/blog_4e5dcb9701000c43.html

自己收集的消息钩子代码,也许有点参考价值

读书人网 >VC/MFC

热点推荐