Metode IDataModelManager2::CreateTypedObjectReference (dbgmodel.h)

Metode CreateTypedObjectReference secara semantik mirip dengan metode CreateTypedObject kecuali membuat referensi ke konstruksi asli/bahasa yang mendasar. Referensi yang dibuat adalah objek yang memiliki jenis ObjectTargetObjectReference. Ini bukan referensi asli karena bahasa yang mendasar mungkin mendukung (misalnya: & C++ atau &&). Dimungkinkan sepenuhnya untuk memiliki ObjectTargetObjectReference ke referensi C++.

Objek jenis ObjectTargetObjectReference dapat dikonversi ke nilai yang mendasar melalui penggunaan metode Dereferensi pada IModelObject. Referensi juga dapat diteruskan ke evaluator ekspresi host yang mendasar untuk menetapkan kembali ke nilai dengan bahasa yang sesuai.

Sintaks

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

Parameter

context

Konteks host debug tempat objek ini berada. Jika tidak ada konteks eksplisit yang diberikan, konteks objek yang baru dibuat akan mewarisi dari konteks argumen objectType. Penelepon dapat meneruskan nilai penanda khusus USE_CURRENT_HOST_CONTEXT untuk menunjukkan bahwa objek harus menerima konteks yang saat ini ada di antarmuka pengguna debugger.

objectLocation

Lokasi objek di ruang alamat target debug. Jika lokasi adalah alamat virtual, lokasi dapat dibangun oleh klien menggunakan offset 64-bit ke ruang alamat; jika tidak - lokasi harus diambil dari antarmuka host debug lain.

objectType

Jenis objek yang sedang dibangun. Konteks jenis akan disebarluaskan ke objek yang baru dibuat jika tidak ada konteks eksplisit yang diteruskan dalam argumen konteks.

object

Referensi objek yang baru dibuat akan dikembalikan di sini.

Mengembalikan nilai

Metode ini mengembalikan HRESULT yang menunjukkan keberhasilan atau kegagalan.

Keterangan

Kode Sampel

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

Persyaratan

Persyaratan Nilai
Header dbgmodel.h

Lihat juga

Antarmuka IDataModelManager2