GetPointerInputTransform 関数 (winuser.h)
現在のメッセージに関連付けられているポインター情報座標の 1 つ以上の変換を取得します。
構文
BOOL GetPointerInputTransform(
[in] UINT32 pointerId,
[in] UINT32 historyCount,
[out] INPUT_TRANSFORM *inputTransform
);
パラメーター
[in] pointerId
情報を取得するポインターの識別子。
[in] historyCount
inputTransform が指すことができるINPUT_TRANSFORM構造体の数。
この値は 1 以下で、GetPointerInfo、GetPointerTouchInfo、または GetPointerPenInfo (単一入力変換の場合) または GetPointerInfoHistory、GetPointerTouchInfoHistory、または GetPointerPenInfoHistory (入力変換の配列の場合) によって返されるPOINTER_INFO構造体のhistoryCount で指定された値を超えてはなりません。
GetPointerInputTransform が成功した場合、inputTransform は使用可能な構造体の合計数で更新されます。 使用可能な構造体の合計数は、POINTER_INFO構造体の historyCount フィールドと同じです。
[out] inputTransform
変換情報を受信 するINPUT_TRANSFORM 構造体の配列のアドレス。 このパラメーターは NULL にはできません。
戻り値
関数が成功した場合、戻り値は 0 以外です。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
ポインター入力メッセージのコンシューマーは、通常 、ScreenToClient または MapWindowPoints を使用して画面座標をクライアント座標に変換します。
メッセージ コンシューマーに変換が適用されている場合は、 GetPointerInputTransform を使用して、入力が発生した時点でメッセージ コンシューマーの変換を取得します。 この変換の逆関数を使用して、ポインター入力座標を画面座標からメッセージ コンシューマーのクライアント座標に変換できます。
入力変換が入力に関連付けられていない場合、 GetPointerInputTransform 関数は失敗し、最後のエラーは ERROR_NO_DATA に設定されます。 代わりに ScreenToClient または MapWindowPoints を使用してください。
入力変換では、入力ターゲットの右から左へのレイアウト設定は考慮されません。 右から左へのレイアウトに調整された座標を必要とするアプリケーションでは、右から左へのミラーリングを実行するか、適切なミラーリング変換と入力変換を組み合わせる必要があります。
GetPointerInputTransform によって返される情報は、呼び出し元のスレッドによって取得された最新のポインター メッセージに関連付けられます。 呼び出し元のスレッドによって次のメッセージが取得されると、前のメッセージに関連付けられている情報が使用できなくなる可能性があります。
アプリケーションが GetPointerInfo を呼び出す場合、同じポインター ID と 1 つのINPUT_TRANSFORM出力バッファーを使用して GetPointerInputTransform を呼び出して、データに関連付けられた入力変換を取得できます。
アプリケーションが GetPointerFrameInfo を呼び出す場合、同じポインター ID と 1 つのINPUT_TRANSFORM出力バッファーを使用して GetPointerInputTransform を呼び出して、データに関連付けられた入力変換を取得できます。 同じ入力変換がフレーム全体に適用されます。
アプリケーションが GetPointerInfoHistory を呼び出す場合は、同じポインター ID と出力バッファーを使用して GetPointerInputTransform を呼び出して 、GetPointerInfoHistory を使用して取得したエントリを保持できます。 返される配列内の各入力変換は、 GetPointerInfoHistory によって返される配列内の対応するエントリと共に使用できます。
アプリケーションが GetPointerFrameInfoHistory を呼び出す場合は、同じポインター ID と出力バッファーを使用して GetPointerInputTransform を呼び出して 、GetPointerInfoHistory を使用して取得したエントリを保持できます。 返される配列内の各入力変換は、 GetPointerFrameInfoHistory によって返される配列内の対応するフレームと共に使用でき、同じ入力変換がフレーム全体に適用されます。
メッセージに関連付けられている情報が使用できなくなった場合、この関数は最後のエラーが ERROR_INVALID_PARAMETER に設定されて失敗します。
historyCount に、GetPointerInfo によって返されるPOINTER_INFO構造体の historyCount フィールド (または GetPointerInfoHistory によって返される配列内の最初のPOINTER_INFO構造体) よりも大きい値が含まれている場合、関数は最後のエラーを ERROR_INVALID_PARAMETER に設定して失敗します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8.1 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 R2 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |