Freigeben über


IModelKeyReference2::OverrideContextObject-Methode (dbgmodel.h)

Die OverrideContextObject-Methode (nur in IModelKeyReference2 vorhanden) ist eine erweiterte Methode, die verwendet wird, um das Kontextobjekt dauerhaft zu ändern, das dieser Schlüsselverweis an die GetValue- oder SetValue-Methoden des zugrunde liegenden Eigenschaftenzugriffsgebers übergeben wird. Das an diese Methode übergebene Objekt wird auch von einem Aufruf von GetContextObject zurückgegeben. Diese Methode kann von Skriptanbietern verwendet werden, um bestimmte dynamische Sprachverhalten zu replizieren. Die meisten Clients sollten diese Methode nicht aufrufen.

Syntax

HRESULT OverrideContextObject(
  IModelObject *newContextObject
);

Parameter

newContextObject

Das neue Kontextobjekt, das an die GetValue- oder SetValue-Methoden eines zugrunde liegenden Eigenschaftenzugriffsgebers übergeben werden soll.

Rückgabewert

Diese Methode gibt HRESULT zurück, das den Erfolg oder Fehler angibt.

Hinweise

Codebeispiel

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.
        }
    }
}

Anforderungen

Anforderung Wert
Header dbgmodel.h

Weitere Informationen

IModelKeyReference2-Schnittstelle