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!
}
}
要求
要求 | 價值 |
---|---|
標頭 | dbgmodel.h |