GetRawInputDeviceList-Funktion (winuser.h)
Listet die an das System angeschlossenen Geräte auf, die unformatierte Eingaben bereitstellen.
Syntax
UINT GetRawInputDeviceList(
[out, optional] PRAWINPUTDEVICELIST pRawInputDeviceList,
[in, out] PUINT puiNumDevices,
[in] UINT cbSize
);
Parameter
[out, optional] pRawInputDeviceList
Typ: PRAWINPUTDEVICELIST
Ein Array von RAWINPUTDEVICELIST-Strukturen für die geräte, die an das System angefügt sind. Wenn NULL, wird die Anzahl der Geräte in *puiNumDevices zurückgegeben.
[in, out] puiNumDevices
Typ: PUINT
Wenn pRawInputDeviceListNULL ist, füllt die Funktion diese Variable mit der Anzahl der an das System angefügten Geräte auf. Andernfalls gibt diese Variable die Anzahl von RAWINPUTDEVICELIST-Strukturen an, die in dem Puffer enthalten sein können, auf den pRawInputDeviceList verweist. Wenn dieser Wert kleiner als die Anzahl der an das System angeschlossenen Geräte ist, gibt die Funktion die tatsächliche Anzahl von Geräten in dieser Variablen zurück und schlägt mit ERROR_INSUFFICIENT_BUFFER fehl. Wenn dieser Wert größer oder gleich der Anzahl der geräte ist, die an das System angefügt sind, bleibt der Wert unverändert, und die Anzahl der Geräte wird als Rückgabewert gemeldet.
[in] cbSize
Typ: UINT
Die Größe einer RAWINPUTDEVICELIST-Struktur in Bytes.
Rückgabewert
Typ: UINT
Wenn die Funktion erfolgreich ist, ist der Rückgabewert die Anzahl der Geräte, die im Puffer gespeichert sind, auf den pRawInputDeviceList verweist.
Bei jedem anderen Fehler gibt die Funktion (UINT) -1 und GetLastError die Fehleranzeige zurück.
Hinweise
Die von dieser Funktion zurückgegebenen Geräte sind die Maus, die Tastatur und andere HID-Geräte (Human Interface Device).
Um ausführlichere Informationen zu den angefügten Geräten zu erhalten, rufen Sie GetRawInputDeviceInfo mithilfe von hDevice von RAWINPUTDEVICELIST auf.
Beispiele
Der folgende Beispielcode zeigt einen typischen Aufruf von GetRawInputDeviceList:
UINT nDevices;
PRAWINPUTDEVICELIST pRawInputDeviceList = NULL;
while (true) {
if (GetRawInputDeviceList(NULL, &nDevices, sizeof(RAWINPUTDEVICELIST)) != 0) { Error();}
if (nDevices == 0) { break; }
if ((pRawInputDeviceList = malloc(sizeof(RAWINPUTDEVICELIST) * nDevices)) == NULL) {Error();}
nDevices = GetRawInputDeviceList(pRawInputDeviceList, &nDevices, sizeof(RAWINPUTDEVICELIST));
if (nDevices == (UINT)-1) {
if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) { Error(); }
// Devices were added.
free(pRawInputDeviceList);
continue;
}
break;
}
// do the job...
// after the job, free the RAWINPUTDEVICELIST
free(pRawInputDeviceList);
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winuser.h (windows.h einschließen) |
Bibliothek | User32.lib |
DLL | User32.dll |
APIs | ext-ms-win-ntuser-rawinput-l1-1-0 (eingeführt in Windows 10, Version 10.0.14393) |
Siehe auch
Konzept
Referenz