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 |
---|---|
Rende disponibile un nodo di programma DES amministratore (SDM) e di debug della sessione. |
|
rimuove un nodo di programma in modo che non sia più disponibile. |
|
Rende disponibile un programma di DES e di SDM. |
|
Rimuove un programma in modo da non sarà più disponibile. |
|
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");
}