RegisterPointerInputTarget 関数 (winuser.h)

呼び出し元が、指定した型のすべてのポインター入力がリダイレクトされるターゲット ウィンドウを登録できるようにします。

構文

BOOL RegisterPointerInputTarget(
  [in] HWND               hwnd,
  [in] POINTER_INPUT_TYPE pointerType
);

パラメーター

[in] hwnd

グローバル リダイレクト ターゲットとして登録するウィンドウ。

リダイレクトすると、フォアグラウンド ウィンドウのアクティブ化 (フォーカス) が失われる可能性があります。 これを回避するには、ウィンドウがメッセージのみのウィンドウであるか、 WS_EX_NOACTIVATE スタイルが設定されていることを確認します。

[in] pointerType

指定したウィンドウにリダイレクトされるポインター入力の種類。 これは、 POINTER_INPUT_TYPE 列挙体の有効でサポートされている値です。 ジェネリック PT_POINTER 型と PT_MOUSE 型は、このパラメーターでは無効であることに注意してください。

戻り値

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

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

解説

UI アクセス特権を持つアプリケーションでは、この関数を使用して、指定したポインター入力の種類のすべての入力を受け取る独自のウィンドウを登録できます。 各デスクトップでは、特定の時点で、ポインター入力の種類ごとに 1 つのグローバル リダイレクト ターゲット ウィンドウのみが許可されます。 正常に登録された最初のウィンドウは、ウィンドウが登録解除または破棄されるまで有効なままになります。この時点で、ロールは次の修飾された呼び出し元が使用できるようになります。

登録が有効な間は、指定したポインター型のすべての入力が、入力デバイスから送信されたか、アプリケーションによって挿入されたかに関係なく、登録済みウィンドウにリダイレクトされます。 ただし、登録されたウィンドウを所有するプロセスが指定したポインター型の入力を挿入する場合、挿入されたなどの入力はリダイレクトされず、代わりに通常どおりに処理されます。

複数のポインター入力型のグローバル リダイレクト ターゲットとして同じウィンドウを登録するアプリケーションでは、目的のポインター入力の種類ごとに 1 回、 RegisterPointerInputTarget 関数を複数回呼び出す必要があります。

呼び出し元のスレッドに UI アクセス特権がない場合、この関数は失敗し、最後のエラーは ERROR_ACCESS_DENIED に設定されます。

指定したポインター入力の種類が無効な場合、この関数は失敗し、最後のエラーは ERROR_INVALID_PARAMETER に設定されます。

呼び出し元のスレッドが指定したウィンドウを所有していない場合、この関数は最後のエラーが ERROR_ACCESS_DENIED に設定された状態で失敗します。

指定したウィンドウのデスクトップに、指定したポインター入力型のグローバル リダイレクト ターゲットが既に登録されている場合、この関数は失敗し、最後のエラーが ERROR_ACCESS_DENIED に設定されます。

要件

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