⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hiddeclarations.vb

📁 visual basic 2005 express 写的上位机
💻 VB
字号:
Option Strict On
Option Explicit On 
Imports System.Runtime.InteropServices

Module HidApiDeclarations

    '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 HidP_Input As Short = 0
    Public Const HidP_Output As Short = 1
    Public Const HidP_Feature As Short = 2

    '******************************************************************************
    'Structures and classes for API calls, listed alphabetically
    '******************************************************************************

    <StructLayout(LayoutKind.Sequential)> _
    Public Structure HIDD_ATTRIBUTES
        Dim Size As Integer
        Dim VendorID As Short
        Dim ProductID As Short
        Dim VersionNumber As Short
    End Structure

    <StructLayout(LayoutKind.Sequential)> _
    Public Structure HIDP_CAPS
        Dim Usage As Short
        Dim UsagePage As Short
        Dim InputReportByteLength As Short
        Dim OutputReportByteLength As Short
        Dim FeatureReportByteLength As Short
        <MarshalAs(UnmanagedType.ByValArray, SizeConst:=17)> Dim Reserved() As Short
        Dim NumberLinkCollectionNodes As Short
        Dim NumberInputButtonCaps As Short
        Dim NumberInputValueCaps As Short
        Dim NumberInputDataIndices As Short
        Dim NumberOutputButtonCaps As Short
        Dim NumberOutputValueCaps As Short
        Dim NumberOutputDataIndices As Short
        Dim NumberFeatureButtonCaps As Short
        Dim NumberFeatureValueCaps As Short
        Dim NumberFeatureDataIndices As Short

    End Structure

    '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 Structure HidP_Value_Caps
        Dim UsagePage As Short
        Dim ReportID As Byte
        Dim IsAlias As Integer
        Dim BitField As Short
        Dim LinkCollection As Short
        Dim LinkUsage As Short
        Dim LinkUsagePage As Short
        Dim IsRange As Integer
        Dim IsStringRange As Integer
        Dim IsDesignatorRange As Integer
        Dim IsAbsolute As Integer
        Dim HasNull As Integer
        Dim Reserved As Byte
        Dim BitSize As Short
        Dim ReportCount As Short
        Dim Reserved2 As Short
        Dim Reserved3 As Short
        Dim Reserved4 As Short
        Dim Reserved5 As Short
        Dim Reserved6 As Short
        Dim LogicalMin As Integer
        Dim LogicalMax As Integer
        Dim PhysicalMin As Integer
        Dim PhysicalMax As Integer
        Dim UsageMin As Short
        Dim UsageMax As Short
        Dim StringMin As Short
        Dim StringMax As Short
        Dim DesignatorMin As Short
        Dim DesignatorMax As Short
        Dim DataIndexMin As Short
        Dim DataIndexMax As Short
    End Structure

    '******************************************************************************
    'API functions, listed alphabetically
    '******************************************************************************

    <DllImport("hid.dll")> Function HidD_FlushQueue _
        (ByVal HidDeviceObject As Integer) _
        As Boolean
    End Function

    <DllImport("hid.dll")> Function HidD_FreePreparsedData _
        (ByRef PreparsedData As IntPtr) _
        As Boolean
    End Function

    <DllImport("hid.dll")> Function HidD_GetAttributes _
        (ByVal HidDeviceObject As Integer, _
        ByRef Attributes As HIDD_ATTRIBUTES) _
        As Boolean
    End Function

    <DllImport("hid.dll")> Function HidD_GetFeature _
        (ByVal HidDeviceObject As Integer, _
        ByRef lpReportBuffer As Byte, _
        ByVal ReportBufferLength As Integer) _
        As Boolean
    End Function

    <DllImport("hid.dll")> Function HidD_GetInputReport _
        (ByVal HidDeviceObject As Integer, _
        ByRef lpReportBuffer As Byte, _
        ByVal ReportBufferLength As Integer) _
        As Boolean
    End Function

    <DllImport("hid.dll")> Sub HidD_GetHidGuid _
        (ByRef HidGuid As System.Guid)
    End Sub

    <DllImport("hid.dll")> Function HidD_GetNumInputBuffers _
        (ByVal HidDeviceObject As Integer, _
        ByRef NumberBuffers As Integer) _
        As Boolean
    End Function

    <DllImport("hid.dll")> Function HidD_GetPreparsedData _
        (ByVal HidDeviceObject As Integer, _
        ByRef PreparsedData As IntPtr) _
        As Boolean
    End Function

    <DllImport("hid.dll")> Function HidD_SetFeature _
        (ByVal HidDeviceObject As Integer, _
        ByRef lpReportBuffer As Byte, _
        ByVal ReportBufferLength As Integer) _
        As Boolean
    End Function

    <DllImport("hid.dll")> Function HidD_SetNumInputBuffers _
        (ByVal HidDeviceObject As Integer, _
        ByVal NumberBuffers As Integer) _
        As Boolean
    End Function

    <DllImport("hid.dll")> Function HidD_SetOutputReport _
        (ByVal HidDeviceObject As Integer, _
        ByRef lpReportBuffer As Byte, _
        ByVal ReportBufferLength As Integer) _
        As Boolean
    End Function

    <DllImport("hid.dll")> Function HidP_GetCaps _
        (ByVal PreparsedData As IntPtr, _
        ByRef Capabilities As HIDP_CAPS) _
        As Integer
    End Function

    <DllImport("hid.dll")> Function HidP_GetValueCaps _
        (ByVal ReportType As Short, _
        ByRef ValueCaps As Byte, _
        ByRef ValueCapsLength As Short, _
        ByVal PreparsedData As IntPtr) _
        As Integer
    End Function

End Module

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -