Funzione AccNotifyTouchInteraction (oleacc.h)

Consente a un'applicazione di assistive technology (AT) di notificare al sistema che interagisce con l'interfaccia utente tramite un'API di Automazione di Windows (ad esempio Microsoft Automazione interfaccia utente) in seguito a un movimento di tocco dell'utente. Ciò consente alla tecnologia assistive di notificare all'applicazione di destinazione e al sistema che l'utente interagisce con il tocco.

Sintassi

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

Parametri

[in] hwndApp

Finestra appartenente al processo AT che chiama AccNotifyTouchInteraction.

[in] hwndTarget

Finestra più vicina dell'elemento di automazione di destinazione di AT.

[in] ptTarget

Punto centrale dell'elemento di automazione (o un punto nel rettangolo di delimitazione dell'elemento).

Valore restituito

Se ha esito positivo, restituisce S_OK.

In caso contrario, restituisce un codice di errore COM standard.

Commenti

Questa funzione richiede che il processo chiamante disponga di privilegi UIAccess o superiori. Se il chiamante non dispone dei privilegi necessari, la chiamata a AccNotifyTouchInteraction ha esito negativo e restituisce E_ACCESSDENIED. Per altre informazioni, vedere Considerazioni sulla sicurezza per Assistive Technologies e /MANIFESTUAC (incorpora informazioni sull'account utente nel manifesto).

Quando un at utilizza dati di tocco, ad esempio quando si usa la funzione RegisterPointerInputTarget , la shell e le applicazioni con cui AT interagisce tramite l'API di automazione di Windows non sono consapevoli che l'utente interagisce tramite tocco. Affinché il sistema esponga funzionalità correlate al tocco all'utente, at deve usare AccNotifyTouchInteraction per notificare al sistema che sta eseguendo l'interazione in risposta all'input tocco dell'utente.

Esempio

Questo esempio di codice illustra come chiamare la funzione 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;
}

Requisiti

Requisito Valore
Client minimo supportato Windows 8 [solo app desktop]
Server minimo supportato Windows Server 2012 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione oleacc.h
Libreria Oleacc.lib
DLL Oleacc.dll

Vedi anche

AccSetRunningUtilityState

RegisterPointerInputTarget

UnregisterPointerInputTarget