Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo descreve como as aplicações em modo utilizador e os drivers em modo kernel utilizam as rotinas de suporte HidP_Xxx HIDClass para interpretar dados de controlo num relatório HID.
Extração de dados de valor especificando o seu uso
Para extrair dados de valor de um relatório HID, uma aplicação ou driver pode usar uma das seguintes rotinas de suporte HID:
- HidP_GetScaledUsageValue Devolve um valor assinado e escalado.
- HidP_GetUsageValue Devolve um valor não escalado em formato não assinado ou um valor escalado fora do seu intervalo normal.
- HidP_GetUsageValueArray Devolve um array de valores de uso.
Para usar HidP_GetUsageValueArray aplicações e drivers devem alocar um buffer zero-inicializado, suficientemente grande para armazenar o array de valores de uso. O tamanho exigido em bytes é o produto dos membros BitSize e ReportCount da estrutura HIDP_VALUE_CAPS do array de valores de uso, arredondado para o byte mais próximo.
Extração de usos de botões configurados para ATIVADO
Para extrair os usos das interfaces HID dos botões configurados para ON (1), aplicações e drivers executam uma das seguintes rotinas de suporte HID:
- HidP_GetButtons (ou HidP_GetUsages) devolve o ID de utilização de todos os botões numa página de utilização especificada que estão definidos como ON.
- HidP_GetButtonsEx (ou HidP_GetUsagesEx) devolve a página de utilização e o ID de utilização de todos os botões definidos como ON.
Estas rotinas devolvem um array com toda a informação de utilização dos botões que estão atualmente ativados. Implicitamente, botões cujo uso não é devolvido por estas rotinas são definidos como DESLIGADO (zero).
Para chamar estas rotinas, as aplicações e drivers devem primeiro alocar e zero-inicializar o buffer usado para devolver o array de utilizações dos botões. Uma aplicação ou driver chama HidP_MaxUsageListLength para determinar o número de utilizações de botões numa página de uso especificada no relatório. Se a aplicação ou o driver especificar uma página de utilização zero, a rotina devolve o número de todas as utilizações de botões no relatório.
O tamanho do buffer necessário, em bytes, é:
- (Para HidP_GetButtons) O valor devolvido por HidP_MaxUsageListLength vezes o tamanho de (USAGE)
- (Para HidP_GetButtonsEx) O valor retornado por HidP_MaxUsageListLength vezes sizeof(USAGE_AND_PAGE)
Depois de uma aplicação ou driver utilizar estas rotinas para obter informações sobre quais botões estão atualmente definidos como ON, pode determinar a diferença entre o estado atual e o estado anterior dos botões chamando uma das seguintes rotinas de suporte HIDClass. Estas rotinas retornam a diferença entre dois arrays de informação de utilização:
Definição de valor dos dados especificando a sua utilização
Uma aplicação ou driver pode definir um valor num relatório HID devidamente inicializado chamando uma das seguintes rotinas de suporte HID:
- HidP_SetScaledUsageValue Define um valor assinado e escalado num relatório.
- HidP_SetUsageValue Define um valor num relatório.
- HidP_SetUsageValueArray Define um array de valores de utilização num relatório.
Definir o estado do botão especificando o seu uso
Uma aplicação ou driver pode definir o estado dos botões num relatório HID devidamente inicializado chamando uma das seguintes rotinas de suporte HIDClass:
- HidP_SetButtons (ou HidP_SetUsages) define um conjunto específico de botões para ON (1).
- HidP_UnsetButtons (ou HidP_UnsetUsages) Define um conjunto especificado de botões para DESLIGADO (zero).
Extração e definição de dados de controlo por índices de dados
Para usar índices de dados para extrair e definir dados de controlo num relatório HID, uma aplicação ou driver pode usar as seguintes rotinas de suporte HIDClass:
Estas rotinas são úteis para uma aplicação ou driver que fornece um serviço de "valor acrescentado". Por exemplo, um que fornece uma interface personalizada para todos os controlos suportados por um dispositivo HIDClass. O Microsoft DirectInput é um exemplo.
Uma aplicação ou driver que chama estas rotinas pode obter e definir todos os valores num relatório de forma mais eficiente. Por exemplo, para obter todos os dados de valor pelos seus usos HID, tem de chamar HidP_GetUsageValue para cada utilização. No entanto, para obter todos os dados de valor por índice de dados, só tem de chamar HidP_GetData uma vez.
Uma aplicação ou driver utiliza os índices de dados especificados nas Matrizes de Capacidades de Botões e Matrizes de Capacidades de Valor de uma coleção para identificar utilizações HID.