Método IDataModelManager3::GetModelForType (dbgmodel.h)
O método GetModelForType retorna o modelo de dados que é o visualizador canônico de uma determinada instância de tipo. Na verdade, esse método encontra a melhor assinatura de tipo de correspondência que foi registrada com uma chamada anterior ao método RegisterModelForTypeSignature e retorna o modelo de dados associado.
Sintaxe
HRESULT GetModelForType(
IDebugHostType *type,
IModelObject **dataModel,
IDebugHostTypeSignature **typeSignature,
IDebugHostSymbolEnumerator **wildcardMatches
);
Parâmetros
type
A instância de tipo concreto para a qual encontrar o melhor visualizador canônico correspondente registrado por meio de uma chamada anterior ao método RegisterModelForTypeSignature.
dataModel
O modelo de dados que é o visualizador canônico para a instância de tipo determinada, conforme determinado pela melhor assinatura de tipo correspondente registrada por meio de uma chamada anterior para RegisterModelForTypeSignature, será retornado aqui. Esse modelo de dados será anexado automaticamente a qualquer objeto nativo/idioma criado com o tipo especificado pelo argumento type.
typeSignature
A assinatura de tipo cuja correspondência com o tipo nos fez retornar o modelo de dados registrado de uma chamada anterior para RegisterModelForTypeSignature com a assinatura de tipo retornada.
wildcardMatches
Se houver caracteres curinga na assinatura retornada no argumento typeSignature, um enumerador de todas as correspondências entre os caracteres curingas e a instância de tipo concreto fornecido no argumento type será retornado aqui.
Valor de retorno
Esse método retorna HRESULT que indica êxito ou falha.
Observações
de código de exemplo
ComPtr<IDataModelManager3> spManager; /* get the data model manager */
ComPtr<IDebugHostModule> spModule; /* get a module */
// Find the type of "MyType<int>" within the module
ComPtr<IDebugHostType> spType;
if (SUCCEEDED(spModule->FindTypeByName(L"MyType<int>", &spType)))
{
// Find the canonical visualizer which would be applied to MyType<int>
ComPtr<IModelObject> spDataModel;
ComPtr<IDebugHostTypeSignature> spSignature;
ComPtr<IDebugHostSymbolEnumerator> spWildcardMatches;
if (SUCCEEDED(spManager->GetModelForType(spType.Get(),
&spDataModel,
&spSignature,
&spWildcardMatches)))
{
// There is a visualizer which matched.
// spDataModel is the data model object which was registered as
// the canonical visualizer (RegisterModelForTypeSignature)
// spSignature is the signature which that data model was registered
// against (e.g.: created for MyType<*> via
// CreateTypeSignature/RegisterModelForTypeSignature)
// spWildcardMatches is an enumerator of the wildcard matches between
// the specific type spType and the signature spSignature (here
// int matched *, so there will be one item -- the type 'int' in
// the enumerator)
}
Requisitos
Requisito | Valor |
---|---|
cabeçalho | dbgmodel.h |
Consulte também
interface IDataModelManager3