struttura HIDP_BUTTON_CAPS (hidpi.h)
La struttura HIDP_BUTTON_CAPS contiene informazioni sulla funzionalità di utilizzo di un pulsante di controllo HID (o un set di pulsanti associati a un intervallo di utilizzo).
Sintassi
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;
Members
UsagePage
Specifica la pagina di utilizzo per un intervallo di utilizzo o di utilizzo.
ReportID
Specifica l'ID report del report HID che contiene l'intervallo di utilizzo o di utilizzo.
IsAlias
Indica, se TRUE, che un pulsante dispone di un set di utilizzi con alias. In caso contrario, se IsAlias è FALSE, il pulsante ha un solo utilizzo.
BitField
Contiene i campi dati (uno o due byte) associati a un elemento principale di input, output o funzionalità.
LinkCollection
Specifica l'indice della raccolta di collegamenti in una matrice di raccolte di collegamentidi primo livello che contiene l'intervallo di utilizzo o di utilizzo. Se LinkCollection è zero, l'utilizzo o l'intervallo di utilizzo è contenuto nella raccolta di livello superiore.
LinkUsage
Specifica l'utilizzo della raccolta di collegamenti che contiene l'intervallo di utilizzo o di utilizzo. Se LinkCollection è zero, LinkUsage specifica l'utilizzo della raccolta di primo livello.
LinkUsagePage
Specifica la pagina di utilizzo della raccolta di collegamenti che contiene l'intervallo di utilizzo o di utilizzo. Se LinkCollection è zero, LinkUsagePage specifica la pagina di utilizzo della raccolta di primo livello.
IsRange
Specifica, se TRUE, che la struttura descrive un intervallo di utilizzo. In caso contrario, se IsRange è FALSE, la struttura descrive un singolo utilizzo.
IsStringRange
Specifica, se TRUE, che l'intervallo di utilizzo o di utilizzo dispone di un set di descrittori di stringa. In caso contrario, se IsStringRange è FALSE, l'utilizzo o l'intervallo di utilizzo ha zero o un descrittore di stringa.
IsDesignatorRange
Specifica, se TRUE, che l'intervallo di utilizzo o l'intervallo di utilizzo dispone di un set di designatori. In caso contrario, se IsDesignatorRange è FALSE, l'intervallo di utilizzo o di utilizzo ha zero o un designatore.
IsAbsolute
Specifica, se TRUE, che l'utilizzo o l'intervallo di utilizzo del pulsante fornisca dati assoluti. In caso contrario, se IsAbsolute è FALSE, i dati del pulsante sono la modifica dello stato rispetto al valore precedente.
ReportCount
Conteggio dei report definito da HID. Disponibile a partire dall'API versione 2.0. Chiamare la funzione HIDP_GetVersion per ottenere la versione dell'API.
Reserved2
Riservato per l'uso interno del sistema.
Reserved[9]
Riservato per l'uso interno del sistema.
Range
Specifica se IsRange è TRUE, informazioni su un intervallo di utilizzo. In caso contrario, se IsRange è FALSE, NotRange contiene informazioni su un singolo utilizzo.
Range.UsageMin
Indica il limite inferiore inclusivo dell'intervallo di utilizzo il cui limite superiore inclusivo è specificato da Range.UsageMax.
Range.UsageMax
Indica il limite superiore inclusivo di un intervallo di utilizzo il cui limite inferiore inclusivo è indicato da Range.UsageMin.
Range.StringMin
Indica il limite inferiore inclusivo di un intervallo di descrittori di stringa (specificato da elementi stringa minimo e massimo stringa) il cui limite superiore inclusivo è indicato da Range.StringMax.
Range.StringMax
Indica il limite superiore inclusivo di un intervallo di descrittori di stringa (specificato da elementi stringa minimo e massimo stringa) il cui limite inferiore inclusivo è indicato da Range.StringMin.
Range.DesignatorMin
Indica il limite inferiore inclusivo di un intervallo di designatori (specificato dagli elementi massimi di designatore e minimo progettazione) il cui limite inferiore inclusivo è indicato da Range.DesignatorMax.
Range.DesignatorMax
Indica il limite superiore inclusivo di un intervallo di designatori (specificato dagli elementi massimi di progettazione e minimo progettazione) il cui limite inferiore inclusivo è indicato da Range.DesignatorMin.
Range.DataIndexMin
Indica il limite inferiore inclusivo di un intervallo sequenziale di indici di dati che corrispondono, uno a uno e nello stesso ordine, agli utilizzi specificati dall'intervallo di utilizzo Range.UsageMin to Range.UsageMax.
Range.DataIndexMax
Indica il limite superiore inclusivo di un intervallo sequenziale di indici di dati che corrispondono, uno a uno e nello stesso ordine, agli utilizzi specificati dall'intervallo di utilizzo Range.UsageMin to Range.UsageMax.
NotRange
Specifica se IsRange è FALSE, informazioni su un singolo utilizzo. In caso contrario, se IsRange è TRUE, Range contiene informazioni su un intervallo di utilizzo.
NotRange.Usage
Indica un ID di utilizzo.
NotRange.Reserved1
Riservato per l'uso interno del sistema.
NotRange.StringIndex
Indica un ID descrittore stringa per l'utilizzo specificato da NotRange.Usage.
NotRange.Reserved2
Riservato per l'uso interno del sistema.
NotRange.DesignatorIndex
Indica un ID di progettazione per l'utilizzo specificato da NotRange.Usage.
NotRange.Reserved3
Riservato per l'uso interno del sistema.
NotRange.DataIndex
Indica l'indice dei dati dell'utilizzo specificato da NotRange.Usage.
NotRange.Reserved4
Riservato per l'uso interno del sistema.
Commenti
I client ottengono una matrice di funzionalità dei pulsanti chiamando HidP_GetButtonCaps o HidP_GetSpecificButtonCaps. Queste routine restituiscono una matrice di strutture HIDP_BUTTON_CAPS in un buffer allocato dal chiamante. La lunghezza del buffer richiesta viene specificata nella struttura HIDP_CAPS restituita da HidP_GetCaps.
Per informazioni sulle funzionalità dei valori di controllo HID, vedere Array di funzionalità di raccolta e funzionalità di valore.
Quando un descrittore di report dichiara un elemento principale di input, output o funzionalità con meno dichiarazioni di utilizzo rispetto a ReportCount, l'ultimo utilizzo si applica a tutti i conteggi rimanenti non specificati in tale elemento principale. Ad esempio, potrebbero essere presenti dati che richiedono la descrizione di molti campi, possibilmente byte memorizzati nel buffer. In questo caso, per questi campi associati viene allocata una sola struttura di limite di valore, tutte con lo stesso utilizzo e ReportCount riflette il numero di campi coinvolti. In genere ReportCount è uno. Per accedere a tutti i campi in una struttura di valore di questo tipo, è necessario usare HidP_GetUsageValueArray e HidP_SetUsageValueArray. Funzioneranno anche le funzioni HidP_GetUsageValue e HidP_SetScaledUsageValue . Tuttavia, queste funzioni funzionano solo con il primo campo della struttura.
Requisiti
Requisito | Valore |
---|---|
Intestazione | hidpi.h (include Hidpi.h) |