IDataModelManager3::GetModelForType-Methode (dbgmodel.h)
Die GetModelForType-Methode gibt das Datenmodell zurück, das die kanonische Visualisierung für eine bestimmte Typinstanz ist. Tatsächlich findet diese Methode die beste Übereinstimmungstypsignatur, 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
Die konkrete Typinstanz, für die die besten passenden kanonischen Visualisierungen über einen vorherigen Aufruf der RegisterModelForTypeSignature-Methode registriert werden.
dataModel
Das Datenmodell, das der kanonische Visualizer für die angegebene Typinstanz ist, wie 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/spracheigene Objekt angefügt, das mit dem durch das Typargument angegebenen Typ erstellt wurde.
typeSignature
Die Typsignatur, deren Übereinstimmung mit dem Typ uns veranlasst hat, das datenmodell zurückzugeben, das von einem vorherigen Aufruf von RegisterModelForTypeSignature mit der zurückgegebenen Typsignatur registriert wurde.
wildcardMatches
Wenn in der Signatur im Argument "typeSignature" Ein Enumerator aller Übereinstimmungen zwischen den Wildcards und der konkreten Typinstanz im Argument type zurückgegeben wird, wird hier ein Enumerationszeichen aller Übereinstimmungen zurückgegeben.
Rückgabewert
Diese Methode gibt HRESULT zurück, das Erfolg oder Fehler angibt.
Bemerkungen
Beispielcode-
ComPtr<IDataModelManager3> 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 |