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を返し、 ppRetValNULL に設定します。

注釈

フラグメントの親を返すには、 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