Freigeben über


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

Siehe auch

IDataModelManager3-Schnittstelle