GetPointerFrameInfo

現在のメッセージに関連付けられた指定ポインタのフレーム情報全体を取得する。

GetPointerFrameInfo pointerId, pointerCount, pointerInfo

pointerId : [int] フレーム情報を取得する対象のポインタ識別子。
pointerCount : [var] pointerInfo が指すバッファ内の構造体数を指定する変数へのポインタ。GetPointerFrameInfo が成功した場合、フレーム内のポインタ総数で pointerCount が更新される。
pointerInfo : [var] ポインタ情報を受け取る POINTER_INFO 構造体配列のアドレス。*pointerCount がゼロの場合は NULL でもよい。

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

解説

現在のメッセージに関連付けられた指定ポインタのフレーム情報全体を取得する。

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

[備考]
並列モードデバイスは、複数ポインタの状態と位置を 1
つの入力レポートとしてシステムに報告する(フレーム単位のポインタ入力)。原則としてアプリケーションはフレーム全体を 1
つの入力単位として扱うべきである。GetPointerFrameInfo
は、ポインタメッセージに関連付けられたポインタ入力フレーム全体を取得する。単一ポインタの情報を取得するには GetPointerInfo
を使用する。フレームには、指定ポインタと同じウィンドウが現在所有するポインタのみが含まれる。GetPointerFrameInfo
が返す情報は、呼び出しスレッドがもっとも最近取得したポインタメッセージに関連付けられている。次のメッセージが取得されると、直前のメッセージに関連付けられた情報は失われる可能性がある。
アプリケーションがポインタ入力メッセージを生成速度ほど速く処理できない場合、一部のメッセージが WM_POINTERUPDATE
メッセージに統合(coalesced)されることがある。直近の WM_POINTERUPDATE
メッセージからメッセージ履歴を取得するには GetPointerFrameInfoHistory
を使用する。フレーム全体を取得した後は、SkipPointerFrameMessages
関数を呼び出して、取得待ちの残りのポインタメッセージをスキップできる。これにより残りメッセージを個別に取得・処理する手間を省ける。ただし
SkipPointerFrameMessages
は、同一スレッドの他のエンティティが個別にメッセージを受け取ることを期待していないと確実な場合にのみ慎重に使うべきである。取得される情報は呼び出しスレッドがもっとも最近取得したポインタフレームに関連付けられるため、次のメッセージが取得されると失われる可能性がある。フレームに指定ポインタ以外のポインタが含まれない場合、関数は成功して指定ポインタの情報のみを返す。フレーム情報がもう利用できない場合、関数は失敗し、最終エラーが
ERROR_NO_DATA
に設定される。呼び出しスレッドが、ポインタメッセージが配信されたウィンドウ(あるいは転送先ウィンドウ)を所有していない場合、関数は失敗し最終エラーが
ERROR_ACCESS_DENIED
に設定される。クライアント領域と非クライアント領域の両方を持つアプリでは、入力フレームに両方のデータが含まれることがある。両者を区別するには対象ウィンドウに対してヒットテストを行う必要がある。入力フレームからデータを絞り込みたい場合は次を推奨する。
(以下省略)

情報

プラグイン / モジュール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