HIDP_BUTTON_CAPS (Compact 2013)
3/26/2014
This structure contains information about the capability of a HID control button usage or a set of buttons associated with a usage range.
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;
ULONG Reserved[10];
union {
struct {
USAGE UsageMin, UsageMax;
USHORT StringMin, StringMax;
USHORT DesignatorMin, DesignatorMax;
USHORT DataIndexMin, DataIndexMax;
} Range;
struct {
USAGE Usage, Reserved1;
USHORT StringIndex, Reserved2;
USHORT DesignatorIndex, Reserved3;
USHORT DataIndex, Reserved4;
} NotRange;
};
} HIDP_BUTTON_CAPS, * PHIDP_BUTTON_CAPS;
Members
- UsagePage
Usage page for a usage or usage range.
- ReportID
Report identifier of the HID report that contains the usage or usage range.
- IsAlias
Button usage indicator. If TRUE, a button has a set of aliased usages. If FALSE, the button has only one usage.
- BitField
Data fields of one or two bytes associated with an input, output, or feature main item.
- LinkCollection
Index of the link collection in a top-level collection's link collection array that contains the usage or usage range. If LinkCollection is zero, the usage or usage range is contained in the top-level collection.
- LinkUsage
Usage of the link collection that contains the usage or usage range. If LinkCollection is zero, LinkUsage specifies the usage of the top-level collection.
- LinkUsagePage
Usage page of the link collection that contains the usage or usage range. If LinkCollection is zero, LinkUsagePage specifies the usage page of the top-level collection.
- IsRange
Usage indicator. If TRUE, the structure describes a usage range. If FALSE, the structure describes a single usage.
- IsStringRange
String descriptor indicator. If TRUE, the usage or usage range has a set of string descriptors. If FALSE, the usage or usage range has zero or one string descriptor.
- IsDesignatorRange
Usage designator indicator. If TRUE, that the usage or usage range has a set of designators. If FALSE, the usage or usage range has zero or one designator.
- IsAbsolute
Usage data indicator. If TRUE, that the button usage or usage range provides absolute data. If FALSE, the button data is the change in state from the previous value.
- Reserved
Reserved for internal system use.
- Range.UsageMin
Inclusive lower bound of usage range whose inclusive upper bound is specified by Range.UsageMax.
- Range.UsageMax
Inclusive upper bound of a usage range whose inclusive lower bound is indicated by Range.UsageMin.
- Range.StringMin
Inclusive lower bound of a range of string descriptors specified by string minimum and string maximum items whose inclusive upper bound is indicated by Range.StringMax.
- Range.StringMax
Inclusive upper bound of a range of string descriptors specified by string minimum and string maximum items whose inclusive lower bound is indicated by Range.StringMax.
- Range.DesignatorMin
Inclusive lower bound of a range of designators specified by designator minimum and designator maximum items whose inclusive upper bound is indicated by Range.DesignatorMax.
- Range.DesignatorMax
Inclusive upper bound of a range of designators specified by designator minimum and designator maximum items whose inclusive lower bound is indicated by Range.DesignatorMax.
- Range.DataIndexMin
Inclusive lower bound of a sequential range of data indexes that correspond, one-to-one and in the same order, to the usages specified by the usage range Range.UsageMin to Range.UsageMax.
- Range.DataIndexMax
Inclusive upper bound of a sequential range of data indexes that correspond, one-to-one and in the same order, to the usages specified by the usage range Range.UsageMin to Range.UsageMax.
- Range
Usage indicator. If IsRange is TRUE, information about a usage range. If IsRange is FALSE, NotRange contains information about a single usage.
- **NotRange.**Usage
Usage identifier.
- **NotRange.**Reserved1
Reserved for internal system use.
- **NotRange.**StringIndex
Indicator for a string descriptor identifier for the usage specified by NotRange.Usage.
- **NotRange.**Reserved2
Reserved for internal system use.
- **NotRange.**DesignatorIndex
Indicator for a designator identifier for the usage specified by NotRange.Usage.
- **NotRange.**Reserved3
Reserved for internal system use
- **NotRange.**DataIndex
Indicator for the data index of the usage specified by NotRange.Usage.
- **NotRange.**Reserved4
Reserved for internal system use.
- NotRange
Indicator for usage. If IsRange is FALSE, information about a single usage. If IsRange is TRUE, Range contains information about a usage range.
Remarks
The terms button and usage are used synonymously.
Clients obtain a button capability array by calling the HidP_GetButtonCaps or HidP_GetSpecificButtonCaps function. These functions return an array of HIDP_BUTTON_CAPS structures in a caller-allocated buffer. The HIDP_CAPS structure, which the HidP_GetCaps function returns, specifies the required buffer length.
Requirements
Header |
hidpi.h |
See Also
Reference
HID Parser Structures
HIDP_CAPS
HidP_GetButtonCaps
HidP_GetCaps
HidP_GetSpecificButtonCaps
HidP_GetSpecificValueCaps
HidP_GetValueCaps
HIDP_VALUE_CAPS