RegisterTouchpadCapableWindow und RegisterTouchpadCapableThread-Funktionen

[Einige Informationen beziehen sich auf vorab veröffentlichte Produkte, die vor der kommerziellen Veröffentlichung erheblich geändert werden können. Microsoft übernimmt keine Gewährleistungen, ausdrücklichen oder konkludenten Angaben in Bezug auf die hier bereitgestellten Informationen.]

Registriert das angegebene Fenster oder den aktuellen Thread als Touchpad-fähig für das System.

Syntax

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

WINUSERAPI
BOOL
WINAPI
RegisterTouchpadCapableThread(
    _In_ BOOL fEnable);

Parameter

RegisterTouchpadCapableWindow

hWnd

Ein Handle für das Fenster, das als Touchpadfähig registriert oder nicht registriert werden soll.

fEnable

TRUE , um das Fenster als Touchpadfähig zu registrieren; FALSE , um die Registrierung aufzuheben.

RegisterTouchpadCapableThread

fEnable

TRUE , um den aktuellen Thread als Touchpadfähig zu registrieren; FALSE , um die Registrierung aufzuheben.

Zurückgegebener Wert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen abzurufen. Die Registrierung kann fehlschlagen, wenn das System die Registrierung als Touchpad-fähig nicht unterstützt oder versucht, die Registrierung des Threads aufzuheben und der Thread derzeit nicht als fähig registriert ist.

Bemerkungen

Durch die Registrierung als Touchpad-fähig ändern sich die folgenden Systemfunktionen:

  • GetPointerDevices enthält nun Touchpads in der Geräteliste.
  • GetCurrentInputMessageSource für Touchpad-ausgehende Mausnachrichten geben IMDT_TOUCHPAD als Gerätetyp anstelle von IMDT_MOUSE zurück.
  • RegisterPointerDeviceNotifications erzeugen Nachrichten für Touchpads (sowohl Gerätean-/Abreise als auch Kontakte innerhalb/außerhalb des Bereichs).
  • Das Fenster (oder alle Fenster im Thread) empfangen WM_POINTER Nachrichten für Touchpad-Gesten mit zwei Fingern (Schwenken und Zoomen).
  • Wenn diese Nachrichten an DefWindowProc weitergeleitet werden, werden sie genauso wie das System heute für nicht touchpadfähige Fenster/Threads in Mausradnachrichten konvertiert.

RegisterTouchpadCapableWindow – Das Registrieren eines Fensters ist "letzter Aufrufer gewinnt" – die Touchpadfunktion des Fensters wird basierend auf dem letzten Aufruf der API aktiviert oder deaktiviert. Die Erwartung besteht darin, dass der Besitzer des Fensters während der Initialisierung als fähig registriert wird – Komponenten sollten ein Fenster nicht als fähig registrieren, wenn sie nicht steuern können, wie die WM_POINTER Nachrichten verarbeitet werden, die er folglich empfängt.

RegisterTouchpadCapableThread – Das System verfolgt, wie oft der Thread als fähig registriert wurde. Wenn der Thread also als fähig registriert ist, sollte die Registrierung aufgehoben werden, wenn er nicht mehr benötigt wird. Ein Thread kann RegisterTouchpadCapableThread verwenden, um vorübergehend als fähig zu registrieren, apIs mit abhängigem Verhalten aufzurufen und dann die Registrierung aufzuheben, damit der ursprüngliche Zustand des Threads beibehalten wird.

Da GetPointerDevices und GetCurrentInputMessageSource kein Fenster in ihren Parametern verwenden, ändert sich ihr Verhalten nur, wenn der gesamte Thread touchpadfähig ist, um Kompatibilitätsprobleme beim Anmelden in einem einzelnen Fenster in einem andernfalls nicht bekannten Thread zu vermeiden.

Von Bedeutung

Das Verhalten einiger Touchpadeinstellungen des Systems wird in den Interaktionskontext-APIs für die Gestikerkennung bei Zeigereingaben implementiert. Dazu gehören, ob Verschiebungen und/oder Zoomen explizit deaktiviert wurden, und die Richtung der Inhaltsbewegung für die Verschiebung. Zukünftige Systemupdates können auch mehr Funktionen enthalten. Es wird daher dringend empfohlen, die Interaktionskontext-APIs für die Gestikerkennung zu verwenden, wenn sie als Touchpad-fähig registriert und die Zeigereingabe direkt empfangen, sodass das Verhalten der Benutzer für alle Anwendungen einheitlich ist. Wenn diese APIs nicht verwendet werden, ist es wichtig, die Touchpadeinstellungen des Benutzers abzufragen und diejenigen zu beachten, die mit der Gestikerkennung zusammenhängen, falls zutreffend für die Benutzererfahrung der Anwendung. Die Einführung neuer Systemeinstellungen erfordert jedoch Anwendungsupdates. Wenn Sie die Interaktionskontext-APIs verwenden, funktionieren diese neuen Einstellungen automatisch wie erwartet.

Insbesondere sollte die neue ProcessPointerFramesInteractionContext2 oder BufferPointerPacketsInteractionContext2 verwendet werden, da diese die vollständige Zeigernutzlast auf den Interaktionskontext statt nur der POINTER_INFO bereitstellen. Zukünftige Verbesserungen der Gestikerkennung können diese Informationen berücksichtigen. Die WinRT PhysicalGestureRecognizer-Klasse verwendet diese APIs intern.

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows 11 [nur Desktop-Apps]
Unterstützter Server (Mindestversion) Nicht unterstützt
Header Winuser.h (einschließen Windows.h)
Bibliothek User32.lib
DLL User32.dll (Ordnungszahl 2689 für RegisterTouchpadCapableWindow, Ordinal 2688 für RegisterTouchpadCapableThread)

Siehe auch