Share via


Metodo IRawElementProviderFragment::Navigate (uiautomationcore.h)

Recupera l'elemento microsoft Automazione interfaccia utente in una direzione specificata all'interno dell'albero Automazione interfaccia utente.

Sintassi

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

Parametri

direction

[out, retval] pRetVal

Tipo: IRawElementProviderFragment**

Riceve un puntatore al provider dell'elemento Automazione interfaccia utente nella direzione specificata oppure NULL se non è presente alcun elemento in tale direzione. Questo parametro viene passato non inizializzato.

Valore restituito

Tipo: HRESULT

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Le implementazioni del server Automazione interfaccia utente di questo metodo definiscono la struttura dell'albero Automazione interfaccia utente.

Lo spostamento deve essere supportato verso l'alto verso l'alto, verso il basso verso il primo e l'ultimo figlio e successivamente verso i fratelli successivi e precedenti, come applicabile.

Ogni nodo figlio ha un solo elemento padre e deve essere posizionato nella catena di elementi di pari livello raggiunti dall'elemento padre da NavigateDirection_FirstChild e NavigateDirection_LastChild.

Le relazioni tra gli elementi di pari livello devono essere identiche in entrambe le direzioni: se A è l'elemento di pari livello precedente di A (NavigateDirection_PreviousSibling), B è il successivo elemento di pari livello A (NavigateDirection_NextSibling). Un primo figlio (NavigateDirection_FirstChild) non ha un elemento di pari livello precedente e un ultimo figlio (NavigateDirection_LastChild) non ha un elemento di pari livello successivo.

Le radici del frammento non consentono la navigazione a un elemento padre o a elementi di pari livello; la navigazione tra le radici del frammento viene gestita dai provider di finestre predefiniti. Gli elementi nei frammenti devono passare solo ad altri elementi all'interno di tale frammento.

Esempio

Nell'esempio seguente viene illustrata un'implementazione per un provider di elementi di elenco. Le variabili membro per i provider padre, di pari livello precedente e di pari livello successivi sono state inizializzate al momento della creazione dell'elenco.

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

Requisiti

   
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione uiautomationcore.h (include UIAutomation.h)

Vedi anche

IRawElementProviderFragment