Condividi tramite


Metodo IRawElementProviderFragment::Navigate (uiautomationcore.h)

Recupera l'elemento automazione interfaccia utente Microsoft in una direzione specificata all'interno dell'albero di automazione interfaccia utente.

Sintassi

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

Parametri

[in] direction

Tipo: NavigateDirection

Direzione in cui spostarsi.

[out, retval] pRetVal

Tipo: IRawElementProviderFragment**

Riceve un puntatore al provider dell'elemento di 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.

Osservazioni

Le implementazioni del server di automazione interfaccia utente di questo metodo definiscono la struttura dell'albero di 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 elementi di pari livello devono essere identiche in entrambe le direzioni: se A è l'elemento di pari livello precedente di B (NavigateDirection_PreviousSibling), B è il successivo 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.

Esempi

Nell'esempio seguente viene illustrata un'implementazione per un provider di elementi di elenco. Le variabili membro per il padre, gli elementi di pari livello precedenti e i provider di pari livello successivi sono stati inizializzati 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;
}              

Fabbisogno

Requisito Valore
client minimo supportato Windows XP [app desktop | App UWP]
server minimo supportato Windows Server 2003 [app desktop | App UWP]
piattaforma di destinazione Finestre
intestazione uiautomationcore.h (include UIAutomation.h)

Vedere anche

IRawElementProviderFragment