IDataModelManager::RegisterExtensionForTypeSignature 메서드(dbgmodel.h)
RegisterExtensionForTypeSignature 메서드는 한 가지 주요 차이점이 있는 RegisterModelForTypeSignature 메서드와 유사합니다. 이 메서드에 전달되는 데이터 모델은 형식에 대한 정식 시각화 도우미가 아니며 해당 형식의 네이티브/언어 뷰 표시를 인수하지 않습니다. 이 메서드에 전달되는 데이터 모델은 제공된 형식 서명과 일치하는 구체적인 형식에 부모로 자동으로 추가됩니다.
RegisterModelForTypeSignature 메서드와 달리 지정된 형식(또는 형식 집합)에 대한 확장으로 등록되는 동일하거나 모호한 형식 서명에는 제한이 없습니다. 형식 서명이 지정된 구체적인 형식 instance 일치하는 모든 확장은 이 메서드를 통해 등록된 데이터 모델이 새로 만든 개체에 부모 모델로 자동으로 연결됩니다. 실제로 임의 수의 클라이언트가 새 필드 또는 기능으로 형식(또는 형식 집합)을 확장할 수 있습니다.
구문
HRESULT RegisterExtensionForTypeSignature(
IDebugHostTypeSignature *typeSignature,
IModelObject *dataModel
);
매개 변수
typeSignature
제공된 데이터 모델이 확장으로 등록될 형식 서명입니다. 구체적인 형식이 이 서명과 일치하는 모든 네이티브/언어 개체에는 지정된 데이터 모델이 부모 모델로 자동으로 연결됩니다.
dataModel
제공된 형식 서명과 일치하는 구체적인 형식을 가진 모든 네이티브/언어 개체에 부모 모델로 자동으로 추가되는 데이터 모델입니다.
반환 값
이 메서드는 성공 또는 실패를 나타내는 HRESULT를 반환합니다.
설명
예제 코드
ComPtr<IDataModelManager> spManager; /* get the data model manager */
ComPtr<IDebugHost> spHost; /* get the debug host */
ComPtr<IModelObject> spDataModel; /* create a data model (see
CreateDataModelObject) */
ComPtr<IDebugHostSymbols> spSym;
if (SUCCEEDED(spHost.As(&spSym)))
{
// Create a signature to match MyType<*>
ComPtr<IDebugHostTypeSignature> spTypeSignature;
if (SUCCEEDED(spSym->CreateTypeSignature(L"MyType<*>", nullptr, &spTypeSignature)))
{
// Register the model for std::vector<*>
if (SUCCEEDED(spManager->RegisterExtensionForTypeSignature(
spTypeSignature.Get(),
spDataModel.Get())
)
{
// Every instance matching MyType<*> will now have spDataModel
// attached as the parent. This data model is considered an "extension"
// (adding properties). It will not be counted as a visualizer and
// will not "take over" the display of the type
}
}
}
요구 사항
요구 사항 | 값 |
---|---|
헤더 | dbgmodel.h |