RegisterTouchpadCapableWindow 関数と RegisterTouchpadCapableThread 関数

[一部の情報は、商用リリース前に大幅に変更される可能性があるプレリリース製品に関連しています。 Microsoftは、ここに記載されている情報に関して明示または黙示を問わず、一切の保証を行いません。

指定したウィンドウ (現在のスレッド) をタッチパッド対応としてシステムに登録します。

構文

WINUSERAPI
BOOL
WINAPI
RegisterTouchpadCapableWindow(
    _In_ HWND hWnd,
    _In_ BOOL fEnable);

WINUSERAPI
BOOL
WINAPI
RegisterTouchpadCapableThread(
    _In_ BOOL fEnable);

パラメーター

RegisterTouchpadCapableWindow

hWnd

タッチパッド対応として登録または登録解除されるウィンドウへのハンドル。

fEnable

ウィンドウ をタッチパッド対応として登録する場合は TRUE。 登録 を解除する場合は FALSE。

RegisterTouchpadCapableThread

fEnable

現在 のスレッドをタッチパッド対応として登録する場合は TRUE。 登録 を解除する場合は FALSE。

値を返す

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 拡張エラー情報を取得するには、 GetLastError を呼び出します。 システムがタッチパッド対応の登録をサポートしていない場合、またはスレッドの登録を解除しようとしてスレッドが現在対応として登録されていない場合、登録が失敗する可能性があります。

注釈

タッチパッド対応として登録すると、次のシステム機能が変更されます。

  • GetPointerDevices のデバイス 一覧にタッチパッドが含まれるようになりました。
  • タッチパッドから送信されたマウス メッセージの GetCurrentInputMessageSource は、IMDT_MOUSEではなく、デバイスの種類としてIMDT_TOUCHPADを返します。
  • RegisterPointerDeviceNotifications は、タッチパッド (デバイスの到着/出発と、範囲内/範囲外の連絡先の両方) のメッセージを生成します。
  • ウィンドウ (またはスレッド上のすべてのウィンドウ) は、タッチパッドの 2 本指ジェスチャ (パンとズーム) の WM_POINTER メッセージを受け取ります。
  • これらのメッセージが DefWindowProc に転送される場合、システムが現在タッチパッド対応でないウィンドウ/スレッドに対して行うのと同じように、これらのメッセージはマウス ホイール メッセージに変換されます。

RegisterTouchpadCapableWindow - ウィンドウの登録は "最後の呼び出し元優先" です。ウィンドウのタッチパッド機能は、API の最新の呼び出しに基づいて有効または無効になります。 ウィンドウの所有者は、初期化中にウィンドウが対応可能として登録されることを想定しています。コンポーネントは、その結果として受信する WM_POINTER メッセージの処理方法を制御できない場合は、ウィンドウを対応可能として登録しないでください。

RegisterTouchpadCapableThread — システムは、スレッドが可能として登録された回数を追跡するため、スレッドが対応可能として登録されている場合は、不要になったときに登録解除する必要があります。 スレッドは RegisterTouchpadCapableThread を使用して、依存動作を持つ API を呼び出すことができるものとして一時的に登録し、スレッドの元の状態が保持されるように登録解除できます。

GetPointerDevicesGetCurrentInputMessageSource はパラメーターにウィンドウを取らないので、スレッド全体がタッチパッド対応の場合にのみ動作が変更され、それ以外の場合は認識されないスレッドで 1 つのウィンドウでオプトインするときに互換性の問題が回避されます。

Important

システムのタッチパッド設定の一部の動作は、ポインター入力でジェスチャ認識を実行するための対話コンテキスト API 内に実装されます。 これには、パンやズームが明示的に無効になっているかどうか、およびパンのコンテンツモーションの方向が含まれます。 今後のシステム更新プログラムでも、より多くの機能が導入される可能性があります。 そのため、タッチパッド対応として登録し、ポインター入力を直接受け取るときにジェスチャ認識に対話コンテキスト API を使用することを強くお勧めします。そのため、ユーザーはすべてのアプリケーションで一様な動作を体験できます。 これらの API を使用しない場合は、ユーザーのタッチパッド設定に対してクエリを実行し、アプリケーションのユーザー エクスペリエンスに該当する場合は、ジェスチャ認識に関連するものを尊重することが重要です。 新しいシステム設定の導入にはアプリケーションの更新が必要になりますが、対話コンテキスト API を使用する場合、これらの新しい設定は自動的に想定どおりに動作します。

具体的には、新しい ProcessPointerFramesInteractionContext2 または BufferPointerPacketsInteractionContext2 を使用する必要があります。これらは、POINTER_INFOだけでなく、対話コンテキストへの完全なポインター ペイロードを提供するためです。 ジェスチャ認識の今後の機能強化では、この情報が考慮される可能性があります。 WinRT PhysicalGestureRecognizer クラスは、これらの API を内部的に使用します。

必要条件

Requirement 価値
サポートされる最小クライアント Windows 11 [デスクトップ アプリのみ]
サポートされている最小のサーバー サポートなし
ヘッダー Winuser.h (Windows.h を含む)
図書館 User32.lib
DLL User32.dll (RegisterTouchpadCapableWindow の場合は序数 2689、RegisterTouchpadCapableThread の場合は序数 2688)

こちらも参照ください