博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OCX中使用钩子HOOK消息
阅读量:3986 次
发布时间:2019-05-24

本文共 672 字,大约阅读时间需要 2 分钟。

使用背景

有些消息是只发给顶层窗口的,OCX被加载到网页中后,有些消息就接收不到,这时候需要我们用hook来截取消息。

使用步骤

1.首先在OCX的cpp文件中声明一个全局变量:
static HHOOK hHook=NULL;
2.定义hHook处理函数:
LRESULT CALLBACK GetMessageProc(int nCode, WPARAM wParam, LPARAM lParam)
{
 LPMSG lpMsg = (LPMSG) lParam;
 if( (nCode >= 0) && (PM_REMOVE == wParam) &&
  AfxGetApp()->PreTranslateMessage(lpMsg))
 {
  lpMsg->message = WM_NULL;
  lpMsg->lParam = 0L;
  lpMsg->wParam = 0;
 }
 // 将钩子消息传递给当前钩子链中的下一个钩子
 return ::CallNextHookEx(hHook, nCode, wParam, lParam);
}
3.在OCX的"Oncreate"中添加如下代码:
 hHook = ::SetWindowsHookEx(WH_GETMESSAGE, GetMessageProc, 
  AfxGetInstanceHandle(),GetCurrentThreadId());
4.释放资源,在OCX的"OnDestroy"消息中添加如下代码:
VERIFY(::UnhookWindowsHookEx(hHook));

转载地址:http://ozxui.baihongyu.com/

你可能感兴趣的文章
《Fluent Python》第三章Dictionaries and Sets
查看>>
如何打开ipynb文件
查看>>
[Leetcode BY python ]190. Reverse Bits
查看>>
面试---刷牛客算法题
查看>>
Android下调用收发短信邮件等(转载)
查看>>
Android中电池信息(Battery information)的取得
查看>>
SVN客户端命令详解
查看>>
Android/Linux 内存监视
查看>>
Linux系统信息查看
查看>>
用find命令查找最近修改过的文件
查看>>
Android2.1消息应用(Messaging)源码学习笔记
查看>>
在android上运行native可执行程序
查看>>
Phone双模修改涉及文件列表
查看>>
android UI小知识点
查看>>
Android之TelephonyManager类的方法详解
查看>>
Android 获取屏幕的分辨率
查看>>
android raw读取超过1M文件的方法
查看>>
ubuntu下SVN服务器安装配置
查看>>
MPMoviePlayerViewController和MPMoviePlayerController的使用
查看>>
CocoaPods实践之制作篇
查看>>