IDataModelManager::CreateIntrinsicObject メソッド (dbgmodel.h)
CreateIntrinsicObject メソッドは、組み込み値を IModelObject にボックス化するメソッドです。 呼び出し元は COM VARIANT に値を配置し、このメソッドを呼び出します。 データ モデル マネージャーは、 オブジェクトを表す IModelObject を返します。 このメソッドは、プロパティ アクセサー、メソッド、コンテキストなどの基本的な IUnknown ベースの型をボックス化するためにも使用されることに注意してください。このような場合、objectKind メソッドは、オブジェクトが表す IUnknown ベースのコンストラクトの種類を示し、渡されたバリアントの punkVal フィールドは IUnknown 派生型です。 型は、プロセス内の適切なモデル インターフェイス ( IModelPropertyAccessor、 IModelMethod、 IDebugHostContext など) に静的にキャストできる必要があります。
このメソッドでサポートされる VARIANT 型は、VT_UI1、VT_I1、VT_UI2、VT_I2、VT_UI4、VT_I4、VT_UI8、VT_I8、VT_R4、VT_R8、VT_BOOL、VT_BSTR、およびVT_UNKNOWNです (列挙型 ModelObjectKind によって示される特殊化された IUnknown 派生型のセットの場合)。
構文
HRESULT CreateIntrinsicObject(
ModelObjectKind objectKind,
VARIANT *intrinsicData,
IModelObject **object
);
パラメーター
objectKind
ボックス化されているオブジェクトの種類を示します。 バリアント型によって異なる通常の組み込みの場合、ObjectIntrinsic がここに渡されます。 実質的に IUnknown 派生インターフェイスである他のユーザーの場合、オブジェクト型は ModelObjectKind 列挙の値の 1 つであり、VARIANT のインターフェイスは一致する必要があります。
intrinsicData
IModelObject コンテナー内でボックス化される値を含む VARIANT。
object
新しくボックス化された値 ( IModelObject として) がここで返されます。
戻り値
このメソッドは、成功または失敗を示す HRESULT を返します。
注釈
サンプル コード
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.
}
要件
要件 | 値 |
---|---|
Header | dbgmodel.h |