Método IRawElementProviderFragment::Navigate (uiautomationcore.h)

Recupera o elemento de Automação da Interface do Usuário da Microsoft em uma direção especificada na árvore de Automação da Interface do Usuário.

Sintaxe

HRESULT Navigate(
                NavigateDirection           direction,
  [out, retval] IRawElementProviderFragment **pRetVal
);

Parâmetros

direction

[out, retval] pRetVal

Tipo: IRawElementProviderFragment**

Recebe um ponteiro para o provedor do elemento de Automação da Interface do Usuário na direção especificada ou NULL se não houver nenhum elemento nessa direção. Este parâmetro é passado não inicializado.

Valor retornado

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

As implementações do servidor de Automação da Interface do Usuário desse método definem a estrutura da árvore de Automação da Interface do Usuário.

A navegação deve ter suporte para cima para o pai, para baixo para o primeiro e o último filho e lateralmente para os irmãos seguintes e anteriores, conforme aplicável.

Cada nó filho tem apenas um pai e deve ser colocado na cadeia de irmãos alcançados do pai por NavigateDirection_FirstChild e NavigateDirection_LastChild.

As relações entre irmãos devem ser idênticas em ambas as direções: se A for o irmão anterior de B (NavigateDirection_PreviousSibling), B será o próximo irmão de A (NavigateDirection_NextSibling). Um primeiro filho (NavigateDirection_FirstChild) não tem irmão anterior, e um último filho (NavigateDirection_LastChild) não tem outro irmão.

As raízes de fragmento não permitem a navegação para um pai ou irmãos; A navegação entre raízes de fragmento é tratada pelos provedores de janela padrão. Os elementos em fragmentos devem navegar apenas para outros elementos dentro desse fragmento.

Exemplos

O exemplo a seguir mostra uma implementação para um provedor de itens de lista. As variáveis de membro para os provedores pai, irmão anterior e próximo irmão foram inicializadas quando a lista foi criada.

HRESULT STDMETHODCALLTYPE ListItemProvider::Navigate(NavigateDirection direction, IRawElementProviderFragment ** pRetVal)
{
    if (pRetVal == NULL) 
    {
        return E_INVALIDARG;
    }

    IRawElementProviderFragment* pFrag = NULL;
    switch(direction)
    {
        case NavigateDirection_Parent:
            pFrag = (IRawElementProviderFragment*)m_parentProvider;       
            break;

        case NavigateDirection_NextSibling:
            pFrag = (IRawElementProviderFragment*)m_nextSiblingProvider;
            break;

        case NavigateDirection_PreviousSibling:  
            pFrag = (IRawElementProviderFragment*)m_previousSiblingProvider;
            break;
    }
    *pRetVal = pFrag;
    if (pFrag != NULL) 
    {
        pFrag->AddRef();
    }
    return S_OK;
}              

Requisitos

   
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho uiautomationcore.h (inclua UIAutomation.h)

Confira também

Irawelementproviderfragment