IDebugProgramPublisher2
Toto rozhraní umožňuje ladicí modul (DE) nebo vlastní dodavatelé portů registrovat programy pro ladění.
Syntaxe
IDebugProgramPublisher2 : IUnknown
Poznámky pro implementátory
Visual Studio implementuje toto rozhraní pro registraci laděných programů, aby je bylo možné zobrazit pro ladění napříč několika procesy.
Poznámky pro volající
Voláním funkce CLSID_ProgramPublisher
modelu COM CoCreateInstance
získáte toto rozhraní (viz příklad). De nebo vlastní dodavatel portů používá toto rozhraní k registraci programových uzlů, které představují laděné programy.
Metody v pořadí tabulky Vtable
Toto rozhraní implementuje následující metody:
metoda | Popis |
---|---|
PublishProgramNode | Zpřístupňuje programový uzel pro DEs a správce ladění relací (SDM). |
UnpublishProgramNode | Odebere uzel programu, aby už nebyl dostupný. |
PublishProgram | Zpřístupňuje program pro DES a SDM. |
UnpublishProgram | Odebere program, aby už nebyl dostupný. |
SetDebuggerPresent | Nastaví příznak označující, že je k dispozici ladicí program. |
Poznámky
Toto rozhraní zpřístupňuje programy a programové uzly (to znamená "publikuje" je) pro použití prostředími DE a správcem ladění relací (SDM). Pokud chcete získat přístup k publikovaným programům a uzlům programu, použijte rozhraní IDebugProgramProvider2 . Toto je jediný způsob, jak Sada Visual Studio rozpozná, že se program ladí.
Požadavky
Hlavička: msdbg.h
Obor názvů: Microsoft.VisualStudio.Debugger.Interop
Sestavení: Microsoft.VisualStudio.Debugger.Interop.dll
Příklad
Tento příklad ukazuje, jak vytvořit instanci vydavatele programu a zaregistrovat uzel programu. Toto je převzato z kurzu publikování uzlu programu.
// 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");
}