Поделиться через


Метод 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.
        }
    }
}

Требования

Требование Ценность
заголовка dbgmodel.h

См. также

интерфейс IModelKeyReference2