Share via


Méthode IRawElementProviderFragment::Navigate (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(
                NavigateDirection           direction,
  [out, retval] IRawElementProviderFragment **pRetVal
);

Paramètres

direction

[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’y a aucun élément dans cette direction. Ce paramètre est passé sans être initialisé.

Valeur retournée

Type : HRESULT

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

Remarques

Les implémentations de cette méthode par le serveur UI Automation 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 premier et le dernier enfant, et latéralement vers les frères et sœurs 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 et sœurs 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 de B (NavigateDirection_PreviousSibling), B est le frère suivant 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 fragments 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 au sein 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;
}              

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête uiautomationcore.h (incluez UIAutomation.h)

Voir aussi

IRawElementProviderFragment