次の方法で共有


SkipPointerFrameMessages 関数 (winuser.h)

指定したポインターに対して最後に取得したメッセージを生成したポインター入力フレームを決定し、同じポインター入力フレームから生成されたキューに登録された (未削除の) ポインター入力メッセージを破棄します。 アプリケーションが GetPointerFrameInfo 関数、GetPointerFrameInfoHistory 関数、またはその型固有のバリアントのいずれかを使用してフレーム全体の情報を取得した場合、この関数を使用して、そのフレームから残りのメッセージを 1 つずつ取得および破棄しないようにすることができます。

構文

BOOL SkipPointerFrameMessages(
  [in] UINT32 pointerId
);

パラメーター

[in] pointerId

ポインターの識別子。 このポインターに対して最後に取得された入力を含むフレームでは、保留中のメッセージはスキップされます。

戻り値

関数が成功した場合、戻り値は 0 以外です。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

並列モード デバイスは、フレーム内のポインター入力を報告する場合があります。つまり、1 つの入力レポート内のデバイスからのすべてのポインターの状態と位置をシステムに報告できます。 アプリケーション固有の要件で特に指示がない限り、アプリケーションはフレーム全体を 1 つの入力として表示することをお勧めします。

SkipPointerFrameMessages 関数は、GetPointerFrameInfo 関数 (またはその型固有のバリアントのいずれか) と組み合わせて使用して、フレーム全体を 1 つの入力として使用できます。

アプリケーションでポインター メッセージが表示されると、 GetPointerFrameInfo 関数を使用して、ポインター メッセージが属するポインター入力フレーム全体を取得できるため、ウィンドウが現在所有しているすべてのポインターの更新されたビューを取得できます。 返されるフレームには、指定したポインターと同じウィンドウによって現在所有されているポインターのみが含まれていることに注意してください。

情報のフレーム全体を取得すると、アプリケーションは SkipPointerFrameMessages 関数を呼び出して、取得待ちのこのフレームに関連付けられている残りのポインター メッセージをスキップできます。 これにより、残りのメッセージを 1 つずつ取得して処理するオーバーヘッドがアプリケーションに節約されます。

警告SkipPointerFrameMessages 関数は、呼び出し元が呼び出し元のスレッド上の他のエンティティ (直接操作など) が保留中のポインター メッセージを取得することを期待していないことを確認できる場合にのみ使用する必要があります。 このため、 SkipPointerFrameMessages は、複数の同時操作を処理するときに直接操作と組み合わせて使用しないでください。
 
取得された情報は、呼び出し元のスレッドによって最後に取得されたポインター フレームに関連付けられていることに注意してください。 呼び出し元のスレッドが次のメッセージを取得すると、前のポインター フレームに関連付けられている情報が使用できなくなる可能性があります。

ポインター フレームに、指定したポインター以外に追加のポインターが含まれない場合、この関数はアクションなしで成功します。

呼び出し元のスレッドがポインター メッセージが配信されたウィンドウを所有していない場合、この関数は失敗し、最後のエラーが ERROR_ACCESS_DENIED に設定されます。

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll

関連項目

関数