Partager via


Fonction AccNotifyTouchInteraction (oleacc.h)

Permet à une application de technologie d’assistance (AT) d’informer le système qu’elle interagit avec l’interface utilisateur via une API Windows Automation (telle que Microsoft UI Automation) à la suite d’un geste tactile de l’utilisateur. Cela permet à la technologie d’assistance d’informer l’application cible et le système que l’utilisateur interagit avec le toucher.

Syntaxe

HRESULT AccNotifyTouchInteraction(
  [in] HWND  hwndApp,
  [in] HWND  hwndTarget,
  [in] POINT ptTarget
);

Paramètres

[in] hwndApp

Fenêtre qui appartient au processus AT qui appelle AccNotifyTouchInteraction.

[in] hwndTarget

Fenêtre la plus proche de l’élément automation que l’AT cible.

[in] ptTarget

Point central de l’élément automation (ou point dans le rectangle englobant de l’élément).

Valeur retournée

En cas de réussite, retourne S_OK.

En cas de non-réussite, retourne un code d’erreur COM standard.

Remarques

Cette fonction nécessite que le processus appelant dispose de privilèges UIAccess ou supérieurs. Si l’appelant ne dispose pas des privilèges requis, l’appel à AccNotifyTouchInteraction échoue et retourne E_ACCESSDENIED. Pour plus d’informations, consultez Considérations relatives à la sécurité pour les technologies d’assistance et /MANIFESTUAC (Incorpore les informations UAC dans le manifeste).

Lorsqu’un AT consomme des données tactiles (par exemple, lors de l’utilisation de la fonction RegisterPointerInputTarget ), l’interpréteur de commandes et les applications avec lesquelles l’AT interagit via l’API Windows Automation ne savent pas que l’utilisateur interagit par le biais de l’interaction tactile. Pour que le système expose des fonctionnalités tactiles à l’utilisateur, l’at doit utiliser AccNotifyTouchInteraction pour informer le système qu’il effectue l’interaction en réponse à l’entrée tactile de l’utilisateur.

Exemples

Cet exemple de code montre comment appeler la fonction AccNotifyTouchInteraction .

// pTargetElement is the element being interacted with by the user, hwndApp 
// represents an HWND owned by the AT.
HRESULT PerformTouchBasedInteraction(IUIAutomationElement *pTargetElement, 
        HWND hwndApp)
{
    HRESULT hr = S_OK;

    // Set the focus to the element and then notify the system that the 
    // interaction is occurring due to a touch gesture. This would also apply 
    // to pattern-based interactions (such as calls to 
    // IUIAutomationInvokePattern::Invoke)
    hr = pTargetElement->SetFocus();
    if (SUCCEEDED(hr))
    {
        HWND hwndTarget;
        POINT ptTarget;
        BOOL fGotClickablePoint;

        // If the current element does not have a native window handle, an 
        // alternate method (such as walking up the parent chain) is required 
        // to get the nearest valid HWND.
        hr = pTargetElement->get_CurrentNativeWindowHandle((UIA_HWND *)(&hwndTarget));
        if (SUCCEEDED(hr))
        {
            // If the provider doesn't return a clickable point, an alternate 
            // method (such as using the bounding rectangle) will be required 
            // to get the center point of the current element.
            hr = pTargetElement->GetClickablePoint(&ptTarget, &fGotClickablePoint);
        }

        if (SUCCEEDED(hr) && fGotClickablePoint)
        {
            hr = AccNotifyTouchInteraction(hwndApp, hwndTarget, ptTarget);
        }
    }

    return hr;
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau uniquement]
Plateforme cible Windows
En-tête oleacc.h
Bibliothèque Oleacc.lib
DLL Oleacc.dll

Voir aussi

AccSetRunningUtilityState

RegisterPointerInputTarget

DésinscrirePointerInputTarget