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 |