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