Compartilhar via


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

Consulte também

interface IDataModelManager4