VB6上的大难题呀,两天了,有哪位高手能帮帮小弟我…懂USB接口的请进。高分悬赏

VB6下的大难题呀,两天了,有谁能帮帮我……懂USB接口的请进。高分悬赏!
'===========标准模式============
Option Explicit

Type GUID
    Data1   As Long
    Data2   As Integer
    Data3   As Integer
    Data4(7)   As Byte
End Type    '固定常数

Type DEV_BROADCAST_DEVICEINTERFACE
    dbcc_size   As Long
    dbcc_devicetype   As Long
    dbcc_reserved   As Long
    dbcc_classguid   As GUID
    dbcc_name   As Long
End Type    '规定的常数

Type DEV_BROADCAST_VOLUME
    dbcv_size   As Long
    dbcv_devicetype   As Long
    dbcv_reserved   As Long
    dbcv_unitmask   As Long
    dbcv_flags   As Integer
End Type    '规定的常数

Const GWL_WNDPROC = -4
Const DEVICE_NOTIFY_WINDOW_HANDLE = 0
Const WM_DEVICECHANGE = &H219&
Const DBT_DEVTYP_DEVICEINTERFACE = &H5&
Const DBT_DEVTYP_VOLUME = &H2&
Const DBT_DEVICEARRIVAL = &H8000&
Const DBT_DEVICEREMOVECOMPLETE = &H8004&
Const DRIVE_REMOVABLE = 2
Const DRIVE_NO_ROOT_DIR = 1

Declare Function SetWindowLongA Lib "User32.dll " (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function CallWindowProcA Lib "User32.dll " (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function RegisterDeviceNotificationA Lib "User32.dll " (ByVal hRecipient As Long, NotificationFilter As Any, ByVal Flags As Long) As Long
Declare Function UnregisterDeviceNotification Lib "User32.dll " (ByVal Handle As Long) As Long
Declare Sub RtlMoveMemory Lib "kernel32 " (Destination As Any, Source As Any, ByVal Length As Long)


Private m_hwnd     As Long
Private m_lpPrevWndProc     As Long
Private m_hDevNotify     As Long



Public Sub RegDevNotify(ByVal hwnd As Long)           '注册钩子
    Dim dbcc     As DEV_BROADCAST_DEVICEINTERFACE
    If m_lpPrevWndProc = 0 Then
          m_hwnd = hwnd
          m_lpPrevWndProc = SetWindowLongA(m_hwnd, GWL_WNDPROC, AddressOf WndProc)
          dbcc.dbcc_size = Len(dbcc)
          dbcc.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE