Condividi tramite


Metodo IRawElementProviderWindowlessSite::GetAdjacentFragment (uiautomationcore.h)

Recupera un puntatore di frammento per un frammento adiacente al controllo Microsoft ActiveX senza finestra di proprietà di questo sito di controllo.

Sintassi

HRESULT GetAdjacentFragment(
  [in]          NavigateDirection           direction,
  [out, retval] IRawElementProviderFragment **ppParent
);

Parametri

[in] direction

Tipo: NavigateDirection

Valore che indica il frammento adiacente da recuperare (padre, elemento di pari livello successivo, elemento di pari livello precedente e così via).

[out, retval] ppParent

Tipo: IRawElementProviderFragment**

Riceve il frammento adiacente.

Valore restituito

Tipo: HRESULT

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT. Il valore restituito è E_INVALIDARG se la direzione è NavigateDirection_FirstChild o NavigateDirection_LastChild, che non sono valide per questo metodo. Se nella direzione richiesta non è presente alcun frammento adiacente, il metodo restituisce S_OK e imposta ppRetVal su NULL.

Osservazioni

Per restituire l'elemento padre del frammento, un oggetto che implementa l'interfaccia IRawElementProviderFragment deve essere in grado di implementare il metodo Navigate . L'implementazione di Navigate è difficile per un controllo ActiveX senza finestra perché il controllo potrebbe non essere in grado di determinarne la posizione nell'albero accessibile dell'oggetto padre. Il metodo GetAdjacentFragment consente al controllo ActiveX senza finestra di eseguire query sul relativo sito per il frammento adiacente e quindi restituire tale frammento al client che ha chiamato Navigate.

Un provider chiama in genere questo metodo come parte della gestione del metodo IRawElementProviderFragment::Navigate.

Esempi

Nell'esempio di codice C++ seguente viene illustrato come implementare il metodo GetAdjacentFragment .

IFACEMETHODIMP CProviderWindowlessSite::GetAdjacentFragment(
        enum NavigateDirection direction, IRawElementProviderFragment **ppFragment)   
{
    if (ppFragment == NULL)
    {
        return E_INVALIDARG;
    }
    
    *ppFragment = NULL;
    HRESULT hr = S_OK;

    switch (direction)
    {
        case NavigateDirection_Parent:
            {  
                IRawElementProviderSimple *pSimple = NULL;

                // Call an application-defined function to retrieve the
                // parent provider interface.
                hr = GetParentProvider(&pSimple);  
                if (SUCCEEDED(hr))  
                {  
                    // Get the parent's IRawElementProviderFragment interface.
                    hr = pSimple->QueryInterface(IID_PPV_ARGS(ppFragment));  
                    pSimple->Release();  
                } 
            }  
            break;  
  
        case NavigateDirection_FirstChild:
        case NavigateDirection_LastChild:
            hr = E_INVALIDARG;
            break;

        // Ignore NavigateDirection_NextSibling and NavigateDirection_PreviousSibling
        // because there are no adjacent fragments.
        default:  
            break;  
    }  
  
    return hr;  
}   

Fabbisogno

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

Vedere anche

IRawElementProviderWindowlessSite