ApiDeclarations.bas
上传用户:gaoyannt
上传日期:2007-01-09
资源大小:62k
文件大小:7k
源码类别:

USB编程

开发平台:

Visual Basic

  1. Attribute VB_Name = "ApiDeclarations"
  2. '******************************************************************************
  3. 'API constants, listed alphabetically
  4. '******************************************************************************
  5. 'from setupapi.h
  6. Public Const DIGCF_PRESENT = &H2
  7. Public Const DIGCF_DEVICEINTERFACE = &H10
  8. Public Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
  9. Public Const GENERIC_READ = &H80000000
  10. Public Const GENERIC_WRITE = &H40000000
  11. Public Const FILE_SHARE_READ = &H1
  12. Public Const FILE_SHARE_WRITE = &H2
  13. 'Typedef enum defines a set of integer constants for HidP_Report_Type
  14. 'Remember to declare these as integers (16 bits)
  15. Public Const HidP_Input = 0
  16. Public Const HidP_Output = 1
  17. Public Const HidP_Feature = 2
  18. Public Const OPEN_EXISTING = 3
  19. '******************************************************************************
  20. 'User-defined types for API calls, listed alphabetically
  21. '******************************************************************************
  22. Public Type GUID
  23.     Data1 As Long
  24.     Data2 As Integer
  25.     Data3 As Integer
  26.     Data4(7) As Byte
  27. End Type
  28. Public Type HIDD_ATTRIBUTES
  29.     Size As Long
  30.     VendorID As Integer
  31.     ProductID As Integer
  32.     VersionNumber As Integer
  33. End Type
  34. 'Windows 98 DDK documentation is incomplete.
  35. 'Use the structure defined in hidpi.h
  36. Public Type HIDP_CAPS
  37.     Usage As Integer
  38.     UsagePage As Integer
  39.     InputReportByteLength As Integer
  40.     OutputReportByteLength As Integer
  41.     FeatureReportByteLength As Integer
  42.     Reserved(16) As Integer
  43.     NumberLinkCollectionNodes As Integer
  44.     NumberInputButtonCaps As Integer
  45.     NumberInputValueCaps As Integer
  46.     NumberInputDataIndices As Integer
  47.     NumberOutputButtonCaps As Integer
  48.     NumberOutputValueCaps As Integer
  49.     NumberOutputDataIndices As Integer
  50.     NumberFeatureButtonCaps As Integer
  51.     NumberFeatureValueCaps As Integer
  52.     NumberFeatureDataIndices As Integer
  53. End Type
  54. 'If IsRange is false, UsageMin is the Usage and UsageMax is unused.
  55. 'If IsStringRange is false, StringMin is the string index and StringMax is unused.
  56. 'If IsDesignatorRange is false, DesignatorMin is the designator index and DesignatorMax is unused.
  57. Public Type HidP_Value_Caps
  58.     UsagePage As Integer
  59.     ReportID As Byte
  60.     IsAlias As Long
  61.     BitField As Integer
  62.     LinkCollection As Integer
  63.     LinkUsage As Integer
  64.     LinkUsagePage As Integer
  65.     IsRange As Long
  66.     IsStringRange As Long
  67.     IsDesignatorRange As Long
  68.     IsAbsolute As Long
  69.     HasNull As Long
  70.     Reserved As Byte
  71.     BitSize As Integer
  72.     ReportCount As Integer
  73.     Reserved2 As Integer
  74.     Reserved3 As Integer
  75.     Reserved4 As Integer
  76.     Reserved5 As Integer
  77.     Reserved6 As Integer
  78.     LogicalMin As Long
  79.     LogicalMax As Long
  80.     PhysicalMin As Long
  81.     PhysicalMax As Long
  82.     UsageMin As Integer
  83.     UsageMax As Integer
  84.     StringMin As Integer
  85.     StringMax As Integer
  86.     DesignatorMin As Integer
  87.     DesignatorMax As Integer
  88.     DataIndexMin As Integer
  89.     DataIndexMax As Integer
  90. End Type
  91. Public Type SP_DEVICE_INTERFACE_DATA
  92.    cbSize As Long
  93.    InterfaceClassGuid As GUID
  94.    Flags As Long
  95.    Reserved As Long
  96. End Type
  97. Public Type SP_DEVICE_INTERFACE_DETAIL_DATA
  98.     cbSize As Long
  99.     DevicePath As Byte
  100. End Type
  101. Public Type SP_DEVINFO_DATA
  102.     cbSize As Long
  103.     ClassGuid As GUID
  104.     DevInst As Long
  105.     Reserved As Long
  106. End Type
  107. '******************************************************************************
  108. 'API functions, listed alphabetically
  109. '******************************************************************************
  110. Public Declare Function CloseHandle _
  111.     Lib "kernel32" _
  112.     (ByVal hObject As Long) _
  113. As Long
  114. Public Declare Function CreateFile _
  115.     Lib "kernel32" _
  116.     Alias "CreateFileA" _
  117.     (ByVal lpFileName As String, _
  118.     ByVal dwDesiredAccess As Long, _
  119.     ByVal dwShareMode As Long, _
  120.     ByRef lpSecurityAttributes As Long, _
  121.     ByVal dwCreationDisposition As Long, _
  122.     ByVal dwFlagsAndAttributes As Long, _
  123.     ByVal hTemplateFile As Long) _
  124. As Long
  125. Public Declare Function FormatMessage _
  126.     Lib "kernel32" _
  127.     Alias "FormatMessageA" _
  128.     (ByVal dwFlags As Long, _
  129.     ByRef lpSource As Any, _
  130.     ByVal dwMessageId As Long, _
  131.     ByVal dwLanguageZId As Long, _
  132.     ByVal lpBuffer As String, _
  133.     ByVal nSize As Long, _
  134.     ByVal Arguments As Long) _
  135. As Long
  136. Public Declare Function HidD_FreePreparsedData _
  137.     Lib "hid.dll" _
  138.     (ByRef PreparsedData As Long) _
  139. As Long
  140. Public Declare Function HidD_GetAttributes _
  141.     Lib "hid.dll" _
  142.     (ByVal HidDeviceObject As Long, _
  143.     ByRef Attributes As HIDD_ATTRIBUTES) _
  144. As Long
  145. 'Declared as a function for consistency,
  146. 'but returns nothing. (Ignore the returned value.)
  147. Public Declare Function HidD_GetHidGuid _
  148.     Lib "hid.dll" _
  149.     (ByRef HidGuid As GUID) _
  150. As Long
  151. Public Declare Function HidD_GetPreparsedData _
  152.     Lib "hid.dll" _
  153.     (ByVal HidDeviceObject As Long, _
  154.     ByRef PreparsedData As Long) _
  155. As Long
  156. Public Declare Function HidP_GetCaps _
  157.     Lib "hid.dll" _
  158.     (ByVal PreparsedData As Long, _
  159.     ByRef Capabilities As HIDP_CAPS) _
  160. As Long
  161. Public Declare Function HidP_GetValueCaps _
  162.     Lib "hid.dll" _
  163.     (ByVal ReportType As Integer, _
  164.     ByRef ValueCaps As Byte, _
  165.     ByRef ValueCapsLength As Integer, _
  166.     ByVal PreparsedData As Long) _
  167. As Long
  168.        
  169. Public Declare Function lstrcpy _
  170.     Lib "kernel32" _
  171.     Alias "lstrcpyA" _
  172.     (ByVal dest As String, _
  173.     ByVal source As Long) _
  174. As String
  175. Public Declare Function lstrlen _
  176.     Lib "kernel32" _
  177.     Alias "lstrlenA" _
  178.     (ByVal source As Long) _
  179. As Long
  180. Public Declare Function ReadFile _
  181.     Lib "kernel32" _
  182.     (ByVal hFile As Long, _
  183.     ByRef lpBuffer As Byte, _
  184.     ByVal nNumberOfBytesToRead As Long, _
  185.     ByRef lpNumberOfBytesRead As Long, _
  186.     ByVal lpOverlapped As Long) _
  187. As Long
  188. Public Declare Function RtlMoveMemory _
  189.     Lib "kernel32" _
  190.     (dest As Any, _
  191.     src As Any, _
  192.     ByVal Count As Long) _
  193. As Long
  194. Public Declare Function SetupDiCreateDeviceInfoList _
  195.     Lib "setupapi.dll" _
  196.     (ByRef ClassGuid As GUID, _
  197.     ByVal hwndParent As Long) _
  198. As Long
  199. Public Declare Function SetupDiDestroyDeviceInfoList _
  200.     Lib "setupapi.dll" _
  201.     (ByVal DeviceInfoSet As Long) _
  202. As Long
  203. Public Declare Function SetupDiEnumDeviceInterfaces _
  204.     Lib "setupapi.dll" _
  205.     (ByVal DeviceInfoSet As Long, _
  206.     ByVal DeviceInfoData As Long, _
  207.     ByRef InterfaceClassGuid As GUID, _
  208.     ByVal MemberIndex As Long, _
  209.     ByRef DeviceInterfaceData As SP_DEVICE_INTERFACE_DATA) _
  210. As Long
  211. Public Declare Function SetupDiGetClassDevs _
  212.     Lib "setupapi.dll" _
  213.     Alias "SetupDiGetClassDevsA" _
  214.     (ByRef ClassGuid As GUID, _
  215.     ByVal Enumerator As String, _
  216.     ByVal hwndParent As Long, _
  217.     ByVal Flags As Long) _
  218. As Long
  219. Public Declare Function SetupDiGetDeviceInterfaceDetail _
  220.    Lib "setupapi.dll" _
  221.    Alias "SetupDiGetDeviceInterfaceDetailA" _
  222.    (ByVal DeviceInfoSet As Long, _
  223.    ByRef DeviceInterfaceData As SP_DEVICE_INTERFACE_DATA, _
  224.    ByVal DeviceInterfaceDetailData As Long, _
  225.    ByVal DeviceInterfaceDetailDataSize As Long, _
  226.    ByRef RequiredSize As Long, _
  227.    ByVal DeviceInfoData As Long) _
  228. As Long
  229.     
  230. Public Declare Function WriteFile _
  231.     Lib "kernel32" _
  232.     (ByVal hFile As Long, _
  233.     ByRef lpBuffer As Byte, _
  234.     ByVal nNumberOfBytesToWrite As Long, _
  235.     ByRef lpNumberOfBytesWritten As Long, _
  236.     ByVal lpOverlapped As Long) _
  237. As Long
  238.         
  239.