正文

非Dll,设置hook2009-11-09 13:30:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lovebugs/50047.html

分享到:

回调函数必须是静态函数或全局函数。

1 .如果你把它定义为类的成员函数,则应该在声明的时候加上static。

如:static LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam);

而且在函数的实现部分,即.cpp文件中,函数名前面应加上类名。

如:LRESULT CALLBACK CSettingDlg::MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
       {
         return 1;
       }

函数的调用语句示例如下:SetWindowsHookEx(WH_MOUSE,MouseProc,NULL,GetCurrentThreadId());

2.如果你把回调函数定义为全局函数

则只要把函数实现部分放在调用之前即可。头文件中不需要声明。函数名前没有类名。

如:

/ /函数现实部分

LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
return 1;
}

/ /调用函数
void CSettingDlg::OnStart()
{

   SetWindowsHookEx(WH_MOUSE,MouseProc,NULL,GetCurrentThreadId());

}

阅读(2768) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册