Condividi tramite


IDebugProgramProvider2

Questa interfaccia registrata consente che l'amministratore (SDM) di debug della sessione di ottenere informazioni sui programmi che “sono stati pubblicati„ tramite IDebugProgramPublisher2 l'interfaccia.

IDebugProgramProvider2 : IUnknown

Note per gli implementatori

Il motore (DE) di debug implementa questa interfaccia per fornire informazioni sui programmi in corso il debug. Questa interfaccia è registrata nella sezione di DE del Registro di sistema utilizzando metricProgramProvidermetrica, come descritto Supporto di SDK per il debugin.

Note per i chiamanti

Funzione di CoCreateInstance di chiamata COM con CLSID del provider di programma ottenuto dal Registro di sistema. vedere l'esempio.

Metodi nell'ordine di Vtable

Metodo

Descrizione

IDebugProgramProvider2:: GetProviderProcessData

Ottiene le informazioni sui programmi in esecuzione, filtrato in diversi modi.

IDebugProgramProvider2:: GetProviderProgramNode

Ottiene un nodo di programma, dato un ID processo specifica

IDebugProgramProvider2:: WatchForProviderEvents

Stabilisce un callback per controllare gli eventi del provider associati a tipi specifici di processi.

IDebugProgramProvider2:: SetLocale

Definire le impostazioni locali per tutte le risorse specifiche della lingua necessari di l DE.

Note

In genere, un processo utilizza questa interfaccia per ottenere informazioni sui programmi in esecuzione nel processo.

Requisiti

intestazione: msdbg.h

Spazio dei nomi: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

Esempio

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

Vedere anche

Riferimenti

IDebugProgramPublisher2

Supporto di SDK per il debug

Concetti

interfacce principali