Partilhar via


IDebugProgramPublisher2

Essa interface permite que um mecanismo de depuração (DE) ou fornecedores de porta personalizada para registrar os programas para depuração.

IDebugProgramPublisher2 : IUnknown

Observações para Implementadores

Visual Studio implementa essa interface para registrar os programas que está sendo depurados para torná-los visíveis para depuração em vários processos.

Observações para chamadores

Chamar COM CoCreateInstance funcionar com o CLSID_ProgramPublisher para obter essa interface (veja o exemplo). Um fornecedor de porta personalizada ou um DE usa essa interface para registrar a nós de programa que representam os programas que está sendo depurados.

Métodos na ordem de Vtable

Essa interface implementa os seguintes métodos:

Método

Descrição

IDebugProgramPublisher2::PublishProgramNode

Disponibiliza um nó de programa para DEs e a sessão de debug manager (SDM).

IDebugProgramPublisher2::UnpublishProgramNode

Remove um nó do programa para que ele não está mais disponível.

IDebugProgramPublisher2::PublishProgram

Disponibiliza um programa para o DEs e o SDM.

IDebugProgramPublisher2::UnpublishProgram

Remove um programa para que ele não está mais disponível.

IDebugProgramPublisher2::SetDebuggerPresent

Define um sinalizador que indica que um depurador está presente.

Comentários

Essa interface disponibiliza programas e nós de programa (ou seja, "publica"-los) para uso por DEs e o Gerenciador de sessão de depuração (SDM). Para acessar programas publicados e nós de programa, use o IDebugProgramProvider2 interface. Isso é a única maneira de que Visual Studio pode reconhecer que um programa está sendo depurado.

Requisitos

Cabeçalho: msdbg.h

Namespace: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

Exemplo

Este exemplo mostra como criar uma instância do Editor do programa e registrar um nó do programa. Isso é obtido do Tutorial do 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");
}

Consulte também

Referência

IDebugProgramProvider2

Conceitos

Interfaces principais