Freigeben über


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

GetRawInputDeviceInfo

RAWINPUTDEVICELIST

Unformatierte Eingabe

Referenz