CallWndProc消息钩子回调CWPSTRUCT结构体

安装钩子

messagehook = SetWindowsHookExA (4, &回调函数, 0, threadID)

threadID当前应用窗口的线程ID

回调函数

.版本 2
 
.子程序 回调函数, 整数型
.参数 nCode, 整数型, , 指定钩子子程是否必须处理消息。
.参数 wParam, 整数型, , 指定消息是否由当前线程发送。如果消息是由当前线程发送的,则非零;否则,它就是零。
.参数 lParam, 整数型, , 指向包含消息详细信息的CWPSTRUCT结构的指针。

.参数 nCode
指定钩子子程是否必须处理消息。如果nCode是HC_ACTION,钩子子程必须处理消息。如果nCode小于零,钩子子程必须将消息传递给CallNextHookEx函数,而无需进一步处理,并且必须返回CallNextHookEx返回的值。
CallWndProc callback function (Windows)
与SetWindowsHookEx函数一起使用的应用程序定义的或库定义的回调函数。系统在调用窗口过程处理发送给线程的消息之前调用此函数。
HOOKPROC类型定义了指向这个回调函数的指针。CallWndProc是应用程序定义或库定义函数名的占位符。

C++
 
LRESULT CALLBACK CallWndProc(
  _In_ int    nCode,
  _In_ WPARAM wParam,
  _In_ LPARAM lParam
);

https://msdn.microsoft.com/en-us/library/ms644975(v=VS.85).aspx

消息结构体CWPSTRUCT

.版本 2
 
.数据类型 CWPSTRUCT
    .成员 lParam, 整数型, , , 关于消息的附加信息。确切的含义取决于消息值。
    .成员 wParam, 整数型, , , 关于消息的附加信息。确切的含义取决于消息值。
    .成员 message, 整数型, , , 消息
    .成员 hwnd, 整数型, , , 接收消息的窗口的句柄。

tagCWPSTRUCT | Microsoft Docs

typedef struct tagCWPSTRUCT {
  LPARAM lParam;
  WPARAM wParam;
  UINT   message;
  HWND   hwnd;
} CWPSTRUCT, *PCWPSTRUCT, *NPCWPSTRUCT, *LPCWPSTRUCT;

wParam窗口最小化最大化关闭还原

拦截 WM_SYSCOMMAND = 274
判断wParam
SC_MINIMIZE=61472最小化
SC_CLOSE=61536关闭
SC_RESTORE=61728还原
SC_MAXIMIZE=61488最大化

https://docs.microsoft.com/en-us/windows/desktop/api/winuser/ns-winuser-tagcwpstruct


发布日期:

所属分类: 易语言 标签: