Поделиться через


Метод 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

См. также раздел

Основные понятия модели данных отладчика C++

Интерфейс IKeyStore

Интерфейс IModelObject