struttura HIDP_BUTTON_CAPS (hidpi.h)
La struttura HIDP_BUTTON_CAPS contiene informazioni sulla funzionalità di un pulsante di controllo HID utilizzo (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;
Membri
UsagePage
Specifica la pagina di utilizzo per un intervallo di utilizzo o 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 raccolta di collegamentidi livello superiore 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 livello superiore.
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, l'utilizzo o l'intervallo di utilizzo include 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'utilizzo o l'intervallo di utilizzo ha zero o un designatore.
IsAbsolute
Specifica, se TRUE, l'utilizzo del pulsante o l'intervallo di utilizzo fornisce 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 stringa (specificati 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 stringa (specificati 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 minimo e massimo del designatore) il cui limite inferiore inclusivo è indicato da Range.DesignatorMax.
Range.DesignatorMax
Indica il limite superiore inclusivo di un intervallo di designatori (specificato dagli elementi minimo e massimo di 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 per 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 a 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
NotRange.Reserved1
Riservato per l'uso interno del sistema.
NotRange.StringIndex
Indica un ID descrittore di 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 dati dell'utilizzo specificato da NotRange.Usage.
NotRange.Reserved4
Riservato per l'uso interno del sistema.
Osservazioni
I client ottengono una matrice di funzionalità pulsante 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 dei controlli HID, vedere Collection Capability e Value Capability Arrays.
Quando un descrittore di report dichiara un elemento principale di input, output o funzionalità con meno dichiarazioni di utilizzo rispetto al 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 molti campi da descrivere, 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. Le funzioni di HidP_GetUsageValue e HidP_SetScaledUsageValue funzioneranno anche. Tuttavia, queste funzioni funzionano solo con il primo campo della struttura.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | hidpi.h (include Hidpi.h) |