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 |