Sdílet prostřednictvím


IDebugProgramProvider2

Toto registrované rozhraní umožňuje správci ladění relace (SDM) získat informace o programech, které byly "publikovány" prostřednictvím rozhraní IDebugProgramPublisher2 .

Syntaxe

IDebugProgramProvider2 : IUnknown

Poznámky pro implementátory

Ladicí modul (DE) implementuje toto rozhraní, které poskytuje informace o laděných programech. Toto rozhraní je registrováno v části DE registru pomocí metriky metricProgramProvider, jak je popsáno v pomocných rutinách sady SDK pro ladění.

Poznámky pro volající

Volejte funkci modelu COM CoCreateInstance s CLSID poskytovatelem programu, který je získán z registru. Podívejte se na příklad.

Metody v pořadí tabulky Vtable

metoda Popis
GetProviderProcessData Získá informace o spuštěných programech filtrovaných různými způsoby.
GetProviderProgramNode Získá programový uzel vzhledem ke konkrétnímu ID procesu.
WatchForProviderEvents Vytvoří zpětné volání, které bude sledovat události zprostředkovatele přidružené ke konkrétním druhům procesů.
SetLocale Vytvoří národní prostředí pro všechny prostředky specifické pro jazyk, které potřebuje de.

Poznámky

Proces obvykle používá toto rozhraní k zjištění programů spuštěných v tomto procesu.

Požadavky

Hlavička: msdbg.h

Obor názvů: Microsoft.VisualStudio.Debugger.Interop

Sestavení: Microsoft.VisualStudio.Debugger.Interop.dll

Příklad

IDebugProgramProvider2 *GetProgramProvider(GUID *pDebugEngineGuid)
{
    // This is typically defined globally. For this example, it is
    // defined here.
    static const WCHAR strRegistrationRoot[] = L"Software\\Microsoft\\VisualStudio\\8.0Exp";
    IDebugProgramProvider2 *pProvider = NULL;
    if (pDebugEngineGuid != NULL) {
        CLSID clsidProvider = { 0 };
        ::GetMetric(NULL,
                    metrictypeEngine,
                    *pDebugEngineGuid,
                    metricProgramProvider,
                    &clsidProvider,
                    strRegistrationRoot);
        if (!IsEqualGUID(clsidProvider,GUID_NULL)) {
            CComPtr<IDebugProgramProvider2> spProgramProvider;
            spProgramProvider.CoCreateInstance(clsidProvider);
            if (spProgramProvider != NULL) {
                pProvider = spProgramProvider.Detach();
            }
        }
    }
    return(pProvider);
}

Viz také