Compartir a través de


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

El método GetModelForTypeSignature devuelve el modelo de datos registrado en una firma de tipo determinada a través de una llamada anterior al método RegisterModelForTypeSignature. El modelo de datos devuelto desde este método se considera el visualizador canónico para cualquier tipo que coincida con la firma de tipo pasada. 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

Una 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 firma de tipo coincidente mejor) tendrá automáticamente el modelo de datos devuelto asociado como elemento primario.

dataModel

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 la que no hay mejor firma de tipo coincidente.

Valor devuelto

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

Observaciones

de código de ejemplo

ComPtr<IDataModelManager3> 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
encabezado de dbgmodel.h

Consulte también

de interfaz IDataModelManager3 de