Funzione GetRawInputDeviceList (winuser.h)
Enumera i dispositivi di input non elaborati collegati al sistema.
Sintassi
UINT GetRawInputDeviceList(
[out, optional] PRAWINPUTDEVICELIST pRawInputDeviceList,
[in, out] PUINT puiNumDevices,
[in] UINT cbSize
);
Parametri
[out, optional] pRawInputDeviceList
Tipo: PRAWINPUTDEVICELIST
Matrice di strutture RAWINPUTDEVICELIST per i dispositivi collegati al sistema. Se NULL, il numero di dispositivi viene restituito in *puiNumDevices.
[in, out] puiNumDevices
Tipo: PUINT
Se pRawInputDeviceList è NULL, la funzione popola questa variabile con il numero di dispositivi collegati al sistema; in caso contrario, questa variabile specifica il numero di strutture RAWINPUTDEVICELIST che possono essere contenute nel buffer in cui pRawInputDeviceList punta. Se questo valore è minore del numero di dispositivi collegati al sistema, la funzione restituisce il numero effettivo di dispositivi in questa variabile e non riesce con ERROR_INSUFFICIENT_BUFFER. Se questo valore è maggiore o uguale al numero di dispositivi collegati al sistema, il valore è invariato e il numero di dispositivi viene segnalato come valore restituito.
[in] cbSize
Tipo: UINT
Dimensioni di una struttura RAWINPUTDEVICELIST , in byte.
Valore restituito
Tipo: UINT
Se la funzione ha esito positivo, il valore restituito è il numero di dispositivi archiviati nel buffer a cui fa riferimento pRawInputDeviceList.
In qualsiasi altro errore, la funzione restituisce (UINT) -1 e GetLastError restituisce l'indicazione dell'errore.
Commenti
I dispositivi restituiti da questa funzione sono il mouse, la tastiera e altri dispositivi HID (Human Interface Device).
Per ottenere informazioni più dettagliate sui dispositivi collegati, chiamare GetRawInputDeviceInfo usando hDevice from RAWINPUTDEVICELIST.
Esempio
Il codice di esempio seguente mostra una chiamata tipica a 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);
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winuser.h (include Windows.h) |
Libreria | User32.lib |
DLL | User32.dll |
Set di API | ext-ms-win-ntuser-rawinput-l1-1-0 (introdotta in Windows 10, versione 10.0.14393) |
Vedi anche
Informazioni concettuali
Riferimento