Condividi tramite


IDebugProgramPublisher2

Questa interfaccia consente un motore di (DE) debug o i fornitori di porte personalizzate ai programmi di registro per eseguire il debug.

IDebugProgramPublisher2 : IUnknown

Note per gli implementatori

Visual Studio implementa questa interfaccia per registrare i programmi in corso il debug per renderli visibili per eseguire il debug tra più processi.

Note per i chiamanti

funzione di CoCreateInstance di chiamata COM con CLSID_ProgramPublisher per ottenere questa interfaccia (vedere l'esempio). Un DE o un fornitore di porte personalizzato utilizza questa interfaccia per registrare i nodi di programma che rappresentano i programmi in corso il debug.

Metodi nell'ordine di Vtable

Questa interfaccia implementa i metodi seguenti:

Metodo

Descrizione

IDebugProgramPublisher2:: PublishProgramNode

Rende disponibile un nodo di programma DES amministratore (SDM) e di debug della sessione.

IDebugProgramPublisher2:: UnpublishProgramNode

rimuove un nodo di programma in modo che non sia più disponibile.

IDebugProgramPublisher2:: PublishProgram

Rende disponibile un programma di DES e di SDM.

IDebugProgramPublisher2:: UnpublishProgram

Rimuove un programma in modo da non sarà più disponibile.

IDebugProgramPublisher2:: SetDebuggerPresent

Impostare un flag che indica che un debugger è presente.

Note

Questa interfaccia rende disponibili i programmi e i nodi di programma (ovvero “li pubblica„) per l'utilizzo da parte del DES amministratore (SDM) e di debug della sessione. Per accedere ai programmi e i nodi pubblicati di programma, utilizzare IDebugProgramProvider2 l'interfaccia. Questo è l'unico modo che Visual Studio possibile riconoscere che un programma sta eseguendo il debug.

Requisiti

intestazione: msdbg.h

Spazio dei nomi: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

Esempio

In questo esempio viene illustrato come creare un'istanza dell'editore del programma e registrare un nodo di programma. Questa operazione viene eseguita nell'esercitazione 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");
}

Vedere anche

Riferimenti

IDebugProgramProvider2

Concetti

interfacce principali