HIDP_BUTTON_CAPS结构 (hidpi.h)

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

语法

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;

成员

UsagePage

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

ReportID

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

IsAlias

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

BitField

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

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

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

Range.DesignatorMin

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

Range.DesignatorMax

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

Range.DataIndexMin

指示与使用范围 Range.UsageMin 到 Range.UsageMax 指定的用法相对应的一对一数据索引序列范围的非独占下限。

Range.DataIndexMax

指示与使用范围 Range.UsageMin 到 Range.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 控件值的功能的信息,请参阅集合功能和值功能数组

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

要求

要求
Header hidpi.h (包括 Hidpi.h)

另请参阅