IRawElementProviderWindowlessSite::GetAdjacentFragment 方法 (uiautomationcore.h)

检索与此控件站点拥有的无窗口 Microsoft ActiveX 控件相邻的片段的片段指针。

语法

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

参数

direction

[out, retval] ppParent

类型: IRawElementProviderFragment**

接收相邻的片段。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。 如果方向NavigateDirection_FirstChild或NavigateDirection_LastChild,则返回值E_INVALIDARG,这对此方法无效。 如果请求的方向中没有相邻片段,该方法将返回S_OK并将 ppRetVal 设置为 NULL

注解

若要返回片段的父级,实现 IRawElementProviderFragment 接口的对象必须能够实现 Navigate 方法。 对于无窗口 ActiveX 控件来说,实现 Navigate 很困难,因为该控件可能无法确定它在父对象的可访问树中的位置。 GetAdjacentFragment 方法允许无窗口 ActiveX 控件在其站点中查询相邻片段,然后将该片段返回到调用 Navigate 的客户端。

提供程序通常在处理 IRawElementProviderFragment::Navigate 方法时调用此方法。

示例

以下 C++ 代码示例演示如何实现 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;  
}   

要求

要求
最低受支持的客户端 Windows 8 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 [桌面应用 |UWP 应用]
目标平台 Windows
标头 uiautomationcore.h (包括 UIAutomation.h)

另请参阅

IRawElementProviderWindowlessSite