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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour