Metode IDataModelManager2::RegisterNamedModel (dbgmodel.h)

Metode RegisterNamedModel mendaftarkan model data tertentu dengan nama yang terkenal sehingga dapat ditemukan oleh klien yang ingin memperluasnya. Ini adalah tujuan utama API -- untuk menerbitkan model data sebagai sesuatu yang dapat diperluas dengan mengambil model yang terdaftar dengan nama terkenal ini dan menambahkan model induk ke dalamnya. Meskipun string yang diteruskan dalam argumen modelName bisa apa saja (itu hanya nama), ada konvensi yang terlihat seperti namespace layanan yang dipisahkan titik dari formulir berikut:

• 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.

Contoh nama tersebut adalah Debugger.Models.Process. Ini adalah nama di mana gagasan debugger tentang proses didaftarkan. Klien yang memperluas proses dan itu sendiri dapat diperluas mungkin mendaftarkan titik ekstensibilitasnya sebagai Debugger.Models.Process.NamedExtensionPoint di mana NamedExtensionPoint mengacu pada semantik yang ditambahkan ke proses.

Perhatikan bahwa jika model data tertentu terdaftar dengan nama, implementasi IDataModelConcept untuk model data tersebut harus memiliki metode GetName yang mengembalikan nama yang terdaftar melalui memanggil metode RegisterNamedModel ini.

Sintaks

HRESULT RegisterNamedModel(
  PCWSTR       modelName,
  IModelObject *modeObject
);

Parameter

modelName

Namespace layanan akar model data dikembalikan di sini.

modeObject

Model data sedang didaftarkan.

Mengembalikan nilai

Metode ini mengembalikan HRESULT yang menunjukkan keberhasilan atau kegagalan.

Keterangan

Kode Sampel

ComPtr<IDataModelManager2> 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
    }
}

Antarmuka IDataModelManager2

Persyaratan

Persyaratan Nilai
Header dbgmodel.h