Função GetRawInputDeviceList (winuser.h)
Enumera os dispositivos de dados brutos anexados ao sistema.
Sintaxe
UINT GetRawInputDeviceList(
[out, optional] PRAWINPUTDEVICELIST pRawInputDeviceList,
[in, out] PUINT puiNumDevices,
[in] UINT cbSize
);
Parâmetros
[out, optional] pRawInputDeviceList
Tipo: PRAWINPUTDEVICELIST
Uma matriz de estruturas RAWINPUTDEVICELIST para os dispositivos anexados ao sistema. Se FOR NULL, o número de dispositivos será retornado em *puiNumDevices.
[in, out] puiNumDevices
Tipo: PUINT
Se pRawInputDeviceList for NULL, a função preencherá essa variável com o número de dispositivos anexados ao sistema; caso contrário, essa variável especifica o número de estruturas RAWINPUTDEVICELIST que podem estar contidas no buffer ao qual pRawInputDeviceList aponta. Se esse valor for menor que o número de dispositivos anexados ao sistema, a função retornará o número real de dispositivos nessa variável e falhará com ERROR_INSUFFICIENT_BUFFER. Se esse valor for maior ou igual ao número de dispositivos anexados ao sistema, o valor será inalterado e o número de dispositivos será relatado como o valor retornado.
[in] cbSize
Tipo: UINT
O tamanho de uma estrutura RAWINPUTDEVICELIST , em bytes.
Retornar valor
Tipo: UINT
Se a função for bem-sucedida, o valor retornado será o número de dispositivos armazenados no buffer apontado por pRawInputDeviceList.
Em qualquer outro erro, a função retorna (UINT) -1 e GetLastError retorna a indicação de erro.
Comentários
Os dispositivos retornados dessa função são o mouse, o teclado e outros dispositivos HID (Dispositivo de Interface Humana).
Para obter informações mais detalhadas sobre os dispositivos anexados, chame GetRawInputDeviceInfo usando o hDevice de RAWINPUTDEVICELIST.
Exemplos
O código de exemplo a seguir mostra uma chamada típica para 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 | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winuser.h (inclua Windows.h) |
Biblioteca | User32.lib |
DLL | User32.dll |
Conjunto de APIs | ext-ms-win-ntuser-rawinput-l1-1-0 (introduzido no Windows 10, versão 10.0.14393) |
Confira também
Conceitual
Referência