HidP_SetButtonArray関数 (hidpi.h)
HidP_SetButtonArray 関数は、HIDP_BUTTON_ARRAY_DATA 構造体の配列を使用してボタンの状態を設定します。
構文
NTSTATUS HidP_SetButtonArray(
HIDP_REPORT_TYPE ReportType,
USAGE UsagePage,
USHORT LinkCollection,
USAGE Usage,
PHIDP_BUTTON_ARRAY_DATA ButtonData,
USHORT ButtonDataLength,
PHIDP_PREPARSED_DATA PreparsedData,
PCHAR Report,
ULONG ReportLength
);
パラメーター
ReportType
HIDP_REPORT_TYPE 列挙型から HidP_Output または HidP_Feature の値。
UsagePage
特定の使用状況が参照する使用状況ページ。
LinkCollection
(省略可能)この値を使用すると、UsagePage と Usage が同じ が異なるコレクションに存在する可能性がある 2 つのフィールドを区別できます。 値がHIDP_LINK_COLLECTION_UNSPECIFIEDの場合は、場所に関係なく、UsagePage と Usage に一致する最初に見つかったボタン配列が返されます。 値がHIDP_LINK_COLLECTION_ROOTの場合、ルート コレクション内の最初に見つかったボタン配列が、UsagePage と一致 Usage が返されます。
Usage
ボタン配列 HidP_SetButtonArray が設定される使用法。
ButtonData
ボタン配列に設定する値を含むバッファー。
ButtonDataLength
ButtonData バッファー内の要素の数。
PreparsedData
HIDCLASS から返される解析されたデータ。
Report
レポート パケット。 最初のバイト ReportIdである必要があります。
ReportLength
指定されたレポート パケットの長さ (バイト単位)。
戻り値
HidP_SetButtonArray は、次のいずれかの状態値を返します。
リターン コード | 形容 |
---|---|
HIDP_STATUS_SUCCESS | レポート パケット内のボタン配列が正常に設定されました |
HIDP_STATUS_INVALID_REPORT_TYPE | ReportType が無効です |
HIDP_STATUS_INVALID_PREPARSED_DATA | PreparesedData が無効です |
HIDP_STATUS_INVALID_REPORT_LENGTH | レポート パケットの長さが、指定された ReportType の HIDP_CAPS 構造体で指定された長さと等しくない |
HIDP_STATUS_REPORT_DOES_NOT_EXIST | 指定された ReportType に関するこのデバイスに関するレポートはありません |
HIDP_STATUS_NOT_BUTTON_ARRAY | 指定されたコントロールがボタン配列ではありません |
HIDP_STATUS_INCOMPATIBLE_REPORT_ID | 指定した使用状況ページ、使用状況、およびリンク コレクションが、渡されるレポートとは異なるレポート ID を持つレポートに存在します |
HIDP_STATUS_USAGE_NOT_FOUND | 使用状況ページ、使用状況、およびリンク コレクションの組み合わせは、この ReportType のレポートには存在しません |
HIDP_STATUS_DATA_INDEX_OUT_OF_RANGE | 指定された HIDP_BUTTON_ARRAY_DATA 構造体のいずれかの ArrayIndex が、このボタン配列の有効な範囲外です |
備考
HidP_SetButtonArray は、指定した LinkCollection内で見つかった最初のボタン配列のボタンの状態を、指定した レポートに対して指定された 使用状況 に設定します。
呼び出し元は、HidP_GetVersion を使用して、この関数が使用可能かどうかを判断する必要があります。 HidP_SetButtonArray は、HidP_GetVersion が 2 以上の値を返す場合にのみ使用できます。 バージョン 2 の API は Windows 11 に対応しています。
ボタン配列は、メインアイテムを記述する一連の使用法の最後の使用法を繰り返す必要がある場合に発生します。これは、指定されたメインアイテムに対して宣言された ReportCount よりも少ない使用法が定義されているためです。 この場合、その使用状況には 1 つの HIDP_BUTTON_CAPS が割り当てられ、HIDP_BUTTON_CAPS の ReportCount は、使用状況が参照するフィールドの数を反映するように設定されます。
ボタン配列を記述する HIDP_BUTTON_CAPS には、常に ReportCount 1 より大きい があります。 ReportCount が 1 と等しい場合は、ボタン配列ではなく、HidP_SetButtonArrayで使用することはできません。 詳細については、HidP_SetUsagesを参照してください。
必要条件
要件 | 価値 |
---|---|
ヘッダー | hidpi.h |