Compartilhar via


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

Confira também

AccSetRunningUtilityState

RegisterPointerInputTarget

UnregisterPointerInputTarget