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 ini memungkinkan mesin debug (DE) atau pemasok port kustom untuk mendaftarkan program untuk penelusuran kesalahan.
Sintaks
IDebugProgramPublisher2 : IUnknown
Catatan untuk Pelaksana
Visual Studio mengimplementasikan antarmuka ini untuk mendaftarkan program yang di-debug untuk membuatnya terlihat untuk penelusuran kesalahan di beberapa proses.
Catatan untuk Penelepon
Panggil fungsi COM CoCreateInstance dengan CLSID_ProgramPublisher untuk mendapatkan antarmuka ini (lihat Contoh). DE atau pemasok port kustom menggunakan antarmuka ini untuk mendaftarkan simpul program yang mewakili program yang sedang di-debug.
Metode dalam urutan Vtable
Antarmuka ini mengimplementasikan metode berikut:
| Metode | Deskripsi |
|---|---|
| PublishProgramNode | Membuat simpul program tersedia untuk DEs dan manajer debug sesi (SDM). |
| Batal terbitkanProgramNode | Menghapus simpul program agar tidak lagi tersedia. |
| PublishProgram | Membuat program tersedia untuk DEs dan SDM. |
| Batalkan penerbitanProgram | Menghapus program sehingga tidak lagi tersedia. |
| SetDebuggerPresent | Mengatur bendera yang menunjukkan bahwa debugger ada. |
Keterangan
Antarmuka ini membuat program dan simpul program tersedia (yaitu, "menerbitkan" mereka) untuk digunakan oleh DEs dan manajer debug sesi (SDM). Untuk mengakses program dan simpul program yang diterbitkan, gunakan antarmuka IDebugProgramProvider2 . Ini adalah satu-satunya cara Visual Studio dapat mengenali bahwa program sedang di-debug.
Persyaratan
Header: msdbg.h
Namespace: Microsoft.VisualStudio.Debugger.Interop
Rakitan: Microsoft.VisualStudio.Debugger.Interop.dll
Contoh
Contoh ini menunjukkan cara membuat instans penerbit program dan mendaftarkan simpul program. Ini diambil dari Tutorial, Menerbitkan Simpul Program.
// This is how m_srpProgramPublisher is defined in the class definition:
// CComPtr<IDebugProgramPublisher2> m_srpProgramPublisher.
void CProgram::Start(IDebugEngine2 * pEngine)
{
m_spEngine = pEngine;
HRESULT hr = m_srpProgramPublisher.CoCreateInstance(CLSID_ProgramPublisher);
if ( FAILED(hr) )
{
ATLTRACE("Failed to create the program publisher: 0x%x.", hr);
return;
}
// Register ourselves with the program publisher. Note that
// CProgram implements the IDebgProgramNode2 interface, hence
// the static cast on "this".
hr = m_srpProgramPublisher->PublishProgramNode(
static_cast<IDebugProgramNode2*>(this));
if ( FAILED(hr) )
{
ATLTRACE("Failed to publish the program node: 0x%x.", hr);
m_srpProgramPublisher.Release();
return;
}
ATLTRACE("Added program node.\n");
}