IDebugProgramPublisher2
這個介面允許偵錯引擎 (DE) 或自訂的通訊埠供應商註冊偵錯的程式。
IDebugProgramPublisher2 : IUnknown
實作器注意事項
Visual Studio 會實作這個介面來註冊以使其可見的偵錯多個處理序偵錯的程式。
呼叫者的備忘稿
呼叫 COM 的CoCreateInstance函式與CLSID_ProgramPublisher以取得此介面 (請參閱範例)。 將 DE 或自訂的連接埠提供者使用這個介面,來登錄程式節點代表偵錯的程式。
方法 Vtable 順序
這個介面會實作下列方法:
方法 |
描述 |
---|---|
讓程式節點使用 DEs 及工作階段偵錯管理員 (SDM)。 |
|
使其不再可用,請移除程式] 節點。 |
|
讓程式可以使用 DEs 及 SDM。 |
|
移除程式,因此就不會再使用。 |
|
設定旗標,表示偵錯工具已存在。 |
備註
這個介面讓程式及程式的節點 (也就是 「 發行 」) 使用 DEs 」 和 「 工作階段偵錯管理員 」 (SDM)。 若要存取已發行的程式和程式的節點,請使用IDebugProgramProvider2介面。 這是 Visual Studio 的可辨識的程式正在偵錯的唯一方法。
需求
標頭: msdbg.h
Namespace: Microsoft.VisualStudio.Debugger.Interop
組件: Microsoft.VisualStudio.Debugger.Interop.dll
範例
本範例將示範如何具現化程式發行者,並登錄程式] 節點。 這取自教學課程中, Publishing the Program Node。
// 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");
}