次の方法で共有


IModelObject インターフェイス (dbgmodel.h)

IModelObject インターフェイスは、オブジェクトの概念をカプセル化します。つまり、そのオブジェクトが整数、文字列、デバッガーのターゲット アドレス空間内の複合型であるかどうか。

継承

IModelObject は IUnknown から継承します。

メソッド

IModelObject インターフェイスには、これらのメソッドがあります。

 
IModelObject::AddParentModel

AddParentModel メソッドは、指定されたオブジェクトに新しい親モデルを追加します。
IModelObject::AddRef

AddRef メソッドは、オブジェクトのインターフェイスの参照カウントをインクリメントします。 このメソッドは IModelObject インターフェイスに属します。
IModelObject::ClearConcepts

ClearConcepts メソッドは、このメソッドによって指定されたオブジェクトのインスタンスからすべての概念を削除します。
IModelObject::ClearKeys

ClearKeys メソッドは、このメソッドによって指定されたオブジェクトのインスタンスから、すべてのキーとその関連する値とメタデータを削除します。
IModelObject::Compare

Compare メソッドは、2 つのモデル オブジェクトを比較し、それらのオブジェクトの関係を示す値を返します。
IModelObject::D ereference

Dereference メソッドは、オブジェクトを逆参照します。
IModelObject::EnumerateKeyReferences

EnumerateKeyReferences メソッドは、EnumerateKeyValues メソッドと同様に動作しますが、キーの値ではなく列挙するキーへの参照を返す点が異なります。
IModelObject::EnumerateKeys

動的キー プロバイダー内のキーを列挙します。
IModelObject::EnumerateKeyValues

EnumerateKeyValues メソッドは、オブジェクトのすべてのキーを列挙するためにクライアントが最初に使用するメソッドです。
IModelObject::EnumerateRawReferences

EnumerateRawReferences メソッドは、指定されたオブジェクトのすべてのネイティブ子 (フィールド、基底クラスなど) への参照を列挙します。
IModelObject::EnumerateRawValues

EnumerateRawValues メソッドは、指定されたオブジェクトのすべてのネイティブ子 (フィールド、基底クラスなど) を列挙します。
IModelObject::GetConcept

GetConcept メソッドは、オブジェクト (またはその親モデル チェーン) の概念を検索し、概念インターフェイスへのインターフェイス ポインターを返します。
IModelObject::GetContext

GetContext メソッドは、オブジェクトに関連付けられているホスト コンテキストを返します。
IModelObject::GetContextForDataModel

GetContextForDataModel メソッドは、SetContextForDataModel の以前の呼び出しで設定されたコンテキスト情報を取得するために使用されます。
IModelObject::GetIntrinsicValue

GetIntrinsicValue メソッドは、IModelObject 内でボックス化されたオブジェクトを返します。
IModelObject::GetIntrinsicValueAs

GetIntrinsicValueAs メソッドは、値を指定されたバリアント型に変換することを除き、GetIntrinsicValue メソッドと同じように動作します。
IModelObject::GetKey

GetKey メソッドは、指定されたキーの値 (および関連付けられているメタデータ) を名前で取得します。
IModelObject::GetKeyReference

オブジェクトまたはその親モデルの 1 つに引数 'key' に従って名前が付けられたキーがある場合、そのキーへの参照が返されます。
IModelObject::GetKeyValue

GetKeyValue メソッドは、指定されたキーの値 (および関連付けられているメタデータ) を名前で取得するためにクライアントが最初に使用するメソッドです。
IModelObject::GetKind

GetKind メソッドは、IModelObject 内でボックス化されたオブジェクトの種類を返します。
IModelObject::GetLocation

GetLocation メソッドは、ネイティブ オブジェクトの場所を返します。 このような場所は通常、デバッグ ターゲットのアドレス空間内の仮想アドレスですが、必ずしもそうであるとは限りません。
IModelObject::GetNumberOfParentModels

GetNumberOfParentModels メソッドは、指定されたオブジェクト インスタンスにアタッチされている親モデルの数を返します。
IModelObject::GetParentModel

GetParentModel メソッドは、指定されたオブジェクトの親モデル チェーン内の i 番目の親モデルを返します。
IModelObject::GetRawReference

GetRawReference メソッドは、指定されたオブジェクト内のネイティブ コンストラクトを検索し、そのオブジェクトへの参照を返します。
IModelObject::GetRawValue

GetRawValue メソッドは、指定されたオブジェクト内のネイティブ コンストラクトを検索します。 このようなコンストラクトは、フィールド、基底クラス、基底クラスのフィールド、メンバー関数などです。
IModelObject::GetTargetInfo

GetTargetInfo メソッドは、実質的には、指定されたオブジェクトのネイティブ型と抽象場所の両方を返す GetLocation メソッドと GetTypeInfo メソッドの組み合わせです。
IModelObject::GetTypeInfo

GetTypeInfo メソッドは、指定されたオブジェクトのネイティブ型を返します。 オブジェクトにネイティブ型情報が関連付けられていない場合、呼び出しは引き続き成功しますが、null を返します。
IModelObject::IsEqualTo

IsEqualTo メソッドは、ホスト コンテキストを別のホスト コンテキストと比較します。 2 つのコンテキストが等しい場合は、これが示されます。 この比較はインターフェイスの等価性ではないことに注意してください。
IModelObject::QueryInterface

IModelObject::QueryInterface メソッドは、オブジェクトでサポートされているインターフェイスへのポインターを取得します。
IModelObject::Release

IModelObject::Release メソッドは、オブジェクトのインターフェイスの参照カウントをデクリメントします。
IModelObject::RemoveParentModel

RemoveParentModel は、指定されたオブジェクトの親検索チェーンから指定された親モデルを削除します。
IModelObject::SetConcept

SetConcept メソッドは、このポインターによって指定されたオブジェクト インスタンスに指定された概念を配置します。
IModelObject::SetContextForDataModel

SetContextForDataModel メソッドは、インスタンス オブジェクトに実装データを配置するためにデータ モデルの実装によって使用されます。
IModelObject::SetKey

SetKey メソッドは、オブジェクトにキーを作成するためにクライアントが設定するメソッドです (また、メタデータを作成されたキーに関連付ける可能性があります)。
IModelObject::SetKeyValue

SetKeyValue メソッドは、キーの値を設定するためにクライアントが最初に設定するメソッドです。 このメソッドを使用して、オブジェクトに新しいキーを作成することはできません。
IModelObject::TryCastToRuntimeType

TryCastToRuntimeType メソッドは、デバッグ ホストに分析の実行を求め、指定されたオブジェクトの実際のランタイム型 (ほとんどの派生クラス) を決定します。

備考

データ モデルに関する最も基本的で強力なものの 1 つは、オブジェクトとは何か、およびオブジェクトとの対話方法の定義を標準化することです。 IModelObject インターフェイスは、オブジェクトの概念をカプセル化します。つまり、そのオブジェクトが整数、浮動小数点値、文字列、デバッガーのターゲット アドレス空間内の複合型、またはプロセスやモジュールの概念のようなデバッガーの概念であるかどうか。

IModelObject に保持 (またはボックス化) できるさまざまなものがあります。

• 組み込み値 - IModelObject には、8、16、32、または 64 ビットの符号付き整数または符号なし整数、ブール値、文字列、エラー、または空の概念という多くの基本型のコンテナーを指定できます。

• ネイティブ オブジェクト - IModelObject は、デバッガーが対象としているもののアドレス空間内で複合型 (デバッガーの型システムによって定義) を表すことができます

• 合成オブジェクト - IModelObject は動的オブジェクトにすることができます。動的オブジェクトは、キー/値/メタデータタプルのコレクションと、キー/値ペアで表されるだけの動作を定義する概念のセットです。

• Properties - IModelObject はプロパティを表すことができます。値を取得したり、メソッド呼び出しで変更したりできます。 IModelObject 内のプロパティは、実質的に IModelObject にボックス化された IModelPropertyAccessor インターフェイス です

• メソッド - IModelObject はメソッドを表すことができます。一連の引数を使用して呼び出し、戻り値を取得できます。 IModelObject 内のメソッドは、実質的に IModelObject にボックス化された IModelMethod インターフェイスです

IModelObject は、分離されたオブジェクトではありません。 上に示したオブジェクトの種類の 1 つを表すだけでなく、各オブジェクトには親データ モデルのチェーンの概念があります。 このチェーンは |JavaScript プロトタイプ チェーン。 JavaScript のようなプロトタイプの線形チェーンの代わりに、各データ モデル オブジェクトは親モデルの線形チェーンを定義します。 これらの各親モデルには、独自の親セットの別の線形チェーンがあります。 基本的に、各オブジェクトは、それ自体とこのツリー内のすべてのオブジェクトの両方の機能 (プロパティなど) の集計です。 特定のプロパティを照会するときに、クエリ対象のオブジェクトがそのプロパティをサポートしていない場合、クエリは順番に各親に線形順に渡されます。 これにより、集計ツリーの深さ優先検索によってプロパティの検索が解決される動作が作成されます。

このオブジェクト モデル内の拡張性は、すべてのオブジェクトがそれ自体と親モデルのツリーの集約であるという考え方を考えると、非常に単純です。 拡張機能が追加され、別のオブジェクトの親モデルの一覧に追加されます。 これを行うと、オブジェクトが拡張されます。 この方法では、オブジェクトまたは値の特定のインスタンス、ネイティブ型、プロセスまたはスレッドのデバッガーの概念、さらには "すべての iterable オブジェクト" の概念など、あらゆる機能を追加できます。

必要条件

要件 価値
ヘッダー dbgmodel.h

関連項目

デバッガー データ モデル C++ インターフェイスの概要