Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten interfejs umożliwia aparatowi debugowania (DE) lub niestandardowym dostawcom portów rejestrowanie programów na potrzeby debugowania.
Składnia
IDebugProgramPublisher2 : IUnknown
Uwagi dotyczące implementacji
Program Visual Studio implementuje ten interfejs w celu rejestrowania debugowanych programów w celu uwidoczniania ich do debugowania w wielu procesach.
Uwagi dotyczące wywoływania
Wywołaj funkcję COM CoCreateInstance za pomocą CLSID_ProgramPublisher polecenia , aby uzyskać ten interfejs (zobacz przykład). De lub niestandardowy dostawca portów używa tego interfejsu do rejestrowania węzłów programu reprezentujących debugowane programy.
Metody w kolejności Vtable
Ten interfejs implementuje następujące metody:
| Metoda | opis |
|---|---|
| PublishProgramNode | Udostępnia węzeł programu dla kontrolerów danych i menedżera debugowania sesji (SDM). |
| UnpublishProgramNode | Usuwa węzeł programu, aby nie był już dostępny. |
| PublishProgram | Udostępnia program DE i SDM. |
| UnpublishProgram | Usuwa program, aby nie był już dostępny. |
| SetDebuggerPresent | Ustawia flagę wskazującą, że debuger jest obecny. |
Uwagi
Ten interfejs udostępnia programy i węzły programu (czyli "publikuje" je) do użycia przez kontrolery domeny i menedżera debugowania sesji (SDM). Aby uzyskać dostęp do opublikowanych programów i węzłów programu, użyj interfejsu IDebugProgramProvider2 . Jest to jedyny sposób, w jaki program Visual Studio może rozpoznać, że program jest debugowany.
Wymagania
Nagłówek: msdbg.h
Przestrzeń nazw: Microsoft.VisualStudio.Debugger.Interop
Zestaw: Microsoft.VisualStudio.Debugger.Interop.dll
Przykład
W tym przykładzie pokazano, jak utworzyć wystąpienie wydawcy programu i zarejestrować węzeł programu. Jest to pobierane z samouczka publikowania węzła 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");
}