IRawElementProviderFragment::Navigate-Methode (uiautomationcore.h)

Ruft das Microsoft-Benutzeroberflächenautomatisierungs-Element in einer bestimmten Richtung innerhalb der Benutzeroberflächenautomatisierungs-Struktur ab.

Syntax

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

Parameter

[in] direction

Typ: NavigateDirection-

Die Richtung, in der navigiert werden soll.

[out, retval] pRetVal

Typ: IRawElementProviderFragment**

Empfängt einen Zeiger auf den Anbieter des Benutzeroberflächenautomatisierungs-Elements in der angegebenen Richtung oder NULL-, wenn kein Element in dieser Richtung vorhanden ist. Dieser Parameter wird nicht initialisiert übergeben.

Rückgabewert

Typ: HRESULT-

Wenn diese Methode erfolgreich ist, wird S_OKzurückgegeben. Andernfalls wird ein HRESULT- Fehlercode zurückgegeben.

Bemerkungen

Die Implementierungen dieser Methode definieren die Struktur der Benutzeroberflächenautomatisierungs-Struktur.

Die Navigation muss nach oben bis zum übergeordneten Element, nach unten zum ersten und letzten untergeordneten Element und nach unten zum nächsten und vorherigen gleichgeordneten Element unterstützt werden, sofern zutreffend.

Jeder untergeordnete Knoten hat nur ein übergeordnetes Element und muss in der Kette der gleichgeordneten Elemente platziert werden, die von der übergeordneten Person durch NavigateDirection_FirstChild und NavigateDirection_LastChilderreicht werden.

Beziehungen zwischen gleichgeordneten Gleichgeordneten müssen in beide Richtungen identisch sein: Wenn A das vorherige gleichgeordnete Gleichgeordnete ist (NavigateDirection_PreviousSibling), dann ist B das nächste gleichgeordnete Gleichgeordnete (NavigateDirection_NextSibling). Ein erstes Kind (NavigateDirection_FirstChild) hat kein vorheriges gleichgeordnetes Element, und ein letztes Kind (NavigateDirection_LastChild) hat kein nächstes gleichgeordnetes Element.

Fragmentwurzeln ermöglichen keine Navigation zu einem übergeordneten element oder gleichgeordneten Element. Die Navigation zwischen Fragmentwurzeln wird von den Standardfensteranbietern behandelt. Elemente in Fragmenten müssen nur zu anderen Elementen innerhalb dieses Fragments navigieren.

Beispiele

Das folgende Beispiel zeigt eine Implementierung für einen Listenelementanbieter. Die Membervariablen für die übergeordneten, vorherigen gleichgeordneten und nächsten gleichgeordneten Anbieter wurden beim Erstellen der Liste initialisiert.

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

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP [Desktop-Apps | UWP-Apps]
mindestens unterstützte Server- Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform- Fenster
Header- uiautomationcore.h (include UIAutomation.h)

Siehe auch

IRawElementProviderFragment