init
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace DTS.DASLib.Connection.USBFramework
|
||||
{
|
||||
public sealed class HIDDeclarations
|
||||
{
|
||||
|
||||
// API Declarations for communicating with HID-class devices.
|
||||
|
||||
// ******************************************************************************
|
||||
// API constants
|
||||
// ******************************************************************************
|
||||
|
||||
// from hidpi.h
|
||||
// Typedef enum defines a set of integer constants for HidP_Report_Type
|
||||
public const short HidP_Input = 0;
|
||||
public const short HidP_Output = 1;
|
||||
public const short HidP_Feature = 2;
|
||||
|
||||
// ******************************************************************************
|
||||
// Structures and classes for API calls, listed alphabetically
|
||||
// ******************************************************************************
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct HIDD_ATTRIBUTES
|
||||
{
|
||||
public int Size;
|
||||
public short VendorID;
|
||||
public short ProductID;
|
||||
public short VersionNumber;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct HIDP_CAPS
|
||||
{
|
||||
public short Usage;
|
||||
public short UsagePage;
|
||||
public short InputReportByteLength;
|
||||
public short OutputReportByteLength;
|
||||
public short FeatureReportByteLength;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 17)]
|
||||
public short[] Reserved;
|
||||
public short NumberLinkCollectionNodes;
|
||||
public short NumberInputButtonCaps;
|
||||
public short NumberInputValueCaps;
|
||||
public short NumberInputDataIndices;
|
||||
public short NumberOutputButtonCaps;
|
||||
public short NumberOutputValueCaps;
|
||||
public short NumberOutputDataIndices;
|
||||
public short NumberFeatureButtonCaps;
|
||||
public short NumberFeatureValueCaps;
|
||||
public short NumberFeatureDataIndices;
|
||||
|
||||
}
|
||||
|
||||
// If IsRange is false, UsageMin is the Usage and UsageMax is unused.
|
||||
// If IsStringRange is false, StringMin is the string index and StringMax is unused.
|
||||
// If IsDesignatorRange is false, DesignatorMin is the designator index and DesignatorMax is unused.
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct HidP_Value_Caps
|
||||
{
|
||||
public short UsagePage;
|
||||
public byte ReportID;
|
||||
public int IsAlias;
|
||||
public short BitField;
|
||||
public short LinkCollection;
|
||||
public short LinkUsage;
|
||||
public short LinkUsagePage;
|
||||
public int IsRange;
|
||||
public int IsStringRange;
|
||||
public int IsDesignatorRange;
|
||||
public int IsAbsolute;
|
||||
public int HasNull;
|
||||
public byte Reserved;
|
||||
public short BitSize;
|
||||
public short ReportCount;
|
||||
public short Reserved2;
|
||||
public short Reserved3;
|
||||
public short Reserved4;
|
||||
public short Reserved5;
|
||||
public short Reserved6;
|
||||
public int LogicalMin;
|
||||
public int LogicalMax;
|
||||
public int PhysicalMin;
|
||||
public int PhysicalMax;
|
||||
public short UsageMin;
|
||||
public short UsageMax;
|
||||
public short StringMin;
|
||||
public short StringMax;
|
||||
public short DesignatorMin;
|
||||
public short DesignatorMax;
|
||||
public short DataIndexMin;
|
||||
public short DataIndexMax;
|
||||
}
|
||||
|
||||
// ******************************************************************************
|
||||
// API functions, listed alphabetically
|
||||
// ******************************************************************************
|
||||
|
||||
[DllImport("hid.dll")]
|
||||
static public extern bool HidD_FlushQueue(int HidDeviceObject);
|
||||
|
||||
[DllImport("hid.dll")]
|
||||
static public extern bool HidD_FreePreparsedData(ref IntPtr PreparsedData);
|
||||
|
||||
[DllImport("hid.dll")]
|
||||
static public extern int HidD_GetAttributes(int HidDeviceObject, ref HIDD_ATTRIBUTES Attributes);
|
||||
|
||||
[DllImport("hid.dll")]
|
||||
static public extern bool HidD_GetFeature(int HidDeviceObject, ref byte lpReportBuffer, int ReportBufferLength);
|
||||
|
||||
[DllImport("hid.dll")]
|
||||
static public extern bool HidD_GetInputReport(int HidDeviceObject, ref byte lpReportBuffer, int ReportBufferLength);
|
||||
|
||||
[DllImport("hid.dll")]
|
||||
static public extern void HidD_GetHidGuid(ref System.Guid HidGuid);
|
||||
|
||||
[DllImport("hid.dll")]
|
||||
static public extern bool HidD_GetNumInputBuffers(int HidDeviceObject, ref int NumberBuffers);
|
||||
|
||||
[DllImport("hid.dll")]
|
||||
static public extern bool HidD_GetPreparsedData(int HidDeviceObject, ref IntPtr PreparsedData);
|
||||
|
||||
[DllImport("hid.dll")]
|
||||
static public extern bool HidD_SetFeature(int HidDeviceObject, ref byte lpReportBuffer, int ReportBufferLength);
|
||||
|
||||
[DllImport("hid.dll")]
|
||||
static public extern bool HidD_SetNumInputBuffers(int HidDeviceObject, int NumberBuffers);
|
||||
|
||||
[DllImport("hid.dll")]
|
||||
static public extern bool HidD_SetOutputReport(int HidDeviceObject, ref byte lpReportBuffer, int ReportBufferLength);
|
||||
|
||||
[DllImport("hid.dll")]
|
||||
static public extern int HidP_GetCaps(IntPtr PreparsedData, ref HIDP_CAPS Capabilities);
|
||||
|
||||
[DllImport("hid.dll")]
|
||||
static public extern int HidP_GetValueCaps(short ReportType, ref byte ValueCaps, ref short ValueCapsLength, IntPtr PreparsedData);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user