IDataModelManager::GetModelForType-Methode (dbgmodel.h)
Die GetModelForType-Methode gibt das Datenmodell zurück, das die kanonische Schnellansicht für einen bestimmten Typ instance ist. Tatsächlich findet diese Methode die am besten übereinstimmende Typsignatur, die mit einem vorherigen Aufruf der RegisterModelForTypeSignature-Methode registriert wurde, und gibt das zugeordnete Datenmodell zurück.
Syntax
HRESULT GetModelForType(
IDebugHostType *type,
IModelObject **dataModel,
IDebugHostTypeSignature **typeSignature,
IDebugHostSymbolEnumerator **wildcardMatches
);
Parameter
type
Der konkrete Typ instance, für den die beste übereinstimmende kanonische Schnellansicht gefunden werden soll, die über einen vorherigen Aufruf der RegisterModelForTypeSignature-Methode registriert wurde.
dataModel
Das Datenmodell, bei dem es sich um die kanonische Visualisierung für den angegebenen Typ handelt, instance durch die beste übereinstimmende Typsignatur bestimmt, die über einen vorherigen Aufruf von RegisterModelForTypeSignature registriert wurde, wird hier zurückgegeben. Dieses Datenmodell wird automatisch an jedes systemeigene/sprachbasierte Objekt angefügt, das mit dem vom Type-Argument angegebenen Typ erstellt wurde.
typeSignature
Die Typsignatur, deren Übereinstimmung mit dem Typ führte dazu, dass wir das Datenmodell zurückgeben, das von einem vorherigen Aufruf von RegisterModelForTypeSignature mit der zurückgegebenen Typsignatur registriert wurde.
wildcardMatches
Wenn in der Signatur Im argument typeSignature zurückgegebene Feldhalter vorhanden sind, wird hier ein Enumerator aller Übereinstimmungen zwischen den Feldhaltern und dem im Type-Argument angegebenen konkreten Typ instance zurückgegeben.
Rückgabewert
Diese Methode gibt HRESULT zurück, das auf Erfolg oder Fehler hinweist.
Hinweise
Beispielcode
ComPtr<IDataModelManager> spManager; /* get the data model manager */
ComPtr<IDebugHostModule> spModule; /* get a module */
// Find the type of "MyType<int>" within the module
ComPtr<IDebugHostType> spType;
if (SUCCEEDED(spModule->FindTypeByName(L"MyType<int>", &spType)))
{
// Find the canonical visualizer which would be applied to MyType<int>
ComPtr<IModelObject> spDataModel;
ComPtr<IDebugHostTypeSignature> spSignature;
ComPtr<IDebugHostSymbolEnumerator> spWildcardMatches;
if (SUCCEEDED(spManager->GetModelForType(spType.Get(),
&spDataModel,
&spSignature,
&spWildcardMatches)))
{
// There is a visualizer which matched.
// spDataModel is the data model object which was registered as
// the canonical visualizer (RegisterModelForTypeSignature)
// spSignature is the signature which that data model was registered
// against (e.g.: created for MyType<*> via
// CreateTypeSignature/RegisterModelForTypeSignature)
// spWildcardMatches is an enumerator of the wildcard matches between
// the specific type spType and the signature spSignature (here
// int matched *, so there will be one item -- the type 'int' in
// the enumerator)
}
Anforderungen
Anforderung | Wert |
---|---|
Header | dbgmodel.h |