次の方法で共有


IModelKeyReference2::OverrideContextObject メソッド (dbgmodel.h)

OverrideContextObject メソッド ( IModelKeyReference2 にのみ存在する) は、このキー参照が基になるプロパティ アクセサーの GetValue メソッドまたは SetValue メソッドに渡すコンテキスト オブジェクトを永続的に変更するために使用される高度なメソッドです。 このメソッドに渡されるオブジェクトは、GetContextObject の呼び出しからも返されます。 このメソッドは、スクリプト プロバイダーが特定の動的言語の動作をレプリケートするために使用できます。 ほとんどのクライアントでは、このメソッドを呼び出さないでください。

構文

HRESULT OverrideContextObject(
  IModelObject *newContextObject
);

パラメーター

newContextObject

基になるプロパティ アクセサーの GetValue メソッドまたは SetValue メソッドに渡す新しいコンテキスト オブジェクト。

戻り値

このメソッドは、成功または失敗を示す HRESULT を返します。

注釈

コード サンプル

ComPtr<IModelObject> spObject;          /* get an object */
ComPtr<IModelObject> spAdjustedContext; /* get the object you'd like to adjust context to */

ComPtr<IModelKeyReference> spKeyRef;
if (SUCCEEDED(spObject->GetKeyReference(L"Id", &spKeyRef, nullptr)))
{
    // At this moment, spKeyRef->GetContextObject() and 
    // spKeyRef->GetOriginalObject() will return the same value
    ComPtr<IModelKeyReference2> spKeyRef2;
    if (SUCCEEDED(spKeyRef.As(&spKeyRef2)))
    {
        if (SUCCEEDED(spKeyRef2->OverrideContextObject(spAdjustedContext.Get())))
        {
            // Now, spKeyRef->GetContextObject() will return spAdjustedContext 
            // and spKeyRef->GetOriginalObject() will return spObject
            // Very few clients will want to do this.  It is useful for some 
            // bridges between dynamic languages and the data model.
        }
    }
}

要件

要件
Header dbgmodel.h

こちらもご覧ください

IModelKeyReference2 インターフェイス