Função AccNotifyTouchInteraction (oleacc.h)
Permite que um aplicativo at (tecnologia adaptativa) notifique o sistema de que ele está interagindo com a interface do usuário por meio de uma API de Automação do Windows (como o Microsoft Automação da Interface do Usuário) como resultado de um gesto de toque do usuário. Isso permite que a tecnologia adaptativa notifique o aplicativo de destino e o sistema de que o usuário está interagindo com o toque.
Sintaxe
HRESULT AccNotifyTouchInteraction(
[in] HWND hwndApp,
[in] HWND hwndTarget,
[in] POINT ptTarget
);
Parâmetros
[in] hwndApp
Uma janela que pertence ao processo AT que está chamando AccNotifyTouchInteraction.
[in] hwndTarget
A janela mais próxima do elemento de automação que o AT está direcionando.
[in] ptTarget
O ponto central do elemento de automação (ou um ponto no retângulo delimitador do elemento).
Retornar valor
Se for bem-sucedido, retornará S_OK.
Se não for bem-sucedido, retornará um código de erro COM padrão.
Comentários
Essa função requer que o processo de chamada tenha UIAccess ou privilégios mais altos. Se o chamador não tiver os privilégios necessários, a chamada para AccNotifyTouchInteraction falhará e retornará E_ACCESSDENIED. Para obter mais informações, consulte Considerações de segurança para tecnologias adaptativas e /MANIFESTUAC (insira informações do UAC no manifesto).
Quando um AT está consumindo dados de toque (como ao usar a função RegisterPointerInputTarget ), o shell e os aplicativos com os quais o AT interage por meio da API de Automação do Windows não estão cientes de que o usuário está interagindo por toque. Para que o sistema exponha a funcionalidade relacionada ao toque ao usuário, o AT deve usar AccNotifyTouchInteraction para notificar o sistema de que está executando a interação em resposta à entrada por toque do usuário.
Exemplos
Este exemplo de código mostra como chamar a função 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 | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2012 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | oleacc.h |
Biblioteca | Oleacc.lib |
DLL | Oleacc.dll |