IDataModelManager::GetModelForTypeSignature-Methode (dbgmodel.h)
Die GetModelForTypeSignature-Methode gibt das Datenmodell zurück, das für eine bestimmte Typsignatur über einen vorherigen Aufruf der RegisterModelForTypeSignature-Methode registriert wurde. Das von dieser Methode zurückgegebene Datenmodell gilt als kanonische Schnellansicht für jeden Typ, der der übergebenen Typsignatur entspricht. Als kanonische Schnellansicht übernimmt dieses Datenmodell die Anzeige des Typs. Anzeige-Engines blenden standardmäßig native/sprachbasierte 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 Schnellansicht registriert wird. Jedes Objekt, das mit einem nativen/Sprachtyp erstellt wurde, der mit der Signatur übereinstimmt (und für das keine besser übereinstimmende Typsignatur vorhanden ist), wird automatisch das zurückgegebene Datenmodell als übergeordnetes Element angefügt.
dataModel
Das Datenmodell, das als kanonische Schnellansicht für alle Typinstanzen registriert ist, die der angegebenen Typsignatur entsprechen (und für die es keine besser übereinstimmende Typsignatur gibt).
Rückgabewert
Diese Methode gibt HRESULT zurück, das den Erfolg oder Fehler angibt.
Hinweise
Beispielcode
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.
}
}
}
}
Anforderungen
Anforderung | Wert |
---|---|
Header | dbgmodel.h |