Método IRawElementProviderFragment::Navigate (uiautomationcore.h)
Recupera el elemento Microsoft UI Automation en una dirección especificada dentro del árbol de automatización de la interfaz de usuario.
Sintaxis
HRESULT Navigate(
NavigateDirection direction,
[out, retval] IRawElementProviderFragment **pRetVal
);
Parámetros
direction
[out, retval] pRetVal
Tipo: IRawElementProviderFragment**
Recibe un puntero al proveedor del elemento ui Automation en la dirección especificada, o NULL si no hay ningún elemento en esa dirección. Este parámetro se pasa sin inicializar.
Valor devuelto
Tipo: HRESULT
Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.
Comentarios
Las implementaciones del servidor de Automatización de la interfaz de usuario de este método definen la estructura del árbol de automatización de la interfaz de usuario.
La navegación debe admitirse hacia arriba hasta el elemento primario, hacia abajo hasta el primer y último elemento secundario, y lateralmente a los elementos del mismo nivel siguientes y anteriores, según corresponda.
Cada nodo secundario tiene solo un elemento primario y debe colocarse en la cadena de elementos del mismo nivel alcanzados desde el elemento primario por NavigateDirection_FirstChild y NavigateDirection_LastChild.
Las relaciones entre los hermanos deben ser idénticas en ambas direcciones: si A es el mismo nivel anterior de A (NavigateDirection_PreviousSibling), B es el siguiente relacionado de A (NavigateDirection_NextSibling). Un primer hijo (NavigateDirection_FirstChild) no tiene ningún elemento relacionado anterior y un último elemento secundario (NavigateDirection_LastChild) no tiene el siguiente elemento del mismo nivel.
Las raíces de fragmentos no permiten la navegación a un elemento primario o relacionado; La navegación entre raíces de fragmentos se controla mediante los proveedores de ventanas predeterminados. Los elementos de los fragmentos solo deben navegar a otros elementos dentro de ese fragmento.
Ejemplos
En el ejemplo siguiente se muestra una implementación para un proveedor de elementos de lista. Las variables de miembro para los proveedores primarios, anteriores del mismo nivel y los siguientes proveedores del mismo nivel se inicializaron cuando se creó la lista.
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 compatible | Windows XP [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | uiautomationcore.h (incluir UIAutomation.h) |
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de