Compartir a través de


Función AccNotifyTouchInteraction (oleacc.h)

Permite que una aplicación de tecnología de asistencia (AT) notifique al sistema que interactúa con la interfaz de usuario a través de una API de Automatización de Windows (como Microsoft Automatización de la interfaz de usuario) como resultado de un gesto táctil del usuario. Esto permite que la tecnología de asistencia notifique a la aplicación de destino y al sistema que el usuario está interactuando con la función táctil.

Sintaxis

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

Parámetros

[in] hwndApp

Ventana que pertenece al proceso AT que llama a AccNotifyTouchInteraction.

[in] hwndTarget

La ventana más cercana del elemento de automatización que el AT tiene como destino.

[in] ptTarget

Punto central del elemento de automatización (o un punto en el rectángulo delimitador del elemento).

Valor devuelto

Si se ejecuta correctamente, devuelve S_OK.

Si no se ejecuta correctamente, devuelve un código de error COM estándar.

Comentarios

Esta función requiere que el proceso de llamada tenga UIAccess o privilegios superiores. Si el autor de la llamada no tiene los privilegios necesarios, se produce un error en la llamada a AccNotifyTouchInteraction y devuelve E_ACCESSDENIED. Para obtener más información, vea Consideraciones de seguridad para tecnologías de asistencia y /MANIFESTUAC (inserta información de UAC en el manifiesto).

Cuando un AT consume datos táctiles (por ejemplo, al usar la función RegisterPointerInputTarget ), el shell y las aplicaciones con las que el AT interactúa a través de la API de Automatización de Windows no son conscientes de que el usuario interactúa a través de la función táctil. Para que el sistema exponga la funcionalidad táctil al usuario, at debe usar AccNotifyTouchInteraction para notificar al sistema que realiza la interacción en respuesta a la entrada táctil del usuario.

Ejemplos

En este ejemplo de código se muestra cómo llamar a la función 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;
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado oleacc.h
Library Oleacc.lib
Archivo DLL Oleacc.dll

Consulte también

AccSetRunningUtilityState

RegisterPointerInputTarget

AnularregisterPointerInputTarget