MessageProc 函数

说明

SetWindowsHookExA SetWindowsHookExW函数一起使用的应用程序定义或库定义的回调函数。/ 在对话框、消息框、菜单或滚动条中发生输入事件之后,但在处理输入事件生成的消息之前,系统将调用此函数。 挂钩过程可以监视由特定应用程序或所有应用程序创建的对话框、消息框、菜单或滚动条的消息。

HOOKPROC 类型定义指向此回调函数的指针。 MessageProc 是应用程序定义或库定义的函数名称的占位符。

LRESULT CALLBACK MessageProc(
  _In_ int    code,
       WPARAM wParam,
  _In_ LPARAM lParam
);

参数

代码 [in]

类型: int

生成消息的输入事件的类型。

如果 代码 小于零,挂钩过程必须将消息传递到 CallNextHookEx 函数,而无需进一步处理,并返回 CallNextHookEx 返回的值。

此参数的取值可为下列值之一:

含义
MSGF_DDEMGR 0x8001 当动态数据交换管理库 (DDEML) 等待同步事务完成时发生输入事件。 有关 DDEML 的详细信息,请参阅 动态数据交换管理库
MSGF_DIALOGBOX 0 输入事件发生在消息框或对话框中。
MSGF_MENU 2 输入事件发生在菜单中。
MSGF_SCROLLBAR 5 输入事件发生在滚动条中。

wParam

类型:WPARAM

未使用此参数。

lParam [in]

类型:LPARAM

指向 MSG 结构的指针。

返回

类型: LRESULT

如果 代码 小于零,挂钩过程必须返回 CallNextHookEx 返回的值。

如果 代码 大于或等于零,并且挂钩过程未处理消息,强烈建议调用 CallNextHookEx 并返回它返回的值;否则,安装 WH_MSGFILTER 挂钩的其他应用程序将不会收到挂钩通知,因此行为可能不正确。 如果挂钩过程处理了消息,它可能会返回非零值,以防止系统将消息传递给挂钩链的其余部分或目标窗口过程。

注解

应用程序通过在调用 SetWindowsHookExA/ SetWindowsHookExW 函数中指定WH_MSGFILTER挂钩类型和指向挂钩过程的指针来安装挂钩过程。

如果使用 DDEML 并执行同步事务的应用程序必须在调度消息之前处理消息,则必须使用 WH_MSGFILTER 挂钩。

另请参阅

CallNextHookEx

SetWindowsHookEx

味精

挂钩