Sdílet prostřednictvím


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

Viz také