Интерфейс IDataModelManager (dbgmodel.h)

Основной интерфейс для диспетчера моделей данных. Это интерфейс, с помощью которого создаются новые объекты, встроенные значения упаковываются и распаковываются, а модели регистрируются для типов.

Клиент никогда не реализует этот интерфейс напрямую.

Наследование

IDataModelManager наследуется от IUnknown.

Методы

Интерфейс IDataModelManager содержит следующие методы.

 
IDataModelManager::AcquireNamedModel

При этом выполняется поиск известного имени модели и возвращается модель данных, зарегистрированная по этому имени.
IDataModelManager::AddRef

Метод AddRef увеличивает количество ссылок для интерфейса объекта . Этот метод принадлежит интерфейсу IDataModelManager.
IDataModelManager::Close

Метод Close вызывается в диспетчере моделей данных приложением, например отладчиком, в котором размещается модель данных, чтобы запустить процесс завершения работы диспетчера моделей данных.
IDataModelManager::CreateDataModelObject

Метод IDataModelManager::CreateDataModelObject является простой вспомогательной оболочкой для создания объектов, которые являются моделями данных.
IDataModelManager::CreateErrorObject

Метод CreateErrorObject создает объект error. Модель данных не имеет понятия исключений и потока исключений.
IDataModelManager::CreateIntrinsicObject

Метод CreateIntrinsicObject — это метод, который упаковывает встроенные значения в IModelObject. Вызывающий объект помещает значение в COM VARIANT и вызывает этот метод.
IDataModelManager::CreateMetadataStore

Метод IDataModelManager::CreateMetadataStore создает хранилище ключей, которое используется для хранения метаданных, которые могут быть связаны со свойствами и другими значениями.
IDataModelManager::CreateNoValue

Метод CreateNoValue создает объект "без значения", упаковывает его в IModelObject и возвращает его. Возвращаемый объект модели имеет тип ObjectNoValue.
IDataModelManager::CreateSyntheticObject

Метод IDataModelManager::CreateSyntheticObject создает пустой объект модели данных, который является словарем кортежей и понятий "ключ-значение/метаданные".
IDataModelManager::CreateTypedIntrinsicObject

Метод IDataModelManager::CreateTypedIntrinsicObject упаковывает встроенные значения вместе с сопоставлением типа языка и языка в IModelObject.
IDataModelManager::CreateTypedObject

Метод IDataModelManager::CreateTypedObject создает представление собственного или языкового объекта в адресном пространстве целевого объекта отладки.
IDataModelManager::CreateTypedObjectReference

Метод IDataModelManager::CreateTypedObjectReference создает ссылку на базовую конструкцию машинного или языкового кода.
IDataModelManager::GetModelForType

Метод IDataModelManager::GetModelForType возвращает модель данных, которая является каноническим визуализатором для данного экземпляра типа.
IDataModelManager::GetModelForTypeSignature

Метод IDataModelManager::GetModelForTypeSignature возвращает модель данных, которая была ранее зарегистрирована для заданной сигнатуры типа.
IDataModelManager::GetRootNamespace

Метод GetRootNamespace возвращает корневое пространство имен модели данных.
IDataModelManager::QueryInterface

Метод IDataModelManager::QueryInterface извлекает указатели на поддерживаемые интерфейсы объекта .
IDataModelManager::RegisterExtensionForTypeSignature

Метод IDataModelManager::RegisterExtensionForTypeSignature регистрирует модель данных для заданной сигнатуры типа в качестве расширения.
IDataModelManager::RegisterModelForTypeSignature

Метод IDataModelManager::RegisterModelForTypeSignature регистрирует канонический визуализатор для заданной сигнатуры типа.
IDataModelManager::RegisterNamedModel

Метод IDataModelManager::RegisterNamedModel регистрирует данную модель данных под хорошо известным именем, чтобы ее было легко обнаруживать.
IDataModelManager::Release

Метод IDataModelManager::Release уменьшает количество ссылок для интерфейса объекта .
IDataModelManager::UnregisterExtensionForTypeSignature

Метод IDataModelManager::UnregisterExtensionForTypeSignature отменяет предыдущий вызов метода RegisterExtensionForTypeSignature.
IDataModelManager::UnregisterModelForTypeSignature

Метод IDataModelManager::UnregisterModelForTypeSignature отменяет предыдущий вызов метода RegisterModelForTypeSignature.
IDataModelManager::UnregisterNamedModel

Метод IDataModelManager::UnregisterNamedModel отменяет предыдущий вызов метода RegisterNamedModel.

Комментарии

Методы создания и обработки объектов

Следующий набор методов используется для создания новых объектов или для вставки значений в IModelObject — основной интерфейс модели данных.

STDMETHOD(CreateNoValue)(_Out_ IModelObject** object) PURE;

STDMETHOD(CreateErrorObject)(_In_ HRESULT hrError, 
                             _In_opt_ PCWSTR pwszMessage, 
                             _COM_Outptr_ IModelObject** object) PURE;

STDMETHOD(CreateTypedObject)(_In_opt_ IDebugHostContext* context, 
                             _In_ Location objectLocation, 
                             _In_ IDebugHostType* objectType, 
                             _COM_Errorptr_ IModelObject** object) PURE;

STDMETHOD(CreateTypedObjectReference)(_In_opt_ IDebugHostContext* context, 
                                      _In_ Location objectLocation, 
                                      _In_ IDebugHostType* objectType, 
                                      _COM_Errorptr_ IModelObject** object) PURE;

STDMETHOD(CreateSyntheticObject)(_In_opt_ IDebugHostContext* context, 
                                 _COM_Outptr_ IModelObject** object) PURE;

STDMETHOD(CreateDataModelObject)(_In_ IDataModelConcept* dataModel, 
                                 _COM_Outptr_ IModelObject** object) PURE;

STDMETHOD(CreateIntrinsicObject)(_In_ ModelObjectKind objectKind, 
                                 _In_ VARIANT* intrinsicData, 
                                 _COM_Outptr_ IModelObject** object) PURE;

STDMETHOD(CreateTypedIntrinsicObject)(_In_ VARIANT* intrinsicData, 
                                      _In_ IDebugHostType* type, 
                                      _COM_Outptr_ IModelObject** object) PURE;

STDMETHOD(CreateMetadataStore)(_In_opt_ IKeyStore* parentStore, 
                               _COM_Outptr_ IKeyStore** metadataStore) PURE;

STDMETHOD(CreateTypedIntrinsicObjectEx)(_In_opt_ IDebugHostContext* context, 
                                        _In_ VARIANT* intrinsicData, 
                                        _In_ IDebugHostType* type, 
                                        _COM_Outptr_ IModelObject** object) PURE;

Требования

Требование Значение
Заголовок dbgmodel.h

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

Обзор модели данных отладчика C++