Condividi tramite


Come abilitare lo spostamento 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 una voce di elenco in un controllo elenco personalizzato. L'elemento padre è il controllo elenco personalizzato, e gli elementi fratelli sono altri elementi nella lista. 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;
}              

concettuale

Implementazione di un provider di automazione interfaccia utente Server-Side

Argomenti per i provider di automazione dell'interfaccia utente How-To