HidP_GetButtonArray関数 (hidpi.h)
HidP_GetButtonArray は、指定したレポート のHIDP_BUTTON_ARRAY_DATA 構造体の配列を返します。
構文
NTSTATUS HidP_GetButtonArray(
HIDP_REPORT_TYPE ReportType,
USAGE UsagePage,
USHORT LinkCollection,
USAGE Usage,
PHIDP_BUTTON_ARRAY_DATA ButtonData,
PUSHORT ButtonDataLength,
PHIDP_PREPARSED_DATA PreparsedData,
PCHAR Report,
ULONG ReportLength
);
パラメーター
ReportType
HIDP_REPORT_TYPE列挙型の値。
UsagePage
特定の使用状況が参照する使用状況ページ。
LinkCollection
(省略可能)この値を使用すると、 UsagePage と Usage が同じである可能性がありますが、異なるコレクションに存在する 2 つのフィールドを区別できます。 LinkCollection 値がHIDP_LINK_COLLECTION_UNSPECIFIED場合、UsagePage と Usage に一致する最初のボタン配列が、場所に関係なく返されます。 LinkCollection 値がHIDP_LINK_COLLECTION_ROOTされている場合は、UsagePage と Usage に一致するルート コレクション内の最初のボタン配列が返されます。
Usage
ボタンHidP_GetButtonArrayが 取得される使用状況 。
ButtonData
に設定ON
されたボタンのデータが配置されるHIDP_BUTTON_ARRAY_DATA構造体の配列。 必要な要素の数は、このコントロールのHIDP_BUTTON_CAPSの ReportCount フィールドです。 このバッファーは、呼び出し元によって提供されます。
ButtonDataLength
入力として、このパラメーターは、バイト数ではなく、配列要素の数で ButtonData パラメーターの長さを指定します。 出力として、HIDP_STATUS_SUCCESSが返された場合、この値は、関数によって入力された配列要素の数を示すように設定されます。 返すことができる HIDP_BUTTON_ARRAY_DATA 構造体の最大数は、HIDP_BUTTON_CAPSによって決まります。ReportCount。 HIDP_STATUS_BUFFER_TOO_SMALLが返された場合、この値には、要求を正常に完了するために必要な配列要素の数が含まれます。
PreparsedData
HIDCLASS によって返される事前解析済みデータ。
Report
レポート パケット。 最初のバイトは ReportId である必要があります。 これは、レポートがシステムから読み取られる場合に正しく設定されます。
ReportLength
指定されたレポート パケットの長さ (バイト単位)。
戻り値
HidP_GetButtonArray は、次のいずれかの状態値を返します。
リターン コード | 説明 |
---|---|
HIDP_STATUS_SUCCESS | レポート パケットからボタンが正常に取得されました |
HIDP_STATUS_INVALID_REPORT_TYPE | ReportType パラメーターが無効です |
HIDP_STATUS_INVALID_PREPARSED_DATA | PreparsedData パラメーターが無効です |
HIDP_STATUS_INVALID_REPORT_LENGTH | レポート パケットの長さが、指定された ReportType のHIDP_CAPS構造体で指定された長さと等しくない |
HIDP_STATUS_NOT_BUTTON_ARRAY | 指定されたコントロールがボタン配列ではありません |
HIDP_STATUS_BUFFER_TOO_SMALL | 配列を返すバッファーに渡される のサイズが小さすぎます |
HIDP_STATUS_INCOMPATIBLE_REPORT_ID | 指定された使用状況ページ、使用状況、およびリンクコレクションが、渡されるレポートとは異なるレポート ID を持つレポートに存在します |
HIDP_STATUS_USAGE_NOT_FOUND | 使用状況ページ、使用状況、およびリンク コレクションの組み合わせは、この ReportType のレポートに存在しません |
注釈
呼び出し元は 、HidP_GetVersion を使用して、この関数が使用可能かどうかを判断する必要があります。 HidP_GetButtonArray は、 HidP_GetVersion が 2 つ以上の値を返す場合にのみ使用できます。 バージョン 2 の API は、Windows 11に対応しています。
ボタン配列は、指定されたメイン項目に対して宣言された ReportCount よりも使用量が少ないため、メイン項目を記述する一連の使用法の最後の使用法を繰り返す必要がある場合に発生します。 この場合、その使用状況に対して 1 つのHIDP_BUTTON_CAPSが割り当てられ、使用状況が参照するフィールドの数を反映するようにHIDP_BUTTON_CAPSの ReportCount が設定されます。
ボタン配列を記述する HIDP_BUTTON_CAPS では、 常に ReportCount が 1 より大きくなります。 ReportCount が 1 と等しい場合は、ボタン配列ではなく、HidP_GetButtonArrayで使用することはできません。 代わりに 「HidP_GetUsages 」を参照してください。
要件
要件 | 値 |
---|---|
Header | hidpi.h |