Freigeben über


IModelKeyReference2::OverrideContextObject-Methode (dbgmodel.h)

Die OverrideContextObject-Methode (nur für IModelKeyReference2) 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 Eigenschaftsaccessors ü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 Sprachverhaltensweisen 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 beliebigen zugrunde liegenden Eigenschaftenaccessors übergeben werden soll.

Rückgabewert

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

Bemerkungen

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

Siehe auch

IModelKeyReference2-Schnittstelle