IDataModelManager interface (dbgmodel.h)

The core interface for the data model manager. This is the interface by which new objects are created, intrinsic values are boxed and unboxed, and models are registered for types.

This interface is never directly implemented by a client.

Inheritance

IDataModelManager inherits from IUnknown.

Methods

The IDataModelManager interface has these methods.

 
IDataModelManager::AcquireNamedModel

This looks up a well known model name and returns the data model registered by that name.
IDataModelManager::AddRef

The AddRef method increments the reference count for an interface on an object. This method belongs to the IDataModelManager interface.
IDataModelManager::Close

The Close method is called on the data model manager by an application e.g. debugger hosting the data model in order to start the shutdown process of the data model manager.
IDataModelManager::CreateDataModelObject

The IDataModelManager::CreateDataModelObject method is a simple helper wrapper for creating objects that are data models.
IDataModelManager::CreateErrorObject

The CreateErrorObject method creates an "error object". The data model does not have the notion of exceptions and exception flow.
IDataModelManager::CreateIntrinsicObject

The CreateIntrinsicObject method is the method which boxes intrinsic values into IModelObject. The caller places the value in a COM VARIANT and calls this method.
IDataModelManager::CreateMetadataStore

The IDataModelManager::CreateMetadataStore method creates a key store that is used to hold metadata that can be associated with properties and other values.
IDataModelManager::CreateNoValue

The CreateNoValue method creates a "no value" object, boxes it into an IModelObject, and returns it. The returned model object has a kind of ObjectNoValue.
IDataModelManager::CreateSyntheticObject

The IDataModelManager::CreateSyntheticObject method creates an empty data model object that is a dictionary of key/value/metadata tuples and concepts.
IDataModelManager::CreateTypedIntrinsicObject

The IDataModelManager::CreateTypedIntrinsicObject method boxes intrinsic values together with a native/language type association into IModelObject.
IDataModelManager::CreateTypedObject

The IDataModelManager::CreateTypedObject method creates a representation of a native/language object in the address space of a debug target.
IDataModelManager::CreateTypedObjectReference

The IDataModelManager::CreateTypedObjectReference method creates a reference to an underlying native/language construct.
IDataModelManager::GetModelForType

The IDataModelManager::GetModelForType method returns the data model that is the canonical visualizer for a given type instance.
IDataModelManager::GetModelForTypeSignature

The IDataModelManager::GetModelForTypeSignature method returns the data model that was previously registered for a given type signature.
IDataModelManager::GetRootNamespace

The GetRootNamespace method returns the data model's root namespace.
IDataModelManager::QueryInterface

The IDataModelManager::QueryInterface method retrieves pointers to the supported interfaces on an object.
IDataModelManager::RegisterExtensionForTypeSignature

The IDataModelManager::RegisterExtensionForTypeSignature method registers a data model for a given type signature as an extension.
IDataModelManager::RegisterModelForTypeSignature

The IDataModelManager::RegisterModelForTypeSignature method registers a canonical visualizer for a given type signature.
IDataModelManager::RegisterNamedModel

The IDataModelManager::RegisterNamedModel method registers a given data model under a well known name so that it is easily discoverable.
IDataModelManager::Release

The IDataModelManager::Release method decrements the reference count for an interface on an object.
IDataModelManager::UnregisterExtensionForTypeSignature

The IDataModelManager::UnregisterExtensionForTypeSignature method undoes a prior call to the RegisterExtensionForTypeSignature method.
IDataModelManager::UnregisterModelForTypeSignature

The IDataModelManager::UnregisterModelForTypeSignature method undoes a prior call to the RegisterModelForTypeSignature method.
IDataModelManager::UnregisterNamedModel

The IDataModelManager::UnregisterNamedModel method undoes a prior call to the RegisterNamedModel method.

Remarks

Object Creation / Boxing Methods

The following set of methods is used to create new objects or to box values into an IModelObject -- the core interface of the data model.

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;

Requirements

Requirement Value
Header dbgmodel.h

See also

Debugger Data Model C++ Overview