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

CreateTypedObjectReference メソッドは、基になるネイティブ/言語コンストラクトへの参照を作成する点を除き、意味的には CreateTypedObject メソッドと似ています。 作成された参照は、ObjectTargetObjectReference の種類を持つオブジェクトです。 基になる言語がサポートする可能性があるため、ネイティブ参照ではありません (C++ & や && など)。 C++ 参照に ObjectTargetObjectReference を指定することは完全に可能です。

ObjectTargetObjectReference の種類のオブジェクトは、 IModelObject で Dereference メソッドを使用することで、基になる値に変換できます。 参照を基になるホストの式エバリュエーターに渡して、言語の適切な方法で値に割り当て直すこともできます。

構文

HRESULT CreateTypedObjectReference(
  IDebugHostContext           *context,
  Location                    objectLocation,
  IDebugHostType              *objectType,
  _COM_Errorptr_ IModelObject **object
);

パラメーター

context

このオブジェクトが配置されているデバッグ ホスト コンテキスト。 明示的なコンテキストが指定されていない場合、新しく作成されたオブジェクトのコンテキストは objectType 引数のコンテキストから継承されます。 呼び出し元は、特別なマーカー値USE_CURRENT_HOST_CONTEXTを渡して、デバッガーのユーザー インターフェイスで現在のコンテキストをオブジェクトが受け取る必要があることを示すことができます。

objectLocation

デバッグ ターゲットのアドレス空間内の オブジェクトの場所。 場所が仮想アドレスの場合は、アドレス空間への 64 ビット オフセットを使用してクライアントによって場所を構築できます。それ以外の場合は、別のデバッグ ホスト インターフェイスから場所を取得する必要があります。

objectType

構築されるオブジェクトの型。 context 引数に明示的なコンテキストが渡されない場合、型のコンテキストは新しく作成されたオブジェクトに伝達されます。

object

ここで、新しく作成されたオブジェクト参照が返されます。

戻り値

このメソッドは、成功または失敗を示す HRESULT を返します。

注釈

サンプル コード

ComPtr<IDataModelManager> spManager; /* get the data model manager */
ComPtr<IDebugHostType> spType;       /* get a type (see CreateTypedObject) */
Location creationLocation;           /* get a location (see CreateTypedObject) */

ComPtr<IModelObject> spObjectRef;
if (SUCCEEDED(spManager->CreateTypedObjectReference(nullptr, 
                                                    creationLocation, 
                                                    spType.Get(), 
                                                    &spObjectRef)))
{
    // spObjectRef now contains a reference to the underlying object.  
    // This can be dereferenced to get the value or passed to the 
    // EE to do an assignment.
    ComPtr<IModelObject> spObject;
    if (SUCCEEDED(spObjectRef->Dereference(&spObject)))
    {
        // spObject now contains the object itself.
    }
}

要件

要件
Header dbgmodel.h

こちらもご覧ください

IDataModelManager インターフェイス