Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 |