HIDP_BUTTON_CAPS结构(hidpi.h)

HIDP_BUTTON_CAPS结构包含有关 HID 控件按钮用法功能的信息(或与使用范围关联的一组按钮)。

Syntax

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

指定使用情况或使用情况范围的 使用情况页

ReportID

指定包含使用情况或使用情况范围的 HID 报表的报表 ID。

IsAlias

指示按钮具有一组别名用法(如果为 TRUE)。 否则,如果 IsAliasFALSE,按钮只有一个用法。

BitField

包含与输入、输出或功能主项关联的数据字段(一个或两个字节)。

LinkCollection

指定顶级集合的链接集合数组中链接集合索引,其中包含使用情况或使用范围。 如果 LinkCollection 为零,则使用情况或使用范围包含在顶级集合中。

LinkUsage

指定包含使用情况或使用范围的链接集合的用法。 如果 LinkCollection 为零, LinkUsage 指定顶级集合的用法。

LinkUsagePage

指定包含使用情况或使用情况范围的链接集合的使用情况页。 如果 LinkCollection 为零, LinkUsagePage 将指定顶级集合的使用页。

IsRange

指定结构描述使用范围(如果 为 TRUE)。 否则,如果 IsRangeFALSE,则结构描述单个用法。

IsStringRange

指定使用情况或用法范围具有一组字符串描述符(如果 为 TRUE)。 否则,如果 IsStringRangeFALSE,则用法或使用范围包含零个或一个字符串描述符。

IsDesignatorRange

指定使用情况或使用情况范围具有一组指定符(如果 为 TRUE)。 否则,如果 IsDesignatorRangeFALSE,则使用情况或使用范围包含零个或一个设计器。

IsAbsolute

指定按钮使用情况或使用情况范围提供绝对数据(如果 为 TRUE)。 否则,如果 IsAbsoluteFALSE,则按钮数据是上一个值的状态更改。

ReportCount

HID 定义的报表计数。 从 API 版本 2.0 开始可用。 调用 HidP_GetVersion 函数以获取 API 版本。

Reserved2

保留供内部系统使用。

Reserved[9]

保留供内部系统使用。

Range

指定 IsRangeTRUE 时,有关使用范围的信息。 否则,如果 IsRangeFALSE,NotRange 将包含有关单个用法的信息。

Range.UsageMin

指示非独占上限由 Range.UsageMax 指定的使用范围的非独占下限。

Range.UsageMax

指示使用范围的非独占上限,其非独占下限由 Range.UsageMin 指示。

Range.StringMin

指示范围字符串描述符(由字符串最小值和字符串最大项指定)的非独占下限(由 Range.StringMax 指示其非独占上限)。

Range.StringMax

指示范围字符串描述符(由字符串最小值和字符串最大项指定)的非独占上限,其非独占下限由 Range.StringMin 指示。

Range.DesignatorMin

指示指定符范围的非独占下限(由设计符最小值和指示符最大项指定),其非独占下限由 Range.DesignatorMax 指示。

Range.DesignatorMax

指示指定符范围的非独占上限(由设计符最小值和设计器最大项指定),其非独占下限由 Range.DesignatorMin 指示。

Range.DataIndexMin

指示一对一和相同顺序对应于使用范围 Range.UsageMinRange.UsageMax 指定的用法的连续数据索引范围的非独占下限。

Range.DataIndexMax

指示按一对一和相同顺序对应于使用范围 Range.UsageMinRange.UsageMax 指定的用法的顺序的数据索引的顺序的非独占上限。

NotRange

指定 IsRangeFALSE 时,有关单个用法的信息。 否则,如果 IsRangeTRUE,Range 将包含有关使用范围的信息。

NotRange.Usage

指示 使用情况 ID

NotRange.Reserved1

保留供内部系统使用。

NotRange.StringIndex

指示 NotRange.Usage 指定的用法的字符串描述符 ID。

NotRange.Reserved2

保留供内部系统使用。

NotRange.DesignatorIndex

指示 NotRange.Usage 指定的用法的指示符 ID。

NotRange.Reserved3

保留供内部系统使用。

NotRange.DataIndex

指示 NotRange.Usage 指定的使用情况的数据索引。

NotRange.Reserved4

保留供内部系统使用。

注解

客户端通过调用HidP_GetButtonCapsHidP_GetSpecificButtonCaps来获取按钮功能数组。 这些例程返回调用方分配的缓冲区中HIDP_BUTTON_CAPS结构的数组。 所需的缓冲区长度在HidP_GetCaps返回的HIDP_CAPS结构中指定。

有关 HID 控件值功能的信息,请参阅集合功能和值功能数组

当报表描述符声明输入、输出或功能主项时,其使用声明比 ReportCount 少,则最后一个用法将应用于该主项中的所有剩余未指定计数。 例如,你可能具有需要许多字段来描述的数据,这些字段可能需要缓冲的字节。 在这种情况下,只为这些关联字段分配了一个值上限结构,所有这些字段具有相同的用法, ReportCount 反映涉及的字段数。 通常 ReportCount 为一个。 若要访问此类值结构中的所有字段,需要使用 HidP_GetUsageValueArrayHidP_SetUsageValueArrayHidP_GetUsageValueHidP_SetScaledUsageValue函数也将正常工作。 但是,这些函数仅适用于结构的第一个字段。

要求

Requirement 价值
Header hidpi.h (包括 Hidpi.h)

另请参阅