jeg benytter et API kald til at hente produkt navnet i en USB HID enhed
i mit .bas modul har jeg indsat følgende kode:
Public Declare Function HidD_GetProductString _
Lib "HID.dll" _
(ByVal HidDeviceObject As Long, _
ByVal Buffer As Long, _
ByVal BufferLength As Long) _
As Boolean
'*** lidt forklaring:
'***
'*** Buffer: Pointer to a caller-allocated buffer that the
routine uses to return the
'*** requested product string. The routine returns a
NULL-terminated wide
'*** character string.
'***
'*** BufferLength: Specifies the length, in bytes, of a caller-allocated
buffer provided at Buffer.
'*** If the buffer is not large enough to return the
entire NULL-terminated
'*** embedded string, the routine returns nothing in
the buffer.
Problemet opstår når jeg skal kalde funktionen fra en sub, det første
agument [HidDeviceObject] har jeg styr på, men hvordan opretter jeg den
buffer, måske har det noget at gøre med at VB bruger pointer-typen: BSTR og
API kaldet retunere i pointer typen LPWSTR
Måske skal man oprette en string eks. sBuf og så sende pointeren til sbuf i
et "long" format så kan routinen aflevere string'en vha. pointeren ??
her ses mit kald:
MsgBox (HidD_GetProductString(HIDHandle, ???????, 254))
er der nogen der ved hvordan jeg læser det produkt navnet????
venlig hilsen Joachim Boll
|