Metode IDataModelManager::CreateIntrinsicObject (dbgmodel.h)

Metode CreateIntrinsicObject adalah metode yang mengelompokkan nilai intrinsik ke dalam IModelObject. Pemanggil menempatkan nilai dalam VARIAN COM dan memanggil metode ini. Manajer model data mengembalikan IModelObject yang mewakili objek . Perhatikan bahwa metode ini juga digunakan untuk mengetik jenis dasar berbasis IUnknown: pengakses properti, metode, konteks, dll... Dalam kasus seperti itu, metode objectKind menunjukkan jenis konstruksi berbasis IUnknown apa yang diwakili objek dan bidang punkVal dari varian yang diteruskan adalah jenis turunan IUnknown. Jenis harus secara statis dapat ditransmisikan ke antarmuka model yang sesuai (misalnya: IModelPropertyAccessor, IModelMethod, IDebugHostContext, dll...) dalam proses.

Jenis VARIAN yang didukung oleh metode ini adalah VT_UI1, VT_I1, VT_UI2, VT_I2, VT_UI4, VT_I4, VT_UI8, VT_I8, VT_R4, VT_R8, VT_BOOL, VT_BSTR, dan VT_UNKNOWN (untuk set khusus jenis turunan IUnknown seperti yang ditunjukkan oleh model enumerasiObjectKind.

Sintaks

HRESULT CreateIntrinsicObject(
  ModelObjectKind objectKind,
  VARIANT         *intrinsicData,
  IModelObject    **object
);

Parameter

objectKind

Menunjukkan jenis objek yang sedang dikotak. Untuk intrinsik normal yang berbeda dengan jenis varian, ObjectIntrinsic diteruskan di sini. Untuk yang lain yang secara efektif merupakan antarmuka turunan IUnknown, jenis objek adalah salah satu nilai dalam enumerasi ModelObjectKind dan antarmuka di VARIAN harus cocok.

intrinsicData

VARIAN yang berisi nilai yang akan dikotak di dalam kontainer IModelObject .

object

Nilai yang baru dikotak (sebagai IModelObject) 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 */

VARIANT vtValue;
vtValue.vt = VT_I4;
vtValue.lVal = 42;

// If the object is an VT_UNKNOWN, the first argument to CreateIntrinsicObject
// indicates what KIND of IUnknown.  For example, ObjectPropertyAccessor would 
// indicate IModelPropertyAccessor.  ObjectMethod would indicate IModelMethod, etc...
ComPtr<IModelObject> spValue;
if (SUCCEEDED(spManager->CreateIntrinsicObject(ObjectIntrinsic, &vtValue, &spValue)))
{
    // spValue now contains the object (boxed) representation of the int value 42.
}

Persyaratan

   
Header dbgmodel.h

Lihat juga

Antarmuka IDataModelManager