IDataModelManager2::CreateTypedObjectReference-Methode (dbgmodel.h)
Die CreateTypedObjectReference-Methode ähnelt semantisch der CreateTypedObject-Methode, mit der Ausnahme, dass sie einen Verweis auf das zugrunde liegende native/sprachbasierte Konstrukt erstellt. Der erstellte Verweis ist ein Objekt, das über eine Art ObjectTargetObjectReference verfügt. Es handelt sich nicht um einen nativen Verweis, da die zugrunde liegende Sprache möglicherweise unterstützt wird (z. B. ein C++-& oder &&). Es ist durchaus möglich, ein ObjectTargetObjectReference auf einen C++-Verweis zu verwenden.
Ein Objekt der Art ObjectTargetObjectReference kann mithilfe der Dereference-Methode für IModelObject in den zugrunde liegenden Wert konvertiert werden. Der Verweis kann auch an die Ausdrucksauswertung des zugrunde liegenden Hosts übergeben werden, um dem Wert in einer sprachgerechten Weise wieder zuzuweisen.
Syntax
HRESULT CreateTypedObjectReference(
IDebugHostContext *context,
Location objectLocation,
IDebugHostType *objectType,
_COM_Errorptr_ IModelObject **object
);
Parameter
context
Der Debughostkontext, in dem sich dieses Objekt befindet. Wenn kein expliziter Kontext angegeben wird, erbt der Kontext des neu erstellten Objekts vom Kontext des objectType-Arguments. Ein Aufrufer kann den speziellen Markerwert USE_CURRENT_HOST_CONTEXT übergeben, um anzugeben, dass das Objekt den aktuellen Kontext in der Benutzeroberfläche des Debuggers empfangen soll.
objectLocation
Die Position des Objekts im Adressraum des Debugziels. Wenn es sich bei dem Standort um eine virtuelle Adresse handelt, kann der Standort vom Client mithilfe eines 64-Bit-Offsets in den Adressraum erstellt werden. Andernfalls muss der Speicherort von einer anderen Debughostschnittstelle abgerufen werden.
objectType
Der Typ des Objekts, das erstellt wird. Der Kontext des Typs wird an das neu erstellte Objekt weitergegeben, wenn im Kontextargument kein expliziter Kontext übergeben wird.
object
Der neu erstellte Objektverweis wird hier zurückgegeben.
Rückgabewert
Diese Methode gibt HRESULT zurück, das den Erfolg oder Fehler angibt.
Hinweise
Beispielcode
ComPtr<IDataModelManager> spManager; /* get the data model manager */
ComPtr<IDebugHostType> spType; /* get a type (see CreateTypedObject) */
Location creationLocation; /* get a location (see CreateTypedObject) */
ComPtr<IModelObject> spObjectRef;
if (SUCCEEDED(spManager->CreateTypedObjectReference(nullptr,
creationLocation,
spType.Get(),
&spObjectRef)))
{
// spObjectRef now contains a reference to the underlying object.
// This can be dereferenced to get the value or passed to the
// EE to do an assignment.
ComPtr<IModelObject> spObject;
if (SUCCEEDED(spObjectRef->Dereference(&spObject)))
{
// spObject now contains the object itself.
}
}
Anforderungen
Anforderung | Wert |
---|---|
Header | dbgmodel.h |