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 接口