描述

WinHLLAPI 实现具有缺省阻塞过程,在过程仅包含一个消息处理程序。以下示例显示了此缺省机制:
BOOL    DefaultBlockingHook
{
      MSG msg;
 
      if (PeekMessage (&msg, NULL, 0, 0, xfPM_NOREMOVE))
      {
            if(msg.message = = WM_QUIT)
            {
                return FALSE;
            }
            PeekMessage (&msg, NULL, 0, 0, PM_REMOVE);
            TranslateMessage (&msg);
            DispatchMessage (&msg);
      }
return TRUE;
}

阻塞挂钩是在每个线程的基础上实现的。此函数设置的阻塞挂钩将对线程保持有效,直到它被另一个 WinHLLAPISetBlockingHook() 调用替换,或者直到调用 WinHLLAPIUnhookBlockingHook() 恢复缺省值为止。

如果阻塞函数收到 WM_QUIT 消息,则必须返回 FALSE,以便 WinHLLAPI 可以将控制权返回给应用程序,以处理消息并正常终止。否则,函数应返回 TRUE