estrutura HIDP_BUTTON_CAPS (hidpi.h)
A estrutura HIDP_BUTTON_CAPS contém informações sobre a funcionalidade de um uso de botão de controle HID (ou um conjunto de botões associados a um intervalo de uso).
Sintaxe
typedef struct _HIDP_BUTTON_CAPS {
USAGE UsagePage;
UCHAR ReportID;
BOOLEAN IsAlias;
USHORT BitField;
USHORT LinkCollection;
USAGE LinkUsage;
USAGE LinkUsagePage;
BOOLEAN IsRange;
BOOLEAN IsStringRange;
BOOLEAN IsDesignatorRange;
BOOLEAN IsAbsolute;
USHORT ReportCount;
USHORT Reserved2;
ULONG Reserved[9];
union {
struct {
USAGE UsageMin;
USAGE UsageMax;
USHORT StringMin;
USHORT StringMax;
USHORT DesignatorMin;
USHORT DesignatorMax;
USHORT DataIndexMin;
USHORT DataIndexMax;
} Range;
struct {
USAGE Usage;
USAGE Reserved1;
USHORT StringIndex;
USHORT Reserved2;
USHORT DesignatorIndex;
USHORT Reserved3;
USHORT DataIndex;
USHORT Reserved4;
} NotRange;
};
} HIDP_BUTTON_CAPS, *PHIDP_BUTTON_CAPS;
Membros
UsagePage
Especifica a página de uso para um intervalo de uso ou uso.
ReportID
Especifica a ID do relatório HID que contém o uso ou o intervalo de uso.
IsAlias
Indica, se TRUE, que um botão tem um conjunto de usos de alias. Caso contrário, se IsAlias for FALSE, o botão terá apenas um uso.
BitField
Contém os campos de dados (um ou dois bytes) associados a uma entrada, saída ou recurso main item.
LinkCollection
Especifica o índice da coleção de link na matriz de coleção de link de uma coleção de nível superior que contém o uso ou o intervalo de uso. Se LinkCollection for zero, o intervalo de uso ou uso estará contido na coleção de nível superior.
LinkUsage
Especifica o uso da coleção de link que contém o uso ou o intervalo de uso. Se LinkCollection for zero, LinkUsage especificará o uso da coleção de nível superior.
LinkUsagePage
Especifica a página de uso da coleção de links que contém o uso ou o intervalo de uso. Se LinkCollection for zero, LinkUsagePage especificará a página de uso da coleção de nível superior.
IsRange
Especifica, se TRUE, que a estrutura descreve um intervalo de uso. Caso contrário, se IsRange for FALSE, a estrutura descreverá um único uso.
IsStringRange
Especifica, se TRUE, que o intervalo de uso ou uso tem um conjunto de descritores de cadeia de caracteres. Caso contrário, se IsStringRange for FALSE, o intervalo de uso ou uso terá um descritor de cadeia de caracteres zero ou um.
IsDesignatorRange
Especifica, se TRUE, que o intervalo de uso ou uso tem um conjunto de designadores. Caso contrário, se IsDesignatorRange for FALSE, o intervalo de uso ou uso terá zero ou um designador.
IsAbsolute
Especifica, se TRUE, que o uso do botão ou o intervalo de uso fornece dados absolutos. Caso contrário, se IsAbsolute for FALSE, os dados do botão serão a alteração no estado do valor anterior.
ReportCount
Contagem de relatórios definida por HID. Disponível a partir da versão 2.0 da API. Chame a função HIDP_GetVersion para obter a versão da API.
Reserved2
Reservado para uso interno do sistema.
Reserved[9]
Reservado para uso interno do sistema.
Range
Especifica, se IsRange for TRUE, informações sobre um intervalo de uso. Caso contrário, se IsRange for FALSE, NotRange conterá informações sobre um único uso.
Range.UsageMin
Indica o limite inferior inclusivo do intervalo de uso cujo limite superior inclusivo é especificado por Range.UsageMax.
Range.UsageMax
Indica o limite superior inclusivo de um intervalo de uso cujo limite inferior inclusivo é indicado por Range.UsageMin.
Range.StringMin
Indica o limite inferior inclusivo de um intervalo de descritores de cadeia de caracteres (especificado por itens mínimos de cadeia de caracteres e máximo de cadeia de caracteres) cujo limite superior inclusivo é indicado por Range.StringMax.
Range.StringMax
Indica o limite superior inclusivo de um intervalo de descritores de cadeia de caracteres (especificado por itens mínimos de cadeia de caracteres e máximo de cadeia de caracteres) cujo limite inferior inclusivo é indicado por Range.StringMin.
Range.DesignatorMin
Indica o limite inferior inclusivo de um intervalo de designadores (especificado por itens mínimos designadores e máximos do designador) cujo limite inferior inclusivo é indicado por Range.DesignatorMax.
Range.DesignatorMax
Indica o limite superior inclusivo de um intervalo de designadores (especificado por itens mínimos designadores e máximos do designador) cujo limite inferior inclusivo é indicado por Range.DesignatorMin.
Range.DataIndexMin
Indica o limite inferior inclusivo de um intervalo sequencial de índices de dados que correspondem, um para um e na mesma ordem, aos usos especificados pelo intervalo de uso Range.UsageMin to Range.UsageMax.
Range.DataIndexMax
Indica o limite superior inclusivo de um intervalo sequencial de índices de dados que correspondem, um para um e na mesma ordem, aos usos especificados pelo intervalo de uso Range.UsageMin to Range.UsageMax.
NotRange
Especifica, se IsRange for FALSE, informações sobre um único uso. Caso contrário, se IsRange for TRUE, Range conterá informações sobre um intervalo de uso.
NotRange.Usage
Indica uma ID de uso.
NotRange.Reserved1
Reservado para uso interno do sistema.
NotRange.StringIndex
Indica uma ID do descritor de cadeia de caracteres para o uso especificado por NotRange.Usage.
NotRange.Reserved2
Reservado para uso interno do sistema.
NotRange.DesignatorIndex
Indica uma ID do designador para o uso especificado por NotRange.Usage.
NotRange.Reserved3
Reservado para uso interno do sistema.
NotRange.DataIndex
Indica o índice de dados do uso especificado por NotRange.Usage.
NotRange.Reserved4
Reservado para uso interno do sistema.
Comentários
Os clientes obtêm uma matriz de recursos de botão chamando HidP_GetButtonCaps ou HidP_GetSpecificButtonCaps. Essas rotinas retornam uma matriz de estruturas de HIDP_BUTTON_CAPS em um buffer alocado pelo chamador. O comprimento do buffer necessário é especificado na estrutura de HIDP_CAPS retornada por HidP_GetCaps.
Para obter informações sobre os recursos de valores de controle HID, consulte Capacidade de coleção e Matrizes de funcionalidade de valor.
Quando um descritor de relatório declara uma entrada, saída ou recurso main item com menos declarações de uso do que o ReportCount, o último uso se aplica a toda a contagem não especificada restante nesse item main. Por exemplo, você pode ter dados que exigiam muitos campos para descrever, possivelmente bytes armazenados em buffer. Nesse caso, apenas uma estrutura de limite de valor é alocada para esses campos associados, todos com o mesmo uso e ReportCount reflete o número de campos envolvidos. Normalmente , ReportCount é um. Para acessar todos os campos em tal estrutura de valor, seria necessário usar HidP_GetUsageValueArray e HidP_SetUsageValueArray. As funções HidP_GetUsageValue e HidP_SetScaledUsageValue também funcionarão. No entanto, essas funções funcionam apenas com o primeiro campo da estrutura.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | hidpi.h (inclua Hidpi.h) |