Método IDataModelManager3::CreateTypedObjectReference (dbgmodel.h)
El método CreateTypedObjectReference es semánticamente similar al método CreateTypedObject, excepto que crea una referencia a la construcción de lenguaje o nativo subyacente. La referencia creada es un objeto que tiene un tipo de ObjectTargetObjectReference. No es una referencia nativa, ya que el lenguaje subyacente podría admitir (por ejemplo, un & de C++ o &&). Es totalmente posible tener una referencia ObjectTargetObjectReference a una referencia de C++.
Un objeto de tipo ObjectTargetObjectReference se puede convertir al valor subyacente mediante el uso del método Dereference en IModelObject. La referencia también se puede pasar al evaluador de expresiones del host subyacente para volver a asignar el valor de forma adecuada.
Sintaxis
HRESULT CreateTypedObjectReference(
IDebugHostContext *context,
Location objectLocation,
IDebugHostType *objectType,
_COM_Errorptr_ IModelObject **object
);
Parámetros
context
Contexto de host de depuración en el que se encuentra este objeto. Si no se especifica ningún contexto explícito, el contexto del objeto recién creado heredará del contexto del argumento objectType. Un autor de llamada puede pasar el valor de marcador especial USE_CURRENT_HOST_CONTEXT para indicar que el objeto debe recibir el contexto actual en la interfaz de usuario del depurador.
objectLocation
Ubicación del objeto en el espacio de direcciones del destino de depuración. Si la ubicación es una dirección virtual, el cliente puede construir la ubicación mediante un desplazamiento de 64 bits en el espacio de direcciones; de lo contrario: la ubicación debe recuperarse de otra interfaz de host de depuración.
objectType
Tipo del objeto que se va a construir. El contexto del tipo se propagará al objeto recién creado si no se pasa ningún contexto explícito en el argumento de contexto.
object
La referencia de objeto recién creada se devolverá aquí.
Valor devuelto
Este método devuelve HRESULT que indica éxito o error.
Observaciones
de código de ejemplo
ComPtr<IDataModelManager3> 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.
}
}
Requisitos
Requisito | Valor |
---|---|
encabezado de |
dbgmodel.h |
Consulte también
de interfaz IDataModelManager3 de