SetupDiGetClassDevs_() ist in der setupapi.dll ?
Verfasst: 29.09.2005 21:57
Ich komme beim Versuch, Daten mit HID's auszutauschen nicht weiter.
Das Problem liegt darin, daß folgender Code die o.g. Funktion nicht findet,
obwohl die setupapi.dll vorhanden und geöffnet wurde:
Der HidGuid wird übrigens einwandfrei ermittelt.
Die Funktionsbeschreibung findet man auf:
http://msdn.microsoft.com/library/defau ... 5c.xml.asp
Die zweite Sache, mit der ich nicht zurechtkomme, ist der VB Parameter "vbNullString". Wie übergibt man ihn in Purebasic ?
Kann ich die Parameter $2 und $10 so einer Callfunction() übergeben ?
/// Edit:
Folgender Code scheint zu funktionieren:
Die Funktion "SetupDiGetClassDevs()" muss als Alias "SetupDiGetClassDevsA" aufgerufen und vbNullString ist eine einfache 0.
Ich weiß zwar nicht genau, was ein Alias in VB ist, aber jedenfalls bekomme ich einen Zeiger.
Bei
ist der Rückgabewert -1.
Vielen Dank für die Antwort(en)
Das Problem liegt darin, daß folgender Code die o.g. Funktion nicht findet,
obwohl die setupapi.dll vorhanden und geöffnet wurde:
Code: Alles auswählen
OpenLibrary(0,"hid.dll")
OpenLibrary(1,"setupapi.dll")
Debug IsFunction(0,"HidD_GetHidGuid")
Debug IsFunction(1,"SetupDiGetClassDevs")
*HidGuid=AllocateMemory(16) ;128bit HID Guid
CallFunction(0,"HidD_GetHidGuid",*HidGuid)
Debug DeviceInfoSet=CallFunction(1,"SetupDiGetClassDevs",*HidGuid,"",0,$2 Or $10)
;VB Code:
;Public Const DIGCV_PRESENT = &H2
;Public Const DIGCV_DEVICEINTERFACE = &H10
;DeviceInfoSet = SetupDiGetClassDevs _
; (HidGuid, _
; vbNullString, _
; 0, _
; (DIGCF_PRESENT Or DIGCF_DEVICEINTERFACE))
End
Die Funktionsbeschreibung findet man auf:
http://msdn.microsoft.com/library/defau ... 5c.xml.asp
Die zweite Sache, mit der ich nicht zurechtkomme, ist der VB Parameter "vbNullString". Wie übergibt man ihn in Purebasic ?
Kann ich die Parameter $2 und $10 so einer Callfunction() übergeben ?
/// Edit:
Folgender Code scheint zu funktionieren:
Code: Alles auswählen
OpenLibrary(0,"hid.dll")
OpenLibrary(1,"setupapi.dll")
Debug IsFunction(0,"HidD_GetHidGuid")
Debug IsFunction(1,"SetupDiGetClassDevsA")
*HidGuid=AllocateMemory(16) ;128bit HID Guid
CallFunction(0,"HidD_GetHidGuid",*HidGuid)
Debug *DeviceInfoSet=CallFunction(1,"SetupDiGetClassDevsA",*HidGuid,0,0,$2|$10)
End
Ich weiß zwar nicht genau, was ein Alias in VB ist, aber jedenfalls bekomme ich einen Zeiger.
Bei
Code: Alles auswählen
*DeviceInfoSet=CallFunction(1,"SetupDiGetClassDevsA",*HidGuid,"",0,$2|$10)
;oder
*DeviceInfoSet=CallFunction(1,"SetupDiGetClassDevsA",*HidGuid,0,0,$2 Or $10)
Vielen Dank für die Antwort(en)