使用英语阅读

通过


GetMsgProc 函数

-description

SetWindowsHookExA/SetWindowsHookExW 函数一起使用的应用程序定义或库定义的回调函数。 每当 GetMessagePeekMessageA/PeekMessageW 函数从应用程序消息队列中检索消息后,系统都会调用此函数。 在将检索到的消息返回到调用方之前,系统会将消息传递给钩子过程。

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

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

-parameters

代码 [in]

类型:int

指定钩子过程是否必须处理消息。 如果代码是 HC_ACTION,则钩子过程必须处理消息。 如果代码小于零,则钩子过程必须将消息传递给 CallNextHookEx 函数,而无需进一步处理,并且应返回 CallNextHookEx 返回的值

wParam [in]

类型:WPARAM

指定是否已从队列中删除消息。 此参数的取值可为下列值之一。

含义
PM_NOREMOVE 0x0000 消息尚未从队列中删除。 (一个应用程序调用了 PeekMessage 函数,且指定 PM_NOREMOVE 标志。
PM_REMOVE 0x0001 消息已从队列中删除。 (一个应用程序调用了 GetMessage,或者它调用了 PeekMessage 函数,且指定 PM_REMOVE 标志。)

lParam [in]

类型:LPARAM

指向包含消息详细信息的 MSG 结构的指针。

-returns

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

如果代码大于或等于零,则强烈建议调用 CallNextHookEx 并返回它返回的值;否则,安装有 WH_GETMESSAGE 钩子的其他应用程序不会收到钩子通知,可能会因此出现错误行为。 如果钩子过程不调用 CallNextHookEx,则返回值应为零

-remarks

GetMsgProc 钩子过程可以查看或修改消息

钩子过程将控制返回到系统后,GetMessagePeekMessageA/PeekMessageW 函数返回消息以及对最初调用它的应用程序的任何修改。

应用程序安装此钩子过程,方法是指定 WH_GETMESSAGE 钩子类型以及指向对 SetWindowsHookExA/SetWindowsHookExW 函数的调用中的钩子过程的指针。

另请参阅

CallNextHookEx

GetMessage

MSG

PeekMessage

SetWindowsHookEx

挂钩