Compartilhar via


IDebugProgramPublisher2

Essa interface permite que um mecanismo de depuração (DE) ou fornecedores de portas personalizadas registrem programas para depuração.

Sintaxe

IDebugProgramPublisher2 : IUnknown

Notas para implementadores

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

Observações para chamadores

Chame a função COM CoCreateInstance com CLSID_ProgramPublisher para obter essa interface (consulte o Exemplo). Um DE ou um fornecedor de porta personalizado usa essa interface para registrar nós de programa que representam programas que estão sendo depurados.

Métodos em ordem Vtable

Essa interface implementa os seguintes métodos:

Método Descrição
PublishProgramNode Disponibiliza um nó de programa para DEs e o gerenciador de depuração de sessão (SDM).
UnpublishProgramNode Remove um nó de programa para que ele não esteja mais disponível.
PublishProgram Disponibiliza um programa para DEs e SDM.
UnpublishProgram Remove um programa para que ele não esteja mais disponível.
SetDebuggerPresent Define um sinalizador indicando que um depurador está presente.

Comentários

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

Requisitos

Cabeçalho: msdbg.h

Espaço para nome: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

Exemplo

Este exemplo mostra como instanciar o editor do programa e registrar um nó do programa. Isso é retirado do Tutorial, Publicando o nó do programa.

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

Confira também