共用方式為


IRawElementProviderWindowlessSite::GetAdjacentFragment 方法 (uiautomationcore.h)

擷取與這個控件網站所擁有的無視窗Microsoft ActiveX 控件相鄰的片段指標。

語法

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

參數

[in] direction

類型:NavigateDirection

值,表示要擷取的相鄰片段(父系、下一個同層級、上一個同層級等等)。

[out, retval] ppParent

類型:IRawElementProviderFragment**

接收相鄰的片段。

傳回值

類型:HRESULT

如果此方法成功,則會傳回S_OK。 否則,它會傳回 HRESULT 錯誤碼。 如果方向是 NavigateDirection_FirstChildNavigateDirection_LastChild,則傳回值是E_INVALIDARG,此方法無效。 如果要求的方向中沒有相鄰的片段,方法會傳回S_OK,並將 ppRetVal 設定為 NULL

言論

若要傳回片段的父代,實作 IRawElementProviderFragment 介面的對象必須能夠實作 navigate 方法 。 實作 Navigate 對於無視窗的 ActiveX 控件來說很難,因為控件可能無法判斷其在父物件的可存取樹狀結構中的位置。 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 應用程式]
目標平臺 窗戶
標頭 uiautomationcore.h (包括 UIAutomation.h)

另請參閱

IRawElementProviderWindowlessSite