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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de