次の方法で共有


IModelObject::SetConcept メソッド (dbgmodel.h)

SetConcept メソッドは、このポインターによって指定されたオブジェクト インスタンスに指定された概念を配置します。 こので指定されたオブジェクト インスタンスにアタッチされた親モデルでもこの概念がサポートされている場合、インスタンス内の実装は親モデルの実装をオーバーライドします。

データ モデルでサポートされている一連の概念 (インターフェイス) については、「 デバッガー データ モデル C++ の概念」を参照してください。

IKeyStore インターフェイスの詳細については、「IKeyStore インターフェイス」を参照してください。

構文

HRESULT SetConcept(
  REFIID    conceptId,
  IUnknown  *conceptInterface,
  IKeyStore *conceptMetadata
);

パラメーター

conceptId

割り当てられている概念の一意識別子。 これは、概念のコア インターフェイスの IID でもあります。

conceptInterface

割り当てられている概念インターフェイス (conceptId によって定義)。

conceptMetadata

この概念に関連付ける省略可能なメタデータ。

戻り値

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

注釈

コード サンプル

ComPtr<IModelObject> spObject; /* get an object: say a new one from CreateSyntheticObject */

// Implement IStringDisplayableConcept for the object.  Return a static "Hello World" string.
class MyStringConversion :
    public Microsoft::WRL::RuntimeClass<
        Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::RuntimeClassType::ClassicCom>,
        IStringDisplayableConcept
        >
{
public:

    IFACEMETHOD(ToDisplayString)(_In_ IModelObject * /*pContextObject*/, 
                                 _In_opt_ IKeyStore * /*pMetadata*/, 
                                 _Out_ BSTR *pDisplayString)
    {
        *pDisplayString = SysAllocString(L"Hello World");
        return *pDisplayString == nullptr ? E_OUTOFMEMORY : S_OK;
    }
};

// Add the implementation as a concept
ComPtr<MyStringConversion> spStringConverter = Microsoft::WRL::Make<MyStringConversion>();
if (spStringConverter != nullptr)
{
    if (SUCCEEDED(spObject->SetConcept(__uuidof(IStringDisplayableConcept),
                                       static_cast<IStringDisplayableConcept *>
                                           (spStringConverter.Get()), nullptr)))
    {
        // The new object can be converted to a string! 
    }
}

要件

要件
Header dbgmodel.h

こちらもご覧ください

Debugger Data Model C++ の概念

IKeyStore インターフェイス

IModelObject インターフェイス