次の方法で共有


IDataModelManager::CreateIntrinsicObject メソッド (dbgmodel.h)

CreateIntrinsicObject メソッドは、IModelObject に組み込み値ボックス化するメソッドです。 呼び出し元は COM VARIANT に値を配置し、このメソッドを呼び出します。 データ モデル マネージャーは、オブジェクトを表す IModelObject を返します。 このメソッドは、プロパティ アクセサー、メソッド、コンテキストなどの基本的な IUnknown ベースの型をボックス化するためにも使用されることに注意してください。このような場合、objectKind メソッドは、オブジェクトが表す IUnknown ベースのコンストラクトの種類を示し、渡されたバリアントの punkVal フィールドは IUnknown 派生型です。 この型は、プロセス内の適切なモデル インターフェイス (IModelPropertyAccessorIModelMethodIDebugHostContextなど) に静的にキャスト可能である必要があります。

このメソッドでサポートされる 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.
}

必要条件

要件 価値
ヘッダー dbgmodel.h

関連項目

IDataModelManager インターフェイス