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(
  [in]          NavigateDirection           direction,
  [out, retval] IRawElementProviderFragment **ppParent
);

Parâmetros

[in] direction

Tipo: NavigateDirection

Um valor que indica o fragmento adjacente a ser recuperado (pai, próximo irmão, irmão anterior e assim por diante).

[out, retval] ppParent

Tipo: ** IRawElementProviderFragment

Recebe o fragmento adjacente.

Valor de retorno

Tipo: HRESULT

Se esse 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 nenhum fragmento adjacente na direção solicitada, o método retornará S_OK e definirá ppRetVal para NULL.

Observações

Para retornar o pai do fragmento, um objeto que implementa a interface IRawElementProviderFragment deve ser capaz de implementar o método Navigate. Implementar Navegar é difícil para um controle ActiveX sem janelas, pois 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 janela consulte seu site para o fragmento adjacente e, em seguida, retorne esse fragmento para o cliente que chamou Navegar.

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
de cliente com suporte mínimo Windows 8 [aplicativos da área de trabalho | Aplicativos UWP]
servidor com suporte mínimo Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP]
da Plataforma de Destino Windows
cabeçalho uiautomationcore.h (include UIAutomation.h)

Consulte também

IRawElementProviderWindowlessSite