Metode IDataModelManager2::GetModelForTypeSignature (dbgmodel.h)

Metode GetModelForTypeSignature mengembalikan model data yang terdaftar terhadap tanda tangan jenis tertentu melalui panggilan sebelumnya ke metode RegisterModelForTypeSignature. Model data yang dikembalikan dari metode ini dianggap sebagai visualizer kanonis untuk jenis apa pun yang cocok dengan tanda tangan jenis yang dilewatkan. Sebagai visualizer kanonis, model data tersebut mengambil alih tampilan jenis. Mesin tampilan akan, secara default, menyembunyikan konstruksi asli/bahasa objek demi tampilan objek yang disajikan oleh model data.

Sintaks

HRESULT GetModelForTypeSignature(
  IDebugHostTypeSignature *typeSignature,
  IModelObject            **dataModel
);

Parameter

typeSignature

Tanda tangan jenis yang dataModel akan didaftarkan sebagai visualizer kanonis. Objek apa pun yang dibuat dengan jenis asli/bahasa yang cocok dengan tanda tangan (dan yang tidak ada tanda tangan jenis yang lebih cocok) akan secara otomatis memiliki model data yang dikembalikan yang dilampirkan sebagai induk.

dataModel

Model data yang terdaftar sebagai visualizer kanonis untuk semua instans jenis yang cocok dengan tanda tangan jenis yang diberikan (dan yang tidak ada tanda tangan jenis yang lebih cocok.

Nilai kembali

Metode ini mengembalikan HRESULT yang menunjukkan keberhasilan atau kegagalan.

Keterangan

Kode Sampel

ComPtr<IDataModelManager> spManager; /* get the data model manager */
ComPtr<IDebugHost> spHost;           /* get the debug host */

ComPtr<IModelObject> spDataModel;    /* create a data model (see 
                                        CreateDataModelObject) */

ComPtr<IDebugHostSymbols> spSym;
if (SUCCEEDED(spHost.As(&spSym)))
{
    // Create a signature to match MyType<*>
    ComPtr<IDebugHostTypeSignature> spTypeSignature;
    if (SUCCEEDED(spSym->CreateTypeSignature(L"MyType<*>", nullptr, &spTypeSignature)))
    {
        // Register the model for std::vector<*>
        if (SUCCEEDED(spManager->RegisterModelForTypeSignature(spTypeSignature.Get(),
                                                               spDataModel.Get()))
        {
            // Every instance matching MyType<*> will now have spDataModel 
            // attached as the parent.  Further, such parent is considered 
            // the canonical visualizer for all types matching MyType<*> since it 
            // was registered via RegisterModelForTypeSignature instead of
            // RegisterExtensionForTypeSignature.
            //
            // Demonstrate that we can find the canonical visualizer under 
            // this registration.
            ComPtr<IModelObject> spCanonicalVisualizerModel;
            if (SUCCEEDED(spManager->GetModelForTypeSignature(
                spTypeSignature.Get(), 
                &spCanonicalVisualizerModel)))
            {
                // spCanonicalVisualizerModel is the same as spDataModel since 
                // it was registered as such.
            }
        }
    }
}

Antarmuka IDataModelManager2

Persyaratan

Persyaratan Nilai
Header dbgmodel.h