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 の場合、ボタンの使用法は 1 つだけです。
BitField
入力、出力、または機能メイン項目に関連付けられているデータ フィールド (1 バイトまたは 2 バイト) を格納します。
LinkCollection
使用法または使用 範囲を含 む 最上位のコレクションのリンク コレクション配列内のリンク コレクション のインデックスを指定します。 LinkCollection が 0 の場合、使用法または使用範囲は最上位のコレクションに含まれます。
LinkUsage
使用法または使用範囲を含むリンク コレクションの使用法を指定します。 LinkCollection が 0 の場合、LinkUsage は最上位のコレクションの使用法を指定します。
LinkUsagePage
使用状況または使用範囲を含むリンク コレクションの使用状況ページを指定します。 LinkCollection が 0 の場合、LinkUsagePage は最上位のコレクションの使用ページを指定します。
IsRange
TRUE の場合、構造体が使用範囲を記述することを指定します。 それ以外の場合、 IsRange が FALSE の場合、構造体は 1 つの使用法を記述します。
IsStringRange
TRUE の場合、使用法または使用範囲に文字列記述子のセットがあることを指定します。 それ以外の場合、 IsStringRange が FALSE の場合、使用法または使用範囲には 0 または 1 の文字列記述子があります。
IsDesignatorRange
TRUE の場合、使用法または使用範囲に一連の指定子があることを指定します。 それ以外の場合 、IsDesignatorRange が FALSE の場合、使用法または使用範囲には 0 個または 1 個の指定子があります。
IsAbsolute
TRUE の場合、ボタンの使用状況または使用範囲が絶対データを提供することを指定します。 それ以外の場合 、IsAbsolute が FALSE の場合、ボタン データは前の値からの状態の変化になります。
ReportCount
HID で定義されたレポート数。 API バージョン 2.0 以降で使用できます。 HIDP_GetVersion関数を呼び出して API バージョンを取得します。
Reserved2
内部システムの使用のために予約されています。
Reserved[9]
内部システムの使用のために予約されています。
Range
IsRange が TRUE の場合、使用範囲に関する情報を指定します。 それ以外の場合、 IsRange が FALSE の場合、 NotRange には 1 つの使用状況に関する情報が含まれます。
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 に指定された使用量に対応する、1 対 1 と同じ順序の連続するデータ インデックスの包括的な下限を示します。
Range.DataIndexMax
使用範囲 Range.UsageMin から Range.UsageMax に指定された使用量に対応する、一対一で同じ順序のデータ インデックスの連続範囲の包括的な上限を示します。
NotRange
IsRange が FALSE の場合、1 回の使用状況に関する情報を指定します。 それ以外の場合 、IsRange が TRUE の場合、 Range には使用範囲に関する情報が含まれます。
NotRange.Usage
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 よりも使用量宣言の数が少ないアイテムメイン入力、出力、または機能を宣言すると、そのメインアイテムの残りのすべての未指定カウントに最後の使用法が適用されます。 たとえば、多くのフィールドを記述する必要があるデータがあり、バッファーされたバイトである可能性があります。 この場合、関連付けられているこれらのフィールドに割り当てられる値キャップ構造は 1 つだけで、すべて同じ使用法を持ち、 ReportCount には関連するフィールドの数が反映されます。 通常、 ReportCount は 1 つです。 このような値構造のすべてのフィールドにアクセスするには、 HidP_GetUsageValueArray と HidP_SetUsageValueArrayを使用する必要があります。 HidP_GetUsageValue関数とHidP_SetScaledUsageValue関数も機能します。 ただし、これらの関数は構造体の最初のフィールドでのみ機能します。
要件
要件 | 値 |
---|---|
Header | hidpi.h (Hidpi.h を含む) |