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


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