DebugProc挂接过程是一个应用程序定义或库定义的回调函数,Windows调用与任何其他类型的钩子关联的钩子过程之前调用。系统将有关要调用的钩子的信息传递给DebugProc挂钩过程,该过程检查信息并确定是否允许调用挂钩。
LRESULT CALLBACK DebugProc(
INT 【NCODE】, | //钩子代码 |
WPARAM 【wParam中】, | //类型的钩子即将被调用 |
LPARAM 【lParam的】 | //具有调试信息的结构地址 |
); |
参数
【NCODE】
指定挂接过程是否处理消息。如果【NCODE】为HC_ACTION,则挂接过程必须处理该消息。如果【NCODE】小于零,挂钩过程必须将消息传递给CallNextHookEx函数,无需进一步处理,并返回CallNextHookEx返回的值。
【wParam中】
指定要调用的钩子的类型。此参数可以是以下值之一:
值 | 描述 |
WH_CALLWNDPROC | 安装一个挂钩过程,监视发送到窗口过程的消息。有关详细信息,请参阅CallWndProc挂接过程的说明。 |
WH_CALLWNDPROCRET | 安装一个挂接过程,监视刚刚被窗口过程处理的消息。有关详细信息,请参阅CallWndRetProc挂接过程的描述。 |
WH_CBT | 安装钩子程序,接收对基于计算机的培训(CBT)应用程序有用的通知。有关详细信息,请参阅CBTProc挂接过程的描述。 |
WH_DEBUG | 安装一个挂钩程序,用于调试其他钩子程序。有关详细信息,请参阅DebugProc挂接过程的说明。 |
WH_GETMESSAGE | 安装一个挂钩过程,监视发送到消息队列的消息。有关详细信息,请参阅GetMsgProc挂钩过程的说明。 |
WH_JOURNALPLAYBACK | 安装一个挂钩过程,用于发送先前由WH_JOURNALRECORD挂钩过程记录的消息。有关详细信息,请参阅JournalPlaybackProc挂接过程的说明。 |
WH_JOURNALRECORD | 安装挂钩过程,记录发布到系统消息队列的输入消息。这个钩子对于记录宏是有用的。有关详细信息,请参阅JournalRecordProc挂钩过程的说明。 |
WH_KEYBOARD | 安装一个挂钩程序来监视按键消息。有关详细信息,请参阅KeyboardProc挂接过程的说明。 |
WH_MOUSE | 安装一个监视鼠标消息的挂钩过程。有关详细信息,请参阅MouseProc挂接过程的说明。 |
WH_MSGFILTER | 安装一个挂钩过程,用于监视由对话框,消息框,菜单或滚动条中的输入事件生成的消息。挂钩过程仅针对安装挂接过程的应用程序监视这些消息。有关详细信息,请参阅MessageProc挂接过程的说明。 |
WH_SHELL | 安装钩子过程,接收对shell应用程序有用的通知。有关详细信息,请参阅ShellProc挂接过程的说明。 |
WH_SYSMSGFILTER | 安装一个挂钩过程,用于监视由对话框,消息框,菜单或滚动条中的输入事件生成的消息。挂钩过程监视系统中所有应用程序的这些消息。有关详细信息,请参阅SysMsgProc挂接过程的说明。 |
【lParam的】
指向DEBUGHOOKINFO结构,其中包含要传递到目标挂钩过程的参数。
返回值
为了防止系统调用挂钩,返回值必须是非零值。否则,挂钩过程必须将钩子信息传递给CallNextHookEx函数。
备注
应用程序通过在调用SetWindowsHookEx函数中指定WH_DEBUG钩子类型和指向钩子过程的指针来安装此钩子过程。
CallWndProc和CallWndRetProc是应用程序定义或库定义的函数名称的占位符。
也可以看看
CallNextHookEx, CallWndProc, CallWndRetProc, CBTProc, DEBUGHOOKINFO, GetMsgProc, JournalPlaybackProc, JournalRecordProc, KeyboardProc, MessageProc, MouseProc, SetWindowsHookEx, ShellProc, SysMsgProc