Metode IDataModelManager2::GetModelForType (dbgmodel.h)

Metode GetModelForType mengembalikan model data yang merupakan visualizer kanonis untuk instans jenis tertentu. Akibatnya, metode ini menemukan tanda tangan jenis pencocokan terbaik yang terdaftar dengan panggilan sebelumnya ke metode RegisterModelForTypeSignature dan mengembalikan model data terkait.

Sintaks

HRESULT GetModelForType(
  IDebugHostType             *type,
  IModelObject               **dataModel,
  IDebugHostTypeSignature    **typeSignature,
  IDebugHostSymbolEnumerator **wildcardMatches
);

Parameter

type

Instans jenis konkret untuk menemukan visualizer kanonis pencocokan terbaik yang terdaftar melalui panggilan sebelumnya ke metode RegisterModelForTypeSignature.

dataModel

Model data yang merupakan visualizer kanonis untuk instans jenis yang diberikan sebagaimana ditentukan oleh tanda tangan jenis pencocokan terbaik yang terdaftar melalui panggilan sebelumnya ke RegisterModelForTypeSignature akan dikembalikan di sini. Model data ini akan secara otomatis dilampirkan ke objek asli/bahasa apa pun yang dibuat dengan jenis yang ditentukan oleh argumen jenis.

typeSignature

Tanda tangan jenis yang cocok dengan jenis menyebabkan kami mengembalikan model data yang terdaftar dari panggilan sebelumnya ke RegisterModelForTypeSignature dengan tanda tangan jenis yang dikembalikan.

wildcardMatches

Jika ada kartubebas dalam tanda tangan yang dikembalikan dalam argumen typeSignature, enumerator dari semua kecocokan antara kartubebas dan instans jenis beton yang diberikan dalam argumen jenis dikembalikan di sini.

Nilai kembali

Metode ini mengembalikan HRESULT yang menunjukkan keberhasilan atau kegagalan.

Keterangan

Kode Sampel

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)
    }

Persyaratan

Persyaratan Nilai
Header dbgmodel.h

Lihat juga

Antarmuka IDataModelManager2