Funzioni RegisterTouchpadWindow e RegisterTouchpadCapableThread

[Alcune informazioni riguardano il prodotto non rilasciato che può essere modificato in modo sostanziale prima che venga rilasciato commercialmente. Microsoft non fornisce alcuna garanzia, espressa o implicita, in relazione alle informazioni fornite qui.]

Registra la finestra specificata, o il thread corrente, come touchpad in grado di supportare il sistema.

Sintassi

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

WINUSERAPI
BOOL
WINAPI
RegisterTouchpadCapableThread(
    _In_ BOOL fEnable);

Parametri

RegisterTouchpadWindow

hWnd

Handle per la finestra da registrare o annullare la registrazione come touchpad.

fEnable

TRUE per registrare la finestra come compatibile con touchpad; FALSE per annullare la registrazione.

RegisterTouchpadCapableThread

fEnable

TRUE per registrare il thread corrente come compatibile con touchpad; FALSE per annullare la registrazione.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError. La registrazione può non riuscire se il sistema non supporta la registrazione come touchpad o se si tenta di annullare la registrazione del thread e il thread non è attualmente registrato come in grado di eseguire la registrazione.

Osservazioni:

Registrando come touchpad, la funzionalità di sistema seguente cambierà:

  • GetPointerDevices includerà ora i touchpad nell'elenco dei dispositivi.
  • GetCurrentInputMessageSource per i messaggi del mouse originati dal touchpad restituirà IMDT_TOUCHPAD come tipo di dispositivo anziché IMDT_MOUSE.
  • RegisterPointerDeviceNotifications produrrà messaggi per i touchpad (sia l'arrivo del dispositivo che la partenza e i contatti in/fuori intervallo).
  • La finestra (o tutte le finestre del thread) riceverà WM_POINTER messaggi per i movimenti a due dita del touchpad (panoramica e zoom).
  • Se questi messaggi vengono inoltrati a DefWindowProc, verranno convertiti in messaggi con rotellina del mouse proprio come avviene oggi per finestre/thread non compatibili con touchpad.

RegisterTouchpadCapableWindow : la registrazione di una finestra è "l'ultima vittoria del chiamante", ovvero la funzionalità touchpad della finestra è abilitata o disabilitata in base alla chiamata più recente all'API. L'aspettativa è che il proprietario della finestra verrà registrato come in grado durante l'inizializzazione: i componenti non devono registrare una finestra come in grado di controllare come gestisce i messaggi WM_POINTER che riceverà di conseguenza.

RegisterTouchpadCapableThread : il sistema tiene traccia del numero di volte in cui il thread è stato registrato come in grado di supportare, quindi se il thread è registrato come in grado di eseguire la registrazione, deve essere annullata quando non è più necessario. Un thread può usare RegisterTouchpadCapableThread per registrare temporaneamente come in grado di chiamare le API con comportamento dipendente e quindi annullare la registrazione in modo che lo stato originale del thread venga mantenuto.

Poiché GetPointerDevices e GetCurrentInputMessageSource non accettano una finestra nei relativi parametri, il loro comportamento cambierà solo quando l'intero thread è in grado di usare il touchpad per evitare problemi di compatibilità quando si acconsente esplicitamente a un thread altrimenti inconsapevole.

Importante

Il comportamento per alcune impostazioni del touchpad del sistema viene implementato all'interno delle API Del contesto di interazione per l'esecuzione del riconoscimento dei movimenti sull'input del puntatore. Questi includono se la panoramica e/o lo zoom sono stati disabilitati in modo esplicito e la direzione del movimento del contenuto per la panoramica. Anche gli aggiornamenti futuri del sistema possono introdurre altre funzionalità. È quindi consigliabile usare le API Del contesto di interazione per il riconoscimento dei movimenti durante la registrazione come touchpad e la ricezione diretta dell'input del puntatore, in modo che l'utente sperimenta un comportamento uniforme in tutte le applicazioni. Se non si usano queste API, è importante eseguire query sulle impostazioni del touchpad dell'utente e rispettare quelle correlate al riconoscimento dei movimenti, se applicabile all'esperienza utente dell'applicazione. L'introduzione delle nuove impostazioni di sistema richiederebbe tuttavia aggiornamenti dell'applicazione. Se si usano le API contesto di interazione, queste nuove impostazioni funzioneranno automaticamente come previsto.

In particolare, è consigliabile usare il nuovo ProcessPointerFramesInteractionContext2 o BufferPointerPacketsInteractionContext2 , in quanto forniscono il payload completo del puntatore al contesto di interazione, anziché solo il POINTER_INFO. I miglioramenti futuri al riconoscimento dei movimenti possono prendere in considerazione queste informazioni. La classe WinRT PhysicalGestureRecognizer usa internamente queste API.

Requisiti

Requisito Valore
Client minimo supportato Windows 11 [solo app desktop]
Server minimo supportato Nessuna supportata
Intestazione Winuser.h (includere Windows.h)
Libreria User32.lib
DLL User32.dll (ordinale 2689 per RegisterTouchpadWindow, ordinale 2688 per RegisterTouchpadCapableThread)

Vedere anche