Win32Hid.cs
author sl
Sat, 06 Dec 2014 01:53:55 +0100
changeset 21 fb4f80d5cf57
child 23 743cadfacda0
permissions -rw-r--r--
Proper UsageId definitions.
     1 using System;
     2 using System.Runtime.InteropServices;
     3 
     4 namespace Win32
     5 {
     6 
     7     static partial class Function
     8     {
     9         [DllImport("hid.dll", CharSet = CharSet.Unicode)]
    10         public static extern HidStatus HidP_GetUsagesEx(HIDP_REPORT_TYPE ReportType, ushort LinkCollection, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] USAGE_AND_PAGE[] ButtonList, ref uint UsageLength, IntPtr PreparsedData, [MarshalAs(UnmanagedType.LPArray)] byte[] Report, uint ReportLength);
    11     }
    12 
    13 
    14     static partial class Macro
    15     {
    16 
    17 
    18     }
    19 
    20 
    21     static partial class Const
    22     {
    23 
    24 
    25     }
    26 
    27 
    28     public enum HIDP_REPORT_TYPE : ushort
    29     {
    30         HidP_Input = 0,
    31         HidP_Output,
    32         HidP_Feature
    33     }
    34 
    35 
    36     public enum HidStatus : uint
    37     {
    38         HIDP_STATUS_SUCCESS = 0x110000,
    39         HIDP_STATUS_NULL = 0x80110001,
    40         HIDP_STATUS_INVALID_PREPARSED_DATA = 0xc0110001,
    41         HIDP_STATUS_INVALID_REPORT_TYPE = 0xc0110002,
    42         HIDP_STATUS_INVALID_REPORT_LENGTH = 0xc0110003,
    43         HIDP_STATUS_USAGE_NOT_FOUND = 0xc0110004,
    44         HIDP_STATUS_VALUE_OUT_OF_RANGE = 0xc0110005,
    45         HIDP_STATUS_BAD_LOG_PHY_VALUES = 0xc0110006,
    46         HIDP_STATUS_BUFFER_TOO_SMALL = 0xc0110007,
    47         HIDP_STATUS_INTERNAL_ERROR = 0xc0110008,
    48         HIDP_STATUS_I8042_TRANS_UNKNOWN = 0xc0110009,
    49         HIDP_STATUS_INCOMPATIBLE_REPORT_ID = 0xc011000a,
    50         HIDP_STATUS_NOT_VALUE_ARRAY = 0xc011000b,
    51         HIDP_STATUS_IS_VALUE_ARRAY = 0xc011000c,
    52         HIDP_STATUS_DATA_INDEX_NOT_FOUND = 0xc011000d,
    53         HIDP_STATUS_DATA_INDEX_OUT_OF_RANGE = 0xc011000e,
    54         HIDP_STATUS_BUTTON_NOT_PRESSED = 0xc011000f,
    55         HIDP_STATUS_REPORT_DOES_NOT_EXIST = 0xc0110010,
    56         HIDP_STATUS_NOT_IMPLEMENTED = 0xc0110020,
    57         HIDP_STATUS_I8242_TRANS_UNKNOWN = 0xc0110009
    58     }
    59 
    60 
    61     [StructLayout(LayoutKind.Sequential)]
    62     public struct USAGE_AND_PAGE
    63     {
    64         public ushort Usage;
    65         public ushort UsagePage;
    66     };
    67 
    68 
    69 }