Come abilitare la navigazione in un provider di frammenti di Automazione interfaccia utente

Questo argomento contiene codice di esempio che illustra come abilitare la navigazione in un provider di Automazione interfaccia utente Microsoft per un elemento in un frammento.

Il codice di esempio seguente implementa il metodo IRawElementProviderFragment::Navigate per un elemento di elenco in un controllo elenco personalizzato. L'elemento padre è il controllo elenco personalizzato e gli elementi di pari livello sono altri elementi dell'elenco. Il metodo imposta il parametro pRetVal su NULL se non è presente alcun elemento nella direzione specificata.

// Implementation of IRawElementProviderFragment::Navigate.
// Enables UI Automation to locate the element in the tree.
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;
}              

Informazioni concettuali

Implementazione di un provider di Server-Side Automazione interfaccia utente

Argomenti di procedura per i provider di Automazione interfaccia utente