钩子一共有14种,以下是它们被调用的时机: <br>WH_CALLWNDPROC 当调用SendMessage时 <br>WH_CALLWNDPROCRET 当SendMessage的调用返回时 <br>WH_GETMESSAGE 当调用GetMessage 或 PeekMessage时 <br>WH_KEYBOARD 当调用GetMessage 或 PeekMessage 来从消息队列中查询WM_KEYUP 或 WM_KEYDOWN 消息时 <br>WH_MOUSE 当调用GetMessage 或 PeekMessage 来从消息队列中查询鼠标事件消息时 <br>WH_HARDWARE 当调用GetMessage 或 PeekMessage 来从消息队列种查询非鼠标、键盘消息时 <br>WH_MSGFILTER 当对话框、菜单或滚动条要处理一个消息时。该钩子是局部的。它时为那些有自己的消息处理过程的控件对象设计的。 <br>WH_SYSMSGFILTER 和WH_MSGFILTER一样,只不过是系统范围的 <br>WH_JOURNALRECORD 当WINDOWS从硬件队列中获得消息时 <br>WH_JOURNALPLAYBACK 当一个事件从系统的硬件输入队列中被请求时 <br>WH_SHELL 当关于WINDOWS外壳事件发生时,譬如任务条需要重画它的按钮. <br>WH_CBT 当基于计算机的训练(CBT)事件发生时 <br>WH_FOREGROUNDIDLE 由WINDOWS自己使用,一般的应用程序很少使用 <br>WH_DEBUG 用来给钩子函数除错