Método IDataModelManager::RegisterNamedModel (dbgmodel.h)

El método RegisterNamedModel registra un modelo de datos determinado con un nombre conocido para que los clientes que deseen ampliarlo puedan encontrarlo. Este es el propósito principal de la API: publicar un modelo de datos como algo que se puede ampliar recuperando el modelo registrado con este nombre conocido y agregando un modelo primario a él. Aunque la cadena pasada en el argumento modelName puede ser cualquier cosa (es simplemente un nombre), hay una convención que tiene un aspecto similar a un espacio de nombres separado por puntos con el formato siguiente:

• Debugger.Models.* - Data models which pertain to the debug target.  

• DataModel.Models.* - Data models which pertain to the core data model itself. 

  o DataModel.Models.Concepts.* - Data models which pertain to concepts in the data model.

Un ejemplo de este nombre es Debugger.Models.Process. Este es el nombre en el que se registra la noción del depurador de un proceso. Un cliente que extiende el proceso y es extensible puede registrar su punto de extensibilidad como Debugger.Models.Process.NamedExtensionPoint donde NamedExtensionPoint hace referencia a la semántica que se agrega al proceso.

Tenga en cuenta que si un modelo de datos determinado está registrado bajo un nombre, la implementación de IDataModelConcept para ese modelo de datos debe tener un método GetName que devuelva el nombre registrado mediante una llamada a este método RegisterNamedModel.

Sintaxis

HRESULT RegisterNamedModel(
  PCWSTR       modelName,
  IModelObject *modeObject
);

Parámetros

modelName

Aquí se devuelve el espacio de nombres raíz del modelo de datos.

modeObject

Modelo de datos que se va a registrar.

Valor devuelto

Este método devuelve HRESULT que indica éxito o error.

Comentarios

Código de ejemplo

ComPtr<IDataModelManager> spManager;    /* get the data model manager */
ComPtr<IModelObject> spDataModelObject; /* get your data model object (see
                                           CreateDataModelObject) */

// If the model is registered under a name (e.g.: 
// Debugger.Models.Process.PrivateProcessExtension as below), the
// IDataModelConcept::GetName method must return one of the registration 
// names (the one the extension considers "canonical").  It is legal for an 
// object to be registered under multiple names.
if (SUCCEEDED(spManager->RegisterNamedModel(
    L"Debugger.Models.Process.PrivateProcessExtension", 
    spDataModelObject.Get()))
    )
{
    // The model object spDataModelObject is now registered and can be looked up 
    // under the name "Debugger.Models.Process.PrivateProcessExtension".
    // This means others can extend it by fetching that name.
    //
    // Fetch it back as example:
    ComPtr<IModelObject> spFetchedModel;
    if (SUCCEEDED(spManager->AcquireNamedModel(
        L"Debugger.Models.Process.PrivateProcessExtension", 
        &spFetchedModel))
        )
    {
        // spFetchedModel should be the same as spDataModelObject
    }
}

Requisitos

   
Header dbgmodel.h

Vea también

Interfaz IDataModelManager