Función GetRawInputDeviceList (winuser.h)
Enumera los dispositivos de entrada sin procesar conectados al sistema.
Sintaxis
UINT GetRawInputDeviceList(
[out, optional] PRAWINPUTDEVICELIST pRawInputDeviceList,
[in, out] PUINT puiNumDevices,
[in] UINT cbSize
);
Parámetros
[out, optional] pRawInputDeviceList
Tipo: PRAWINPUTDEVICELIST
Matriz de estructuras RAWINPUTDEVICELIST para los dispositivos conectados al sistema. Si es NULL, el número de dispositivos se devuelve en *puiNumDevices.
[in, out] puiNumDevices
Tipo: PUINT
Si pRawInputDeviceList es NULL, la función rellena esta variable con el número de dispositivos conectados al sistema; de lo contrario, esta variable especifica el número de estructuras RAWINPUTDEVICELIST que se pueden incluir en el búfer al que apunta pRawInputDeviceList . Si este valor es menor que el número de dispositivos conectados al sistema, la función devuelve el número real de dispositivos de esta variable y se produce un error con ERROR_INSUFFICIENT_BUFFER. Si este valor es mayor o igual que el número de dispositivos conectados al sistema, el valor no cambia y el número de dispositivos se notifica como el valor devuelto.
[in] cbSize
Tipo: UINT
Tamaño de una estructura RAWINPUTDEVICELIST , en bytes.
Valor devuelto
Tipo: UINT
Si la función se ejecuta correctamente, el valor devuelto es el número de dispositivos almacenados en el búfer al que apunta pRawInputDeviceList.
En cualquier otro error, la función devuelve (UINT) -1 y GetLastError devuelve la indicación de error.
Comentarios
Los dispositivos devueltos de esta función son el mouse, el teclado y otros dispositivos de dispositivo de interfaz humana (HID).
Para obtener información más detallada sobre los dispositivos conectados, llame a GetRawInputDeviceInfo mediante hDevice de RAWINPUTDEVICELIST.
Ejemplos
El código de ejemplo siguiente muestra una llamada típica 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);
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winuser.h (incluir Windows.h) |
Library | User32.lib |
Archivo DLL | User32.dll |
Conjunto de API | ext-ms-win-ntuser-rawinput-l1-1-0 (introducido en Windows 10, versión 10.0.14393) |
Consulte también
Conceptual
Referencia