KBDLLHOOKSTRUCT (Structures)
Last changed: -136.174.5.25

.
Summary
The KBDLLHOOKSTRUCT structure contains information about a low-level keyboard input event

C# Definition:

[StructLayout(LayoutKind.Sequential)]
public class KBDLLHOOKSTRUCT
{
    public UInt32 vkCode;
    public UInt32 scanCode;
    public UInt32 flags;
    public UInt32 time;
    public IntPtr dwExtraInfo;
}

Visual Basic 9 declaration

    <StructLayout(LayoutKind.Sequential)> _
    Public Structure KBDLLHOOKSTRUCT
        Public vkCode As Integer
        Public scanCode As Integer
        Public flags As KBDLLHOOKSTRUCTFlags
        Public time As Integer
        Public dwExtraInfo As IntPtr
    End Structure

    <Flags()> _
    Public Enum KBDLLHOOKSTRUCTFlags As Integer
        LLKHF_EXTENDED = &H1
        LLKHF_INJECTED = &H10
        LLKHF_ALTDOWN = &H20
        LLKHF_UP = &H80
    End Enum

VB Definition:

    <StructLayout(LayoutKind.Sequential)> _
    Public Class KBDLLHOOKSTRUCT
    public vkCode As UInt32
    public scanCode As UInt32
    public flags As UInt32
    public time As UInt32
    public dwExtraInfo As IntPtr
    End Class

Notes:

This is named "struct" to be consistent with the Windows API name, but it must be a class since it is passed as a pointer (AKA reference) in in SetWindowsHookEx and CallNextHookEx.

Documentation

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookstructures/kbdllhookstruct.asp