IDataModelManager3::GetModelForTypeSignature-Methode (dbgmodel.h)
Die GetModelForTypeSignature-Methode gibt das Datenmodell zurück, das über einen vorherigen Aufruf der RegisterModelForTypeSignature-Methode für eine bestimmte Typsignatur registriert wurde. Das von dieser Methode zurückgegebene Datenmodell wird als kanonischer Visualizer für jeden Typ betrachtet, der der übergebenen Typsignatur entspricht. Als kanonische Visualisierung übernimmt dieses Datenmodell die Anzeige des Typs. Anzeigemodule blenden standardmäßig systemeigene/spracheigene Konstrukte des Objekts zugunsten der Ansicht des Objekts aus, das vom Datenmodell dargestellt wird.
Syntax
HRESULT GetModelForTypeSignature(
IDebugHostTypeSignature *typeSignature,
IModelObject **dataModel
);
Parameter
typeSignature
Eine Typsignatur, für die dataModel als kanonische Visualisierung registriert wird. Jedes Objekt, das mit einem systemeigenen/spracheigenen Typ erstellt wurde, der der Signatur entspricht (und für die keine bessere Übereinstimmungstypsignatur vorhanden ist), wird automatisch das zurückgegebene Datenmodell als übergeordnetes Element angefügt.
dataModel
Das Datenmodell, das als kanonische Visualisierung für alle Typinstanzen registriert ist, die der angegebenen Typsignatur entsprechen und für die keine bessere Übereinstimmungstypsignatur vorhanden ist.
Rückgabewert
Diese Methode gibt HRESULT zurück, das Erfolg oder Fehler angibt.
Bemerkungen
Beispielcode-
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.
}
}
}
}
Anforderungen
Anforderung | Wert |
---|---|
Header- | dbgmodel.h |