Freigeben über


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

IDebugProgramPublisher2::PublishProgramNode

Legt einen Knoten Programm für den Debug- und den Manager der Sitzung (SDM).

IDebugProgramPublisher2::UnpublishProgramNode

Entfernt einen Knoten Programm, sodass er nicht mehr verfügbar ist.

IDebugProgramPublisher2::PublishProgram

Legt ein Programm DES und SDM zur Verfügung.

IDebugProgramPublisher2::UnpublishProgram

Entfernt ein Programm. Daher ist es nicht mehr verfügbar.

IDebugProgramPublisher2::SetDebuggerPresent

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");
}

Siehe auch

Referenz

IDebugProgramProvider2

Konzepte

Kern-Schnittstellen