Share via


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

El método GetModelForTypeSignature devuelve el modelo de datos que se registró en una firma de tipo determinada a través de una llamada anterior al método RegisterModelForTypeSignature. El modelo de datos devuelto por este método se considera el visualizador canónico de cualquier tipo que coincida con la firma de tipo pasado. Como visualizador canónico, ese modelo de datos toma el control de la presentación del tipo. Los motores de visualización ocultarán de forma predeterminada construcciones nativas o de lenguaje del objeto en favor de la vista del objeto presentado por el modelo de datos.

Sintaxis

HRESULT GetModelForTypeSignature(
  IDebugHostTypeSignature *typeSignature,
  IModelObject            **dataModel
);

Parámetros

typeSignature

Firma de tipo para la que dataModel se registrará como visualizador canónico. Cualquier objeto creado con un tipo de idioma o nativo que coincida con la firma (y para el que no haya una mejor firma de tipo coincidente) tendrá automáticamente el modelo de datos devuelto asociado como elemento primario.

dataModel

El modelo de datos que se registra como visualizador canónico para todas las instancias de tipo que coinciden con la firma de tipo especificada (y para el que no hay una mejor firma de tipo coincidente.

Valor devuelto

Este método devuelve HRESULT que indica éxito o error.

Comentarios

Código de ejemplo

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->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
Header dbgmodel.h

Consulte también

Interfaz IDataModelManager