Fonctions GetPointerTouchpadInfo

[Certaines informations concernent le produit préversion qui peut être sensiblement modifié avant sa publication commerciale. Microsoft n’offre aucune garantie, expresse ou implicite, en ce qui concerne les informations fournies ici.]

Récupère les informations de pointeur spécifiques au pavé tactile. Quatre variantes sont disponibles selon que vous avez besoin d’un pointeur unique ou d’une trame entière, et que vous ayez besoin de l’état actuel ou de l’historique complet.

Syntaxe

WINUSERAPI
BOOL
WINAPI
GetPointerTouchpadInfo(
    _In_ UINT32 pointerId,
    _Out_writes_(1) POINTER_TOUCH_INFO *touchpadInfo);

WINUSERAPI
BOOL
WINAPI
GetPointerTouchpadInfoHistory(
    _In_ UINT32 pointerId,
    _Inout_ UINT32 *entriesCount,
    _Out_writes_opt_(*entriesCount) POINTER_TOUCH_INFO *touchpadInfo);

WINUSERAPI
BOOL
WINAPI
GetPointerFrameTouchpadInfo(
    _In_ UINT32 pointerId,
    _Inout_ UINT32 *pointerCount,
    _Out_writes_opt_(*pointerCount) POINTER_TOUCH_INFO *touchpadInfo);

WINUSERAPI
BOOL
WINAPI
GetPointerFrameTouchpadInfoHistory(
    _In_ UINT32 pointerId,
    _Inout_ UINT32 *entriesCount,
    _Inout_ UINT32 *pointerCount,
    _Out_writes_opt_(*entriesCount * *pointerCount) POINTER_TOUCH_INFO *touchpadInfo);

Paramètres

pointerId

Identificateur du pointeur pour lequel récupérer des informations.

entriesCount (variantes d’historique)

Pointeur vers une valeur qui spécifie le nombre d’entrées dans la mémoire tampon. Lors de l’entrée, spécifie la taille de la mémoire tampon. En sortie, reçoit le nombre d’entrées écrites.

pointerCount (variantes frame)

Pointeur vers une valeur qui spécifie le nombre de pointeurs dans le cadre. Lors de l’entrée, spécifie la taille de la mémoire tampon. En sortie, reçoit le nombre de pointeurs écrits.

touchpadInfo

Pointeur vers une structure POINTER_TOUCH_INFO qui reçoit les informations du pavé tactile. Peut être NULL pour interroger les tailles de mémoire tampon requises.

Valeur renvoyée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Remarques

Récupère l’entrée de pointeur tactile demandée associée à l’ID de pointeur spécifié. Le « frame » inclut tous les contacts actuellement actifs remis à la même cible que l’entrée associée à l’ID de pointeur. L'« historique » inclut toutes les entrées qui ont été coalescées avec l’entrée actuelle en raison de la cible qui ne met pas en file d’attente l’entrée précédente rapidement.

L’entrée de pointeur est retournée dans une structure POINTER_TOUCH_INFO , tout comme les équivalents tactiles de ces API, en raison des champs de pointeur étendus identiques pour l’entrée tactile et tactile.

Ces fonctions ne doivent être appelées que lors du traitement des messages WM_POINTER pour l’entrée du pavé tactile (après l’inscription en tant que pavé tactile via RegisterTouchpadCapableWindow ou RegisterTouchpadCapableThread).

L’entrée de pointeur pour les pavés tactiles présente des différences fonctionnelles par rapport à d’autres types d’appareils de pointeur :

  • Les champs ptPixelLocation et ptPixelLocationRaw sont identiques et contiennent la position du pointeur de la souris au moment où le mouvement a commencé et ne changent pas pendant la durée du mouvement.
  • Les champs ptHimetricLocation et ptHimetricLocationRaw sont identiques et contiennent la position du contact par rapport à l’appareil.
  • GetPointerDeviceRects retourne le bureau virtuel pour le rect de l’écran et les dimensions du pavé tactile pour l’appareil. Bien que les positions ci-dessus soient situées dans les limites de ces rects, il n’existe aucune relation entre les deux. Pour les autres types d’appareils pointeurs, les positions respectives se trouvent au même emplacement relatif dans leurs rects correspondants, mais ce n’est pas le cas pour l’entrée du pavé tactile.
  • Lors de la réception initiale d’un flux d’entrée, il peut y avoir un écart spatial et temporel significatif pour chaque contact entre les premières et deuxième images d’entrée. Alors que le système effectue toujours l’ambiguïté sur l’entrée du pavé tactile, les images d’entrée sont ignorées. Si le système détermine qu’un mouvement se produit, il synthétise une image antérieure pour l’entrée POINTER_FLAG_DOWN des contacts et la remet en premier, afin que la cible d’entrée puisse utiliser les informations lors de la détermination si l’entrée a atteint ses seuils de reconnaissance de mouvement. Si l’entrée est utilisée pour la manipulation du contenu, veillez à éviter le « saut » de contenu au début, ce qui peut se produire si le mouvement spatial des contacts est directement appliqué en tant que manipulation de contenu à mesure que l’entrée arrive.
  • Si l’entrée du pointeur est transmise aux API contexte d’interaction pour la reconnaissance des mouvements :
    • ProcessPointerFramesInteractionContext2 et BufferPointerPacketsInteractionContext2 doivent être utilisés lors de l’alimentation de l’entrée dans le contexte d’interaction.
    • Seule la sortie du mouvement de manipulation peut se produire (les appuis et les conservations ne peuvent pas être reconnus, car le système génère uniquement l’entrée WM_POINTER du pavé tactile une fois que ces mouvements ne peuvent plus se produire).
    • Si le contexte d’interaction est configuré pour retourner sa sortie dans les coordonnées de l’écran, la sortie est mise à l’échelle par le facteur d’échelle de l’affichage contenant le pointeur de la souris, afin que le même mouvement sur le pavé tactile entraîne la même sortie de mouvement efficace, quelle que soit l’échelle d’affichage.
    • S’il est configuré pour la sortie himetric, le même mouvement produit les mêmes résultats, quel que soit l’affichage du pointeur de la souris. La sortie est mise à l’échelle en fonction de la vitesse de l’entrée afin que le mouvement des doigts plus rapide entraîne des grandeurs de sortie plus importantes pour la même distance physique.
    • La sortie évite de « sauter » comme décrit ci-dessus et peut être directement appliquée au contenu pour la manipulation.

Exigences

Prérequis Valeur
Client minimum requis Windows 11 [applications de bureau uniquement]
Serveur minimum pris en charge Aucun pris en charge
Header Winuser.h (include Windows.h)
Bibliothèque User32.lib
DLL User32.dll (ordinal 2691 pour GetPointerTouchpadInfo, ordinal 2692 pour GetPointerTouchpadInfoHistory, ordinal 2693 pour GetPointerFrameTouchpadInfo, ordinal 2694 pour GetPointerFrameTouchpadInfoHistory)

Voir également