Metode IDataModelManager2::CreateIntrinsicObject (dbgmodel.h)

Metode CreateIntrinsicObject adalah metode yang mengelompokkan nilai intrinsik ke dalam IModelObject. Penelepon 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 berbasis IUnknown dasar: 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 dilewatkan adalah jenis turunan IUnknown. Jenis harus dapat ditransmisikan secara statis 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 sekumpulan jenis turunan IUnknown khusus seperti yang ditunjukkan oleh enumerasi ModelObjectKind.

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 antarmuka turunan IUnknown, jenis objek adalah salah satu nilai dalam enumerasi ModelObjectKind dan antarmuka dalam 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.

Nilai kembali

Metode ini mengembalikan HRESULT yang menunjukkan keberhasilan atau kegagalan.

Keterangan

Kode Sampel

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

Antarmuka IDataModelManager2

Persyaratan

Persyaratan Nilai
Header dbgmodel.h