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,则指示按钮具有一组 别名用法。 否则,如果 IsAlias 为 FALSE,则按钮只有一个用法。
BitField
包含 (一两个字节) 与输入、输出或功能main项关联的数据字段。
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
指示字符串描述符范围的非独占上限上限, (由 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
指定如果 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 控件值的功能的信息,请参阅集合功能和值功能数组。
如果报表描述符声明输入、输出或功能main项的使用声明少于 ReportCount,则最后一个用法将应用于该main项中的所有剩余未指定计数。 例如,你可能具有需要许多字段来描述的数据,可能是缓冲字节。 在这种情况下,仅为这些关联字段分配一个值上限结构,所有字段具有相同的用法, ReportCount 反映所涉及的字段数。 通常 ReportCount 为一个。 若要访问此类值结构中的所有字段,需要使用 HidP_GetUsageValueArray 和 HidP_SetUsageValueArray。 HidP_GetUsageValue和HidP_SetScaledUsageValue函数也将正常工作。 但是,这些函数仅适用于结构的第一个字段。
要求
要求 | 值 |
---|---|
Header | hidpi.h (包括 Hidpi.h) |