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 |
---|---|
Disponibiliza um nó de programa para DEs e a sessão de debug manager (SDM). |
|
Remove um nó do programa para que ele não está mais disponível. |
|
Disponibiliza um programa para o DEs e o SDM. |
|
Remove um programa para que ele não está mais disponível. |
|
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");
}