Método IDataModelManager4::GetModelForTypeSignature (dbgmodel.h)
O método GetModelForTypeSignature retorna o modelo de dados que foi registrado em uma assinatura de tipo específica por meio de uma chamada anterior ao método RegisterModelForTypeSignature. O modelo de dados retornado desse método é considerado o visualizador canônico para qualquer tipo que corresponda à assinatura de tipo passada. Como visualizador canônico, esse modelo de dados assume a exibição do tipo. Os mecanismos de exibição ocultarão, por padrão, construções nativas/de idioma do objeto em favor da exibição do objeto apresentado pelo modelo de dados.
Sintaxe
HRESULT GetModelForTypeSignature(
IDebugHostTypeSignature *typeSignature,
IModelObject **dataModel
);
Parâmetros
typeSignature
Uma assinatura de tipo para a qual dataModel será registrado como visualizador canônico. Qualquer objeto criado com um tipo nativo/idioma que corresponda à assinatura (e para o qual não há uma assinatura de tipo de correspondência melhor) terá automaticamente o modelo de dados retornado anexado como pai.
dataModel
O modelo de dados que é registrado como visualizador canônico para todas as instâncias de tipo que correspondem à assinatura de tipo determinada (e para a qual não há melhor assinatura de tipo correspondente.
Valor de retorno
Esse método retorna HRESULT que indica êxito ou falha.
Observações
de código de exemplo
ComPtr<IDataModelManager4> 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->RegisterModelForTypeSignature(spTypeSignature.Get(),
spDataModel.Get()))
{
// Every instance matching MyType<*> will now have spDataModel
// attached as the parent. Further, such parent is considered
// the canonical visualizer for all types matching MyType<*> since it
// was registered via RegisterModelForTypeSignature instead of
// RegisterExtensionForTypeSignature.
//
// Demonstrate that we can find the canonical visualizer under
// this registration.
ComPtr<IModelObject> spCanonicalVisualizerModel;
if (SUCCEEDED(spManager->GetModelForTypeSignature(
spTypeSignature.Get(),
&spCanonicalVisualizerModel)))
{
// spCanonicalVisualizerModel is the same as spDataModel since
// it was registered as such.
}
}
}
}
Requisitos
Requisito | Valor |
---|---|
cabeçalho | dbgmodel.h |