Compartir a través de


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

Recupera el elemento Automatización de la interfaz de usuario de Microsoft en una dirección especificada dentro del árbol automatización de la interfaz de usuario.

Sintaxis

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

Parámetros

[in] direction

Tipo: NavigateDirection

Dirección en la que se va a navegar.

[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 hrESULT código de error.

Observaciones

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 el ú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 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 niño (NavigateDirection_FirstChild) no tiene ningún elemento relacionado anterior y un último niño (NavigateDirection_LastChild) no tiene ningún elemento relacionado siguiente.

Las raíces de fragmentos no habilitan la navegación a un elemento primario o relacionado; los proveedores de ventanas predeterminados controlan la navegación entre raíces de fragmentos. Los elementos de los fragmentos solo deben navegar a otros elementos 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

Requisito Valor
cliente mínimo admitido Windows XP [aplicaciones de escritorio | Aplicaciones para UWP]
servidor mínimo admitido Windows Server 2003 [aplicaciones de escritorio | Aplicaciones para UWP]
de la plataforma de destino de Windows
encabezado de uiautomationcore.h (include UIAutomation.h)

Consulte también

IRawElementProviderFragment