次の方法で共有


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_FirstChild または NavigateDirection_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