Compartilhar via


Método IRawElementProviderWindowlessSite::GetAdjacentFragment (uiautomationcore.h)

Recupera um ponteiro de fragmento para um fragmento adjacente ao controle Microsoft ActiveX sem janelas pertencente a este site de controle.

Sintaxe

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

Parâmetros

direction

[out, retval] ppParent

Tipo: IRawElementProviderFragment**

Recebe o fragmento adjacente.

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT. O valor retornado será E_INVALIDARG se a direção for NavigateDirection_FirstChild ou NavigateDirection_LastChild, que não são válidas para esse método. Se não houver fragmento adjacente na direção solicitada, o método retornará S_OK e definirá ppRetVal como NULL.

Comentários

Para retornar o pai do fragmento, um objeto que implementa a interface IRawElementProviderFragment deve ser capaz de implementar o método Navigate . A implementação de Navigate é difícil para um controle ActiveX sem janelas porque o controle pode não conseguir determinar sua localização na árvore acessível do objeto pai. O método GetAdjacentFragment permite que o controle ActiveX sem janelas consulte seu site para o fragmento adjacente e, em seguida, retorne esse fragmento para o cliente que chamou Navigate.

Um provedor normalmente chama esse método como parte do tratamento do método IRawElementProviderFragment::Navigate .

Exemplos

O exemplo de código C++ a seguir mostra como implementar o método 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;  
}   

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho uiautomationcore.h (include UIAutomation.h)

Confira também

IRawElementProviderWindowlessSite