Compartilhar via


Método IDataModelManager::GetModelForType (dbgmodel.h)

O método GetModelForType retorna o modelo de dados que é o visualizador canônico para uma determinada instância de tipo. Na verdade, esse método localiza a melhor assinatura de tipo de correspondência que foi registrada com uma chamada anterior para o 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 a 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 retornados no argumento typeSignature, um enumerador de todas as correspondências entre os curingas e a instância de tipo concreto fornecida no argumento type será retornado aqui.

Retornar valor

Esse método retorna HRESULT que indica êxito ou falha.

Comentários

Código de exemplo

ComPtr<IDataModelManager> 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

Confira também

Interface IDataModelManager