Partager via


IRawElementProviderFragment ::Navigate, méthode (uiautomationcore.h)

Récupère l’élément Microsoft UI Automation dans une direction spécifiée dans l’arborescence UI Automation.

Syntaxe

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

Paramètres

[in] direction

Type : NavigateDirection

Direction dans laquelle naviguer.

[out, retval] pRetVal

Type : IRawElementProviderFragment**

Reçoit un pointeur vers le fournisseur de l’élément UI Automation dans la direction spécifiée, ou NULL s’il n’existe aucun élément dans cette direction. Ce paramètre est passé non initialisé.

Valeur de retour

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un HRESULT code d’erreur.

Remarques

Les implémentations du serveur UI Automation de cette méthode définissent la structure de l’arborescence UI Automation.

La navigation doit être prise en charge vers le haut jusqu’au parent, vers le bas vers le bas jusqu’au premier et au dernier enfant, et ultérieurement aux frères suivants et précédents, le cas échéant.

Chaque nœud enfant n’a qu’un seul parent et doit être placé dans la chaîne de frères atteints à partir du parent par NavigateDirection_FirstChild et NavigateDirection_LastChild.

Les relations entre frères et sœurs doivent être identiques dans les deux sens : si A est le frère précédent (NavigateDirection_PreviousSibling), alors B est le prochain frère de A (NavigateDirection_NextSibling). Un premier enfant (NavigateDirection_FirstChild) n’a pas de frère précédent, et un dernier enfant (NavigateDirection_LastChild) n’a pas de frère suivant.

Les racines de fragment n’activent pas la navigation vers un parent ou un frère ; la navigation entre les racines de fragments est gérée par les fournisseurs de fenêtres par défaut. Les éléments dans les fragments doivent naviguer uniquement vers d’autres éléments de ce fragment.

Exemples

L’exemple suivant montre une implémentation pour un fournisseur d’éléments de liste. Les variables membres du parent, du frère précédent et des fournisseurs frères suivants ont été initialisées lors de la création de la liste.

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;
}              

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows Server 2003 [applications de bureau | Applications UWP]
plateforme cible Windows
d’en-tête uiautomationcore.h (include UIAutomation.h)

Voir aussi

IRawElementProviderFragment