IDataModelManager2::RegisterNamedModel 메서드(dbgmodel.h)
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.
이러한 이름의 예로는 Debugger.Models.Process가 있습니다. 디버거의 프로세스 개념이 등록된 이름입니다. 프로세스 자체를 확장할 수 있는 클라이언트는 확장성 지점을 Debugger.Models.Process.NamedExtensionPoint로 등록할 수 있습니다. 여기서 NamedExtensionPoint는 프로세스에 추가되는 의미 체계를 참조합니다.
지정된 데이터 모델이 이름으로 등록된 경우 해당 데이터 모델에 대한 IDataModelConcept 구현에는 이 RegisterNamedModel 메서드를 호출하여 등록된 이름을 반환하는 GetName 메서드가 있어야 합니다.
구문
HRESULT RegisterNamedModel(
PCWSTR modelName,
IModelObject *modeObject
);
매개 변수
modelName
데이터 모델의 루트 네임스페이스가 여기에 반환됩니다.
modeObject
등록할 데이터 모델입니다.
반환 값
이 메서드는 성공 또는 실패를 나타내는 HRESULT를 반환합니다.
설명
예제 코드
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
}
}
요구 사항
요구 사항 | 값 |
---|---|
헤더 | dbgmodel.h |