IDataModelManager2::GetModelForType-Methode (dbgmodel.h)
Die GetModelForType-Methode gibt das Datenmodell zurück, das die kanonische Schnellansicht für einen bestimmten Typ instance. 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 am besten übereinstimmende kanonische Schnellansicht gefunden werden kann, die über einen vorherigen Aufruf der RegisterModelForTypeSignature-Methode registriert wurde.
dataModel
Das Datenmodell, bei dem es sich um die kanonische Schnellansicht für den angegebenen Typ instance, der durch die beste übereinstimmende Typsignatur bestimmt wird, die über einen vorherigen Aufruf von RegisterModelForTypeSignature registriert wurde, wird hier zurückgegeben. Dieses Datenmodell wird automatisch an alle nativen/sprachspezifischen Objekte angefügt, die mit dem vom Typargument angegebenen Typ erstellt wurden.
typeSignature
Die Typsignatur, deren Übereinstimmung mit dem Typ bewirkt hat, 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, die im argument typeSignature zurückgegeben wird, Wildcards vorhanden sind, wird hier ein Enumerator aller Übereinstimmungen zwischen den Wildcards und dem konkreten Typ instance zurückgegeben, der im type-Argument angegeben ist.
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<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 |