GetPointerInputTransform

現在のメッセージに関連付けられたポインタ情報座標に対する 1 つ以上の変換を取得する。

GetPointerInputTransform pointerId, historyCount, inputTransform

pointerId : [int] 情報を取得する対象のポインタ識別子。
historyCount : [int] inputTransform が指せる INPUT_TRANSFORM 構造体の個数。この値は 1 以上かつ、GetPointerInfo, GetPointerTouchInfo, GetPointerPenInfo(単一入力変換の場合)または GetPointerInfoHistory, GetPointerTouchInfoHistory, GetPointerPenInfoHistory(入力変換配列の場合)が返す POINTER_INFO 構造体の historyCount 以下でなければならない。GetPointerInputTransform が成功した場合、利用可能な構造体の総数で inputTransform が更新される。この総数は POINTER_INFO 構造体の historyCount フィールドと同じ値である。
inputTransform : [var] 変換情報を受け取る INPUT_TRANSFORM 構造体配列のアドレス。このパラメータは NULL にできない。

(プラグイン / モジュール : user32.dll)

解説

現在のメッセージに関連付けられたポインタ情報座標に対する 1 つ以上の変換を取得する。

[戻り値]
関数が成功した場合、戻り値は非ゼロである。関数が失敗した場合、戻り値はゼロである。拡張エラー情報を取得するには GetLastError
を呼ぶ。

[備考]
ポインタ入力メッセージの利用側は通常、ScreenToClientMapWindowPoints
で画面座標をクライアント座標に変換する。メッセージ利用側で変換が適用されている場合、入力発生時点の変換を取得するには
GetPointerInputTransform
を使用する。その逆変換を使えば、ポインタ入力座標を画面座標からメッセージ利用側のクライアント座標へ変換できる。入力に変換が関連付けられていない場合、GetPointerInputTransform
は最終エラー ERROR_NO_DATA で失敗する。代わりに ScreenToClient または MapWindowPoints
を使う。入力変換は入力先の右から左レイアウト設定を考慮しない。右から左レイアウト用の座標補正が必要なアプリケーションは、自前でミラーリングするか、適切なミラーリング変換を入力変換と組み合わせる必要がある。
GetPointerInputTransform
が返す情報は呼び出しスレッドがもっとも最近取得したポインタメッセージに関連付けられており、次のメッセージが取得されると失われる可能性がある。GetPointerInfo
を呼んだ場合、同じポインタ ID と 1 要素の INPUT_TRANSFORM 出力バッファで
GetPointerInputTransform
を呼ぶことでそのデータに関連付けられた入力変換を取得できる。GetPointerFrameInfo
を呼んだ場合も同様で、同一の入力変換がフレーム全体に適用される。GetPointerInfoHistory を呼んだ場合、同じポインタ
ID と取得済みエントリを格納する出力バッファで GetPointerInputTransform
を呼ぶことができる。返された配列内の各入力変換は GetPointerInfoHistory
が返す対応エントリに適用できる。GetPointerFrameInfoHistory を呼んだ場合も同様で、返された配列内の各入力変換は
GetPointerFrameInfoHistory が返す対応フレームに適用でき、同一の入力変換がフレーム全体に適用される。
メッセージに関連付けられた情報がもう利用できない場合、関数は失敗し最終エラーが ERROR_INVALID_PARAMETER
に設定される。historyCount が GetPointerInfo が返す POINTER_INFO 構造体(あるいは
GetPointerInfoHistory が返す配列の最初の POINTER_INFO 構造体)の historyCount
より大きい値を含む場合、関数は失敗し最終エラーが ERROR_INVALID_PARAMETER に設定される。

情報

プラグイン / モジュールuser32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の user32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_user32_gen2.hs