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.
}
}
}
}
Persyaratan
Persyaratan | Nilai |
---|---|
Header | dbgmodel.h |