Private Sub cmdUSBTest_Click()
Dim HidGuid As GUID
Dim GUIDString As String
Dim MemberIndex As Long
Dim HidDevInfo As Long 'SetupDiGetClassDevs的返回值
Dim Result As Long
Dim MyDeviceInterfaceData As SP_DEVICE_INTERFACE_DATA
Dim RequiredSize As Long 'SetupDiGetDeviceInterfaceDetail的参数
Dim MyDeviceInterfaceDetailData As SP_DEVICE_INTERFACE_DETAIL_DATA
Dim DetailData As Long
Dim DetailDataBuffer() As Byte
Dim DevicePathName As String
HidD_GetHidGuid HidGuid
HidDevInfo = SetupDiGetClassDevs(HidGuid, vbNullString, 0, (DIGCF_PRESENT Or DIGCF_DEVICEINTERFACE))
For MemberIndex = 0 To 10
MyDeviceInterfaceData.cbSize = LenB(MyDeviceInterfaceData)
If SetupDiEnumDeviceInterfaces(HidDevInfo, 0, HidGuid, MemberIndex, MyDeviceInterfaceData) = 0 Then
SetupDiDestroyDeviceInfoList HidDevInfo
Else
SetupDiGetDeviceInterfaceDetail HidDevInfo, MyDeviceInterfaceData, 0, 0, RequiredSize, 0
DetailData = RequiredSize
MyDeviceInterfaceDetailData.cbSize = Len(MyDeviceInterfaceDetailData)
ReDim DetailDataBuffer(RequiredSize)
RtlMoveMemory DetailDataBuffer(0), MyDeviceInterfaceDetailData, 4
If SetupDiGetDeviceInterfaceDetail(HidDevInfo, MyDeviceInterfaceData, VarPtr(DetailDataBuffer(0)), DetailData, RequiredSize, 0) <> 0 Then
DevicePathName = CStr(DetailDataBuffer())
DevicePathName = StrConv(DevicePathName, vbUnicode)
DevicePathName = Right(DevicePathName, Len(DevicePathName) - 4)
MsgBox DevicePathName
End If
End If Next MemberIndex
SetupDiDestroyDeviceInfoList HidDevInfoEnd Sub
我的本意是与USB接口的打印机传输数据,写了一大段后始终出错,于是只写一小部分,逐行测试,发现SetupDiEnumDeviceInterfaces总是返回0,但我已经插了U盘了啊,怎么回事?
请各位高手分析指教!
用 GetLastError 取一下错误代码,看看是什么问题。
这段程序要怎么写?