/// <summary>
/// Value type for raw input.
/// </summary>
[StructLayout(LayoutKind.Explicit)]
public struct RawInput
{
/// <summary>Header for the data.</summary>
[FieldOffset(0)]
public RawInputHeader Header;
/// <summary>Mouse raw input data.</summary>
[FieldOffset(16)]
public RawInputMouse Mouse;
/// <summary>Keyboard raw input data.</summary>
[FieldOffset(16)]
public RawKeyboard Keyboard;
/// <summary>HID raw input data.</summary>
[FieldOffset(16)]
public RawInputHid Hid;
}
/// <summary>
/// Contains the raw input from a device.
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct RawInput
{
/// <summary>
/// Header for the data.
/// </summary>
public RawInputHeader Header;
public Union Data;
[StructLayout(LayoutKind.Explicit)]
public struct Union
{
/// <summary>
/// Mouse raw input data.
/// </summary>
[FieldOffset(0)]
public RawMouse Mouse;
/// <summary>
/// Keyboard raw input data.
/// </summary>
[FieldOffset(0)]
public RawKeyboard Keyboard;
/// <summary>
/// HID raw input data.
/// </summary>
[FieldOffset(0)]
public RawHID HID;
}
}
''' <summary>Contains the raw input from a device.</summary>
<StructLayout(LayoutKind.Sequential)>
Public Structure RawInput
''' <summary>Header for the data.</summary>
Public Header As RAWINPUTHEADER
Public Data As Union
<StructLayout(LayoutKind.Explicit)>
Public Structure Union
''' <summary>Mouse raw input data.</summary>
<FieldOffset(0)>
Public Mouse As RAWMOUSE
''' <summary>Keyboard raw input data.</summary>
<FieldOffset(0)>
Public Keyboard As RAWKEYBOARD
''' <summary>HID raw input data.</summary>
<FieldOffset(0)>
Public HID As RAWHID
End Structure
End Structure
None.
On 64bit platform use offset size 24.