Condividi tramite


Metodo IDataModelManager::GetModelForTypeSignature (dbgmodel.h)

Il metodo GetModelForTypeSignature restituisce il modello di dati registrato su una determinata firma di tipo tramite una chiamata precedente al metodo RegisterModelForTypeSignature. Il modello di dati restituito da questo metodo viene considerato il visualizzatore canonico per qualsiasi tipo che corrisponde alla firma del tipo passato. Come visualizzatore canonico, tale modello di dati assume la visualizzazione del tipo. Per impostazione predefinita, i motori di visualizzazione nasconderanno costrutti nativi/linguistici dell'oggetto a favore della visualizzazione dell'oggetto presentato dal modello di dati.

Sintassi

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

Parametri

typeSignature

Firma del tipo per cui dataModel verrà registrato come visualizzatore canonico. Qualsiasi oggetto creato con un tipo nativo/lingua che corrisponde alla firma (e per cui non esiste una firma del tipo di corrispondenza migliore) avrà automaticamente il modello di dati restituito associato come elemento padre.

dataModel

Modello di dati registrato come visualizzatore canonico per tutte le istanze di tipo che corrispondono alla firma del tipo specificato (e per cui non esiste una firma del tipo corrispondente migliore.

Valore restituito

Questo metodo restituisce HRESULT che indica l'esito positivo o negativo.

Osservazioni

codice di esempio

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.
            }
        }
    }
}

Fabbisogno

Requisito Valore
intestazione dbgmodel.h

Vedere anche

'interfaccia IDataModelManager