共用方式為


(dbgmodel.h) IModelObject::SetConcept 方法

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! 
    }
}

規格需求

需求
標頭 dbgmodel.h

另請參閱

調試程序數據模型 C++ 概念

IKeyStore 介面

IModelObject 介面