Condividi tramite


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)

Vedi anche