mirror of
https://github.com/ckaczor/WorkIndicator.git
synced 2026-01-14 01:25:45 -05:00
Initial commit
This commit is contained in:
87
Delcom/HIDDeclarations.cs
Normal file
87
Delcom/HIDDeclarations.cs
Normal file
@@ -0,0 +1,87 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using Microsoft.Win32.SafeHandles;
|
||||
|
||||
namespace WorkIndicator.Delcom
|
||||
{
|
||||
internal sealed partial class HID
|
||||
{
|
||||
// API declarations for HID communications.
|
||||
|
||||
// from hidpi.h
|
||||
// Typedef enum defines a set of integer constants for HidP_Report_Type
|
||||
|
||||
internal const Int16 HidPInput = 0;
|
||||
internal const Int16 HidPOutput = 1;
|
||||
internal const Int16 HidPFeature = 2;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal struct HiddAttributes
|
||||
{
|
||||
internal Int32 Size;
|
||||
internal UInt16 VendorID;
|
||||
internal UInt16 ProductID;
|
||||
internal UInt16 VersionNumber;
|
||||
}
|
||||
|
||||
internal struct HidpCaps
|
||||
{
|
||||
internal Int16 Usage;
|
||||
internal Int16 UsagePage;
|
||||
internal Int16 InputReportByteLength;
|
||||
internal Int16 OutputReportByteLength;
|
||||
internal Int16 FeatureReportByteLength;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 17)]
|
||||
internal Int16[] Reserved;
|
||||
internal Int16 NumberLinkCollectionNodes;
|
||||
internal Int16 NumberInputButtonCaps;
|
||||
internal Int16 NumberInputValueCaps;
|
||||
internal Int16 NumberInputDataIndices;
|
||||
internal Int16 NumberOutputButtonCaps;
|
||||
internal Int16 NumberOutputValueCaps;
|
||||
internal Int16 NumberOutputDataIndices;
|
||||
internal Int16 NumberFeatureButtonCaps;
|
||||
internal Int16 NumberFeatureValueCaps;
|
||||
internal Int16 NumberFeatureDataIndices;
|
||||
}
|
||||
|
||||
[DllImport("hid.dll", SetLastError = true)]
|
||||
internal static extern Boolean HidD_FlushQueue(SafeFileHandle hidDeviceObject);
|
||||
|
||||
[DllImport("hid.dll", SetLastError = true)]
|
||||
internal static extern Boolean HidD_FreePreparsedData(IntPtr preparsedData);
|
||||
|
||||
[DllImport("hid.dll", SetLastError = true)]
|
||||
internal static extern Boolean HidD_GetAttributes(SafeFileHandle hidDeviceObject, ref HiddAttributes hiddAttributes);
|
||||
|
||||
[DllImport("hid.dll", SetLastError = true)]
|
||||
internal static extern Boolean HidD_GetFeature(SafeFileHandle hidDeviceObject, Byte[] lpReportBuffer, Int32 reportBufferLength);
|
||||
|
||||
[DllImport("hid.dll", SetLastError = true)]
|
||||
internal static extern Boolean HidD_GetInputReport(SafeFileHandle hidDeviceObject, Byte[] lpReportBuffer, Int32 reportBufferLength);
|
||||
|
||||
[DllImport("hid.dll", SetLastError = true)]
|
||||
internal static extern void HidD_GetHidGuid(ref Guid hidGuid);
|
||||
|
||||
[DllImport("hid.dll", SetLastError = true)]
|
||||
internal static extern Boolean HidD_GetNumInputBuffers(SafeFileHandle hidDeviceObject, ref Int32 numberBuffers);
|
||||
|
||||
[DllImport("hid.dll", SetLastError = true)]
|
||||
internal static extern Boolean HidD_GetPreparsedData(SafeFileHandle hidDeviceObject, ref IntPtr preparsedData);
|
||||
|
||||
[DllImport("hid.dll", SetLastError = true)]
|
||||
internal static extern Boolean HidD_SetFeature(SafeFileHandle hidDeviceObject, Byte[] lpReportBuffer, Int32 reportBufferLength);
|
||||
|
||||
[DllImport("hid.dll", SetLastError = true)]
|
||||
internal static extern Boolean HidD_SetNumInputBuffers(SafeFileHandle hidDeviceObject, Int32 numberBuffers);
|
||||
|
||||
[DllImport("hid.dll", SetLastError = true)]
|
||||
internal static extern Boolean HidD_SetOutputReport(SafeFileHandle hidDeviceObject, Byte[] lpReportBuffer, Int32 reportBufferLength);
|
||||
|
||||
[DllImport("hid.dll", SetLastError = true)]
|
||||
internal static extern Int32 HidP_GetCaps(IntPtr preparsedData, ref HidpCaps capabilities);
|
||||
|
||||
[DllImport("hid.dll", SetLastError = true)]
|
||||
internal static extern Int32 HidP_GetValueCaps(Int32 reportType, Byte[] valueCaps, ref Int32 valueCapsLength, IntPtr preparsedData);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user