Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Метод RegisterNamedModel регистрирует определенную модель данных под известным именем, чтобы ее могли найти клиенты, желающие расширить ее. Это основная цель API — опубликовать модель данных как то, что может быть расширено путем получения модели, зарегистрированной под этим хорошо известным именем, и добавления родительской модели в нее. Хотя строка, передаваемая в аргументе modelName, может быть что-либо (это просто имя), существует соглашение, которое выглядит как разделенное точкой пространство имен следующей формы:
• 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.
Примером такого имени является Отладчик.Models.Process. Это имя, в котором регистрируется понятие отладчика процесса. Клиент, который расширяет процесс и сам является расширяемым, может зарегистрировать свою точку расширяемости в качестве отладчика.Models.Process.NamedExtensionPoint, где NamedExtensionPoint ссылается на семантику, добавляемую в процесс.
Обратите внимание, что если определенная модель данных зарегистрирована под именем, реализация IDataModelConcept для этой модели данных должна иметь метод GetName, который возвращает имя, зарегистрированное с помощью вызова этого метода RegisterNamedModel.
Синтаксис
HRESULT RegisterNamedModel(
PCWSTR modelName,
IModelObject *modeObject
);
Параметры
modelName
Корневое пространство имен модели данных возвращается здесь.
modeObject
Зарегистрированная модель данных.
Возвращаемое значение
Этот метод возвращает HRESULT, указывающий на успех или сбой.
Замечания
пример кода
ComPtr<IDataModelManager3> 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
}
}
Требования
| Требование | Ценность |
|---|---|
| заголовка | dbgmodel.h |