IDebugProgramPublisher2
Diese Schnittstelle ermöglicht eine Debug- Modul (DE) oder benutzerdefinierte Anschlusslieferanten zu registrierende programmen für das Debuggen.
IDebugProgramPublisher2 : IUnknown
Hinweise für Implementierer
Visual Studio implementiert diese Schnittstelle, um Programme zu registrieren, die gedebuggt werden, dass sie sichtbar zu machen zum Debuggen über mehre Prozesse hinweg erhalten bleiben.
Hinweise für Aufrufer
CoCreateInstance-Funktion des Aufrufs COM mit CLSID_ProgramPublisher , zum Abrufen dieser Schnittstelle (siehe Beispiel). DE lieferant oder einen benutzerdefinierten Port verwendet diese Schnittstelle, um Knoten Programm zu registrieren, die die Programme darstellen, die gedebuggt werden.
Methoden in die Vtable-Reihenfolge
Diese Schnittstelle implementiert die folgenden Methoden:
Methode |
Beschreibung |
---|---|
Legt einen Knoten Programm für den Debug- und den Manager der Sitzung (SDM). |
|
Entfernt einen Knoten Programm, sodass er nicht mehr verfügbar ist. |
|
Legt ein Programm DES und SDM zur Verfügung. |
|
Entfernt ein Programm. Daher ist es nicht mehr verfügbar. |
|
Legt ein Flag fest, das angibt, dass ein Debugger vorhanden ist. |
Hinweise
Diese Schnittstelle macht Programme und Programmierung verfügbaren Knoten (d. h. „veröffentlicht sie“), die für den Debug- und den Manager der Sitzung (SDM). Um veröffentlichte Programm Programme und Knoten zuzugreifen, verwenden Sie die IDebugProgramProvider2-Schnittstelle. Dies ist die einzige Möglichkeit, die Visual Studio erkennen kann, dass ein Programm gedebuggt wird.
Anforderungen
Header: msdbg.h
Namespace: Microsoft.VisualStudio.Debugger.Interop
Assembly: Microsoft.VisualStudio.Debugger.Interop.dll
Beispiel
Dieses Beispiel zeigt, wie Sie den Herausgeber des Programms und instanziiert einen Knoten Programm registriert. Dies wird vom Lernprogramm, Publishing the Program Nodeübernommen.
// 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");
}