Compartilhar via


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(
  [in]          NavigateDirection           direction,
  [out, retval] IRawElementProviderFragment **pRetVal
);

Parâmetros

[in] direction

Tipo: NavigateDirection

A direção na qual navegar.

[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. Esse parâmetro é passado sem inicialização.

Valor de retorno

Tipo: HRESULT

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

Observações

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 habilitam a navegação para um pai ou irmãos; a navegação entre raízes de fragmento é tratada pelos provedores de janela padrão. 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

Requisito Valor
de cliente com suporte mínimo Windows XP [aplicativos da área de trabalho | Aplicativos UWP]
servidor com suporte mínimo Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
da Plataforma de Destino Windows
cabeçalho uiautomationcore.h (include UIAutomation.h)

Consulte também

IRawElementProviderFragment