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 |