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)。 否则,如果 IsAlias 为 FALSE,按钮只有一个用法。
BitField
包含与输入、输出或功能主项关联的数据字段(一个或两个字节)。
LinkCollection
指定顶级集合的链接集合数组中链接集合的索引,其中包含使用情况或使用范围。 如果 LinkCollection 为零,则使用情况或使用范围包含在顶级集合中。
LinkUsage
指定包含使用情况或使用范围的链接集合的用法。 如果 LinkCollection 为零, LinkUsage 指定顶级集合的用法。
LinkUsagePage
指定包含使用情况或使用情况范围的链接集合的使用情况页。 如果 LinkCollection 为零, LinkUsagePage 将指定顶级集合的使用页。
IsRange
指定结构描述使用范围(如果 为 TRUE)。 否则,如果 IsRange 为 FALSE,则结构描述单个用法。
IsStringRange
指定使用情况或用法范围具有一组字符串描述符(如果 为 TRUE)。 否则,如果 IsStringRange 为 FALSE,则用法或使用范围包含零个或一个字符串描述符。
IsDesignatorRange
指定使用情况或使用情况范围具有一组指定符(如果 为 TRUE)。 否则,如果 IsDesignatorRange 为 FALSE,则使用情况或使用范围包含零个或一个设计器。
IsAbsolute
指定按钮使用情况或使用情况范围提供绝对数据(如果 为 TRUE)。 否则,如果 IsAbsolute 为 FALSE,则按钮数据是上一个值的状态更改。
ReportCount
HID 定义的报表计数。 从 API 版本 2.0 开始可用。 调用 HidP_GetVersion 函数以获取 API 版本。
Reserved2
保留供内部系统使用。
Reserved[9]
保留供内部系统使用。
Range
指定 IsRange 为 TRUE 时,有关使用范围的信息。 否则,如果 IsRange 为 FALSE,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.UsageMin 到 Range.UsageMax 指定的用法的连续数据索引范围的非独占下限。
Range.DataIndexMax
指示按一对一和相同顺序对应于使用范围 Range.UsageMin 到 Range.UsageMax 指定的用法的顺序的数据索引的顺序的非独占上限。
NotRange
指定 IsRange 为 FALSE 时,有关单个用法的信息。 否则,如果 IsRange 为 TRUE,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_GetButtonCaps或HidP_GetSpecificButtonCaps来获取按钮功能数组。 这些例程返回调用方分配的缓冲区中HIDP_BUTTON_CAPS结构的数组。 所需的缓冲区长度在HidP_GetCaps返回的HIDP_CAPS结构中指定。
有关 HID 控件值功能的信息,请参阅集合功能和值功能数组。
当报表描述符声明输入、输出或功能主项时,其使用声明比 ReportCount 少,则最后一个用法将应用于该主项中的所有剩余未指定计数。 例如,你可能具有需要许多字段来描述的数据,这些字段可能需要缓冲的字节。 在这种情况下,只为这些关联字段分配了一个值上限结构,所有这些字段具有相同的用法, ReportCount 反映涉及的字段数。 通常 ReportCount 为一个。 若要访问此类值结构中的所有字段,需要使用 HidP_GetUsageValueArray 和 HidP_SetUsageValueArray。 HidP_GetUsageValue和HidP_SetScaledUsageValue函数也将正常工作。 但是,这些函数仅适用于结构的第一个字段。
要求
| Requirement | 价值 |
|---|---|
| Header | hidpi.h (包括 Hidpi.h) |