Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Enumera os dispositivos de entrada 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. O ponteiro deve ser alinhado em um limite DWORD (32 bits).
Se 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 ser 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 ficará 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.
Valor de retorno
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.
Observações
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.
Os dispositivos de entrada acessados por meio do RDP (Remote Desktop Protocal) não aparecem na lista de dispositivos de entrada bruta.
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 suportado | Windows XP [somente aplicativos da área de trabalho] |
| Servidor mínimo compatível | Windows Server 2003 [somente aplicativos da área de trabalho] |
| da Plataforma de Destino | Windows |
| cabeçalho | winuser.h (inclua Windows.h) |
| Biblioteca | User32.lib |
| de DLL | User32.dll |
| conjunto de API | ext-ms-win-ntuser-rawinput-l1-1-0 (introduzido no Windows 10, versão 10.0.14393) |
Consulte também
Conceitual