Metodo IDataModelManager::CreateTypedObjectReference (dbgmodel.h)
Il metodo CreateTypedObjectReference è semanticamente simile al metodo CreateTypedObject, ad eccezione del fatto che crea un riferimento al costrutto nativo/linguaggio sottostante. Il riferimento creato è un oggetto con un tipo objectTargetObjectReference. Non è un riferimento nativo perché il linguaggio sottostante potrebbe supportare (ad esempio, un & C++ o &&). È completamente possibile avere un ObjectTargetObjectReference a un riferimento C++.
Un oggetto di tipo ObjectTargetObjectReference può essere convertito nel valore sottostante tramite l'uso del metodo Dereference in IModelObject. Il riferimento può anche essere passato all'analizzatore di espressioni dell'host sottostante per assegnare nuovamente al valore in un linguaggio appropriato.
Sintassi
HRESULT CreateTypedObjectReference(
IDebugHostContext *context,
Location objectLocation,
IDebugHostType *objectType,
_COM_Errorptr_ IModelObject **object
);
Parametri
context
Contesto host di debug in cui si trova questo oggetto. Se non viene specificato alcun contesto esplicito, il contesto dell'oggetto appena creato erediterà dal contesto dell'argomento objectType. Un chiamante può passare il valore del marcatore speciale USE_CURRENT_HOST_CONTEXT per indicare che l'oggetto deve ricevere il contesto corrente nell'interfaccia utente del debugger.
objectLocation
Posizione dell'oggetto nello spazio indirizzi della destinazione di debug. Se la posizione è un indirizzo virtuale, la posizione può essere costruita dal client usando un offset a 64 bit nello spazio indirizzi; in caso contrario, il percorso deve essere recuperato da un'altra interfaccia host di debug.
objectType
Tipo dell'oggetto da costruire. Il contesto del tipo verrà propagato all'oggetto appena creato se non viene passato alcun contesto esplicito nell'argomento contesto.
object
Il riferimento all'oggetto appena creato verrà restituito qui.
Valore restituito
Questo metodo restituisce HRESULT che indica l'esito positivo o negativo.
Osservazioni
codice di esempio
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.
}
}
Fabbisogno
Requisito | Valore |
---|---|
intestazione | dbgmodel.h |