Partager via


Méthode IDataModelManager2 ::CreateTypedObjectReference (dbgmodel.h)

La méthode CreateTypedObjectReference est sémantiquement similaire à la méthode CreateTypedObject, sauf qu’elle crée une référence à la construction native/language sous-jacente. La référence créée est un objet qui a une sorte de ObjectTargetObjectReference. Il ne s’agit pas d’une référence native, car le langage sous-jacent peut prendre en charge (par exemple, un & C++ ou un &&). Il est tout à fait possible d’avoir un ObjectTargetObjectReference vers une référence C++.

Un objet de type ObjectTargetObjectReference peut être converti en valeur sous-jacente à l’aide de la méthode Dereference sur IModelObject. La référence peut également être transmise à l’évaluateur d’expression de l’hôte sous-jacent afin de l’attribuer à la valeur de manière appropriée.

Syntaxe

HRESULT CreateTypedObjectReference(
  IDebugHostContext           *context,
  Location                    objectLocation,
  IDebugHostType              *objectType,
  _COM_Errorptr_ IModelObject **object
);

Paramètres

context

Contexte hôte de débogage dans lequel se trouve cet objet. Si aucun contexte explicite n’est donné, le contexte de l’objet nouvellement créé héritera du contexte de l’argument objectType. Un appelant peut passer la valeur de marqueur spéciale USE_CURRENT_HOST_CONTEXT pour indiquer que l’objet doit recevoir le contexte actuel dans l’interface utilisateur du débogueur.

objectLocation

Emplacement de l’objet dans l’espace d’adressage de la cible de débogage. Si l’emplacement est une adresse virtuelle, l’emplacement peut être construit par le client à l’aide d’un décalage 64 bits dans l’espace d’adressage ; sinon , l’emplacement doit être récupéré à partir d’une autre interface hôte de débogage.

objectType

Type de l’objet en cours de construction. Le contexte du type se propage à l’objet nouvellement créé si aucun contexte explicite n’est passé dans l’argument de contexte.

object

La référence d’objet nouvellement créée sera retournée ici.

Valeur retournée

Cette méthode retourne HRESULT qui indique la réussite ou l’échec.

Remarques

Exemple de Code

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

Configuration requise

Condition requise Valeur
En-tête dbgmodel.h

Voir aussi

Interface IDataModelManager2