Share via


IDebugProgramProvider2

Cette interface inscrite permet au gestionnaire de débogage de session (SDM) d’obtenir des informations sur les programmes qui ont été « publiés » via l’interface IDebugProgramPublisher2 .

Syntaxe

IDebugProgramProvider2 : IUnknown

Remarques pour les implémenteurs

Le moteur de débogage (DE) implémente cette interface pour fournir des informations sur les programmes en cours de débogage. Cette interface est inscrite dans la section DE du Registre à l’aide de la métrique metricProgramProvider, comme décrit dans les Helpers du SDK pour le débogage.

Remarques pour les appelants

Appelez la fonction COM CoCreateInstance avec le CLSID fournisseur de programmes obtenu à partir du Registre. Consultez l’exemple.

Méthodes dans l’ordre de la table virtuelle

Méthode Description
GetProviderProcessData Obtient des informations sur les programmes en cours d’exécution, filtrées de différentes façons.
GetProviderProgramNode Obtient un nœud de programme, en fonction d’un ID de processus spécifique.
WatchForProviderEvents Établit un rappel pour surveiller les événements de fournisseur associés à des types de processus spécifiques.
SetLocale Établit des paramètres régionaux pour toutes les ressources spécifiques à la langue requises par le de.

Notes

Normalement, un processus utilise cette interface pour découvrir les programmes en cours d’exécution dans ce processus.

Spécifications

En-tête : msdbg.h

Espace de noms : Microsoft.VisualStudio.Debugger.Interop

Assembly : Microsoft.VisualStudio.Debugger.Interop.dll

Exemple

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

Voir aussi