CallNextHookEx是一种函数,可以将
钩子信息传递到当前钩子链中的下一个子程,一个钩子程序可以调用这个函数之前或之后处理钩子信息。
函数信息
函数功能
将钩子信息传递到当前钩子链中的下一个子程,一个钩子程序可以调用这个函数之前或之后处理钩子信息
函数原型
LRESULT WINAPI CallNextHookEx( _In_opt_ HHOOK hhk, _In_ int nCode, _In_ WPARAM wParam, _In_ LPARAM lParam);
参数
1. hhk[可选]
说明:当前钩子的句柄
类型:HHOOK
此参数将被忽略。
2. nCode [in]
说明:钩子代码; 就是给下一个钩子要交待的
类型:INT
钩传递给当前Hook过程的代码。下一个钩子程序使用此代码,以确定如何处理钩的信息。
3. wParam[in]
说明:要传递的参数; 由钩子类型决定是什么参数
wParam参数值传递给当前Hook过程。此参数的含义取决于当前的钩链与钩的类型。
4. lParam[in]
说明:要传递的参数; 由钩子类型决定是什么参数
lParam的值传递给当前Hook过程。此参数的含义取决于当前的钩链与钩的类型。
返回值
1. 类型:LRESULT
2. 返回这个值链中的下一个钩子程序。当前Hook过程也必须返回该值。返回值的含义取决于钩型。有关详细信息,请参阅个人钩子程序的描述
其它资料
速查:Windows 2000及更高版本、Windows Server 2000及更高版本
库文件:user32.lib;
Unicode:在 Windows NT上实现为 Unicode和 ANSI两种版本。
声明
C#声明
static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam,IntPtr lParam);
// 使用LowLevelKeyboardProc重载(键盘钩子)
static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, WM wParam, [In]KBDLLHOOKSTRUCT lParam);
// 使用LowLevelMouseProc重载(鼠标钩子)
static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, WM wParam, [In]MSLLHOOKSTRUCT lParam);
VB.NET声明
Private Shared Function CallNextHookEx(ByVal hhk As IntPtr, ByVal nCode As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
End Function
' 使用LowLevelKeyboardProc重载(键盘钩子)
Private Shared Function CallNextHookEx(ByVal hhk As IntPtr, ByVal nCode As Integer, ByVal wParam As WindowsMessages, <[In]()> ByVal lParam As KBDLLHOOKSTRUCT) As IntPtr
End Function
' 使用LowLevelMouseProc重载(鼠标钩子)
Private Shared Function CallNextHookEx(ByVal hhk As IntPtr, ByVal nCode As Integer, ByVal wParam As WindowsMessages, <[In]()> ByVal lParam As MSLLHOOKSTRUCT) As IntPtr
End Function
VB声明
(ByVal hHook As Long, _
ByVal ncode As Long, _
ByVal wParam As WindowsMessages, _
lParam As Any) As Long
' 使用LowLevelKeyboardProc重载(键盘钩子)
(ByVal hHook As Long, _
ByVal ncode As Long, _
ByVal wParam As WindowsMessages, _
(lParam As KBDLLHOOKSTRUCT) As Long
' 使用LowLevelMouseProc重载(鼠标钩子)
(ByVal hHook As Long, _
ByVal ncode As Long, _
ByVal wParam As WindowsMessages, _
lParam As MSLLHOOKSTRUCT) As Long