Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Antarmuka terdaftar ini memungkinkan manajer debug sesi (SDM) untuk mendapatkan informasi tentang program yang telah "diterbitkan" melalui antarmuka IDebugProgramPublisher2 .
Sintaks
IDebugProgramProvider2 : IUnknown
Catatan untuk Pelaksana
Mesin debug (DE) mengimplementasikan antarmuka ini untuk memberikan informasi tentang program yang sedang di-debug. Antarmuka ini terdaftar di bagian DE registri menggunakan metrik metricProgramProvider, seperti yang dijelaskan dalam Bantuan SDK untuk Debugging.
Catatan untuk Penelepon
Panggil fungsi COM CoCreateInstance dengan CLSID penyedia program yang diperoleh dari registri. Lihat Contoh.
Metode dalam urutan Vtable
| Metode | Deskripsi |
|---|---|
| GetProviderProcessData | Mendapatkan informasi tentang program yang berjalan, difilter dengan berbagai cara. |
| GetProviderProgramNode | Mendapatkan simpul program, mengingat ID proses tertentu. |
| WatchForProviderEvents | Menetapkan panggilan balik untuk mengawasi peristiwa penyedia yang terkait dengan jenis proses tertentu. |
| SetLocale | Menetapkan lokal untuk sumber daya khusus bahasa apa pun yang diperlukan oleh DE. |
Keterangan
Biasanya, proses menggunakan antarmuka ini untuk mencari tahu tentang program yang berjalan dalam proses tersebut.
Persyaratan
Header: msdbg.h
Namespace: Microsoft.VisualStudio.Debugger.Interop
Rakitan: Microsoft.VisualStudio.Debugger.Interop.dll
Contoh
IDebugProgramProvider2 *GetProgramProvider(GUID *pDebugEngineGuid)
{
// This is typically defined globally. For this example, it is
// defined here.
static const WCHAR strRegistrationRoot[] = L"Software\\Microsoft\\VisualStudio\\8.0Exp";
IDebugProgramProvider2 *pProvider = NULL;
if (pDebugEngineGuid != NULL) {
CLSID clsidProvider = { 0 };
::GetMetric(NULL,
metrictypeEngine,
*pDebugEngineGuid,
metricProgramProvider,
&clsidProvider,
strRegistrationRoot);
if (!IsEqualGUID(clsidProvider,GUID_NULL)) {
CComPtr<IDebugProgramProvider2> spProgramProvider;
spProgramProvider.CoCreateInstance(clsidProvider);
if (spProgramProvider != NULL) {
pProvider = spProgramProvider.Detach();
}
}
}
return(pProvider);
}