UCHARToken;/* Specifies the one-byte prefix of a global item. */
UCHARReserved[3];
ULONGBitField;/* Specifies the data part of the global item. */
}hidp_unknown_token,*phidp_unknown_token;
typedefstructhid_pp_cap_{
USAGEUsagePage;
UCHARReportID;
UCHARBitPosition;
USHORTReportSize;// WIN32 term for this is BitSize
USHORTReportCount;
USHORTBytePosition;
USHORTBitCount;
ULONGBitField;
USHORTNextBytePosition;
USHORTLinkCollection;
USAGELinkUsagePage;
USAGELinkUsage;
// Start of 8 Flags in one byte
BOOLEANIsMultipleItemsForArray:1;
BOOLEANIsPadding:1;
BOOLEANIsButtonCap:1;
BOOLEANIsAbsolute:1;
BOOLEANIsRange:1;
BOOLEANIsAlias:1;// IsAlias is set to TRUE in the first n-1 capability structures added to the capability array. IsAlias set to FALSE in the nth capability structure.
BOOLEANIsStringRange:1;
BOOLEANIsDesignatorRange:1;
// End of 8 Flags in one byte
BOOLEANReserved1[3];
hidp_unknown_tokenUnknownTokens[4];// 4 x 8 Byte
union{
struct{
USAGEUsageMin;
USAGEUsageMax;
USHORTStringMin;
USHORTStringMax;
USHORTDesignatorMin;
USHORTDesignatorMax;
USHORTDataIndexMin;
USHORTDataIndexMax;
}Range;
struct{
USAGEUsage;
USAGEReserved1;
USHORTStringIndex;
USHORTReserved2;
USHORTDesignatorIndex;
USHORTReserved3;
USHORTDataIndex;
USHORTReserved4;
}NotRange;
};
union{
struct{
LONGLogicalMin;
LONGLogicalMax;
}Button;
struct{
BOOLEANHasNull;
UCHARReserved4[3];
LONGLogicalMin;
LONGLogicalMax;
LONGPhysicalMin;
LONGPhysicalMax;
}NotButton;
};
ULONGUnits;
ULONGUnitsExp;
}hid_pp_cap,*phid_pp_cap;
typedefstructhidp_preparsed_data_{
UCHARMagicKey[8];
USAGEUsage;
USAGEUsagePage;
USHORTReserved[2];
// CAPS structure for Input, Output and Feature
hid_pp_caps_infocaps_info[3];
USHORTFirstByteOfLinkCollectionArray;
USHORTNumberLinkCollectionNodes;
#if defined(__MINGW32__) || defined(__CYGWIN__)
// MINGW fails with: Flexible array member in union not supported