Compartir a través de


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

Recupera un puntero de fragmento para un fragmento adyacente al control Microsoft ActiveX sin ventana que pertenece a este sitio de control de control.

Sintaxis

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

Parámetros

[in] direction

Tipo: NavigateDirection

Valor que indica el fragmento adyacente que se va a recuperar (primario, siguiente relacionado, relacionado anterior, etc.).

[out, retval] ppParent

Tipo: ** IRawElementProviderFragment

Recibe el fragmento adyacente.

Valor devuelto

Tipo: HRESULT

Si este método se ejecuta correctamente, devuelve S_OK. De lo contrario, devuelve un hrESULT código de error. El valor devuelto se E_INVALIDARG si la dirección es NavigateDirection_FirstChild o NavigateDirection_LastChild, que no son válidas para este método. Si no hay ningún fragmento adyacente en la dirección solicitada, el método devuelve S_OK y establece ppRetVal en NULL.

Observaciones

Para devolver el elemento primario del fragmento, un objeto que implementa la interfaz IRawElementProviderFragment debe poder implementar el método Navigate. La implementación de Navegar es difícil para un control ActiveX sin ventanas, ya que es posible que el control no pueda determinar su ubicación en el árbol accesible del objeto primario. El método GetAdjacentFragment permite que el control ActiveX sin ventanas consulte su sitio para el fragmento adyacente y, a continuación, devuelva ese fragmento al cliente que llamó a Navigate.

Normalmente, un proveedor llama a este método como parte del control del método IRawElementProviderFragment::Navigate.

Ejemplos

En el siguiente ejemplo de código de C++ se muestra cómo implementar el 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 admitido Windows 8 [aplicaciones de escritorio | Aplicaciones para UWP]
servidor mínimo admitido Windows Server 2012 [aplicaciones de escritorio | Aplicaciones para UWP]
de la plataforma de destino de Windows
encabezado de uiautomationcore.h (include UIAutomation.h)

Consulte también

IRawElementProviderWindowlessSite