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 |