Partager via


structure HIDP_BUTTON_CAPS (hidpi.h)

La structure HIDP_BUTTON_CAPS contient des informations sur la capacité d’utilisation d’un bouton de contrôle HID (ou d’un ensemble de boutons associés à une plage d’utilisation).

Syntaxe

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;

Membres

UsagePage

Spécifie la page d’utilisation d’une plage d’utilisation ou d’utilisation.

ReportID

Spécifie l’ID de rapport du rapport HID qui contient la plage d’utilisation ou d’utilisation.

IsAlias

Indique, si TRUE, qu’un bouton a un ensemble d’utilisations sous alias. Sinon, si IsAlias a la valeur FALSE, le bouton n’a qu’une seule utilisation.

BitField

Contient les champs de données (un ou deux octets) associés à une entrée, une sortie ou une fonctionnalité main élément.

LinkCollection

Spécifie l’index de la collection de liens dans le tableau de collection de liensd’une collection de niveau supérieur qui contient la plage d’utilisation ou d’utilisation. Si LinkCollection est égal à zéro, la plage d’utilisation est contenue dans la collection de niveau supérieur.

LinkUsage

Spécifie l’utilisation de la collection de liens qui contient la plage d’utilisation ou d’utilisation. Si LinkCollection est égal à zéro, LinkUsage spécifie l’utilisation de la collection de niveau supérieur.

LinkUsagePage

Spécifie la page d’utilisation de la collection de liens qui contient la plage d’utilisation ou d’utilisation. Si LinkCollection est égal à zéro, LinkUsagePage spécifie la page d’utilisation de la collection de niveau supérieur.

IsRange

Spécifie, si TRUE, que la structure décrit une plage d’utilisation. Sinon, si IsRange a la valeur FALSE, la structure décrit une utilisation unique.

IsStringRange

Spécifie, si TRUE, que la plage d’utilisation ou d’utilisation a un ensemble de descripteurs de chaîne. Sinon, si IsStringRange a la valeur FALSE, la plage d’utilisation a zéro ou un descripteur de chaîne.

IsDesignatorRange

Spécifie, si TRUE, que la plage d’utilisation ou d’utilisation a un ensemble de désignateurs. Sinon, si IsDesignatorRange a la valeur FALSE, la plage d’utilisation a zéro ou un seul indicateur.

IsAbsolute

Spécifie, si TRUE, que l’utilisation du bouton ou la plage d’utilisation fournit des données absolues. Sinon, si IsAbsolute a la valeur FALSE, les données de bouton sont le changement d’état par rapport à la valeur précédente.

ReportCount

Nombre de rapports définis par HID. Disponible à partir de la version 2.0 de l’API. Appelez la fonction HIDP_GetVersion pour obtenir la version de l’API.

Reserved2

Réservé à une utilisation interne du système.

Reserved[9]

Réservé à une utilisation interne du système.

Range

Spécifie, si IsRange a la valeur TRUE, des informations sur une plage d’utilisation. Sinon, si IsRange a la valeur FALSE, NotRange contient des informations sur une utilisation unique.

Range.UsageMin

Indique la limite inférieure inclusive de la plage d’utilisation dont la limite supérieure inclusive est spécifiée par Range.UsageMax.

Range.UsageMax

Indique la limite supérieure inclusive d’une plage d’utilisation dont la limite inférieure inclusive est indiquée par Range.UsageMin.

Range.StringMin

Indique la limite inférieure inclusive d’une plage de descripteurs de chaîne (spécifiés par les éléments de chaîne minimale et maximale de chaîne) dont la limite supérieure inclusive est indiquée par Range.StringMax.

Range.StringMax

Indique la limite supérieure inclusive d’une plage de descripteurs de chaîne (spécifiés par les éléments de chaîne minimale et maximale de chaîne) dont la limite inférieure inclusive est indiquée par Range.StringMin.

Range.DesignatorMin

Indique la limite inférieure inclusive d’une plage de désignateurs (spécifiés par les éléments minimum du désignateur et le nombre maximal du désignateur) dont la limite inférieure inclusive est indiquée par Range.DesignatorMax.

Range.DesignatorMax

Indique la limite supérieure inclusive d’une plage de désignateurs (spécifiés par les éléments minimum et maximum du désignateur) dont la limite inférieure inclusive est indiquée par Range.DesignatorMin.

Range.DataIndexMin

Indique la limite inférieure inclusive d’une plage séquentielle d’index de données qui correspondent, un-à-un et dans le même ordre, aux utilisations spécifiées par la plage d’utilisation Range.UsageMin à Range.UsageMax.

Range.DataIndexMax

Indique la limite supérieure inclusive d’une plage séquentielle d’index de données qui correspondent, un à un et dans le même ordre, aux utilisations spécifiées par la plage d’utilisation Range.UsageMin à Range.UsageMax.

NotRange

Spécifie, si IsRange a la valeur FALSE, des informations sur une utilisation unique. Sinon, si IsRange a la valeur TRUE, Range contient des informations sur une plage d’utilisation.

NotRange.Usage

Indique un ID d’utilisation.

NotRange.Reserved1

Réservé à une utilisation interne du système.

NotRange.StringIndex

Indique un ID de descripteur de chaîne pour l’utilisation spécifiée par NotRange.Usage.

NotRange.Reserved2

Réservé à une utilisation interne du système.

NotRange.DesignatorIndex

Indique un ID d’indicateur pour l’utilisation spécifiée par NotRange.Usage.

NotRange.Reserved3

Réservé à une utilisation interne du système.

NotRange.DataIndex

Indique l’index de données de l’utilisation spécifiée par NotRange.Usage.

NotRange.Reserved4

Réservé à une utilisation interne du système.

Remarques

Les clients obtiennent un tableau de fonctionnalités de bouton en appelant HidP_GetButtonCaps ou HidP_GetSpecificButtonCaps. Ces routines retournent un tableau de structures HIDP_BUTTON_CAPS dans une mémoire tampon allouée à l’appelant. La longueur de mémoire tampon requise est spécifiée dans la structure HIDP_CAPS retournée par HidP_GetCaps.

Pour plus d’informations sur les fonctionnalités des valeurs de contrôle HID, consultez Collection Capability et Value Capability Arrays.

Lorsqu’un descripteur de rapport déclare une entrée, une sortie ou une fonctionnalité main élément avec moins de déclarations d’utilisation que ReportCount, la dernière utilisation s’applique à tous les autres nombres non spécifiés dans cet élément main. Par exemple, vous pouvez avoir des données nécessitant de nombreux champs à décrire, éventuellement des octets mis en mémoire tampon. Dans ce cas, une seule structure de limite de valeur est allouée pour ces champs associés, tous avec la même utilisation, et ReportCount reflète le nombre de champs impliqués. Normalement , ReportCount en est un. Pour accéder à tous les champs d’une telle structure de valeurs, vous devez utiliser HidP_GetUsageValueArray et HidP_SetUsageValueArray. Les fonctions HidP_GetUsageValue et HidP_SetScaledUsageValue fonctionnent également. Toutefois, ces fonctions fonctionnent uniquement avec le premier champ de la structure.

Configuration requise

Condition requise Valeur
En-tête hidpi.h (inclure Hidpi.h)

Voir aussi