Partager via


IDebugProgramProvider2

Cette interface stockée permet au gestionnaire de débogage de session (SDM) pour obtenir des informations sur les programmes qui « ont été émis » via l'interface d' IDebugProgramPublisher2 .

IDebugProgramProvider2 : IUnknown

Remarques à l'intention des implémenteurs

Le moteur (DE) de débogage implémente cette interface pour fournir des informations sur les programmes en cours. Cette interface est stockée dans LE section du Registre à l'aide de metricProgramProvidermétriques, comme décrit dans Programmes d'assistance du Kit de développement logiciel pour le débogage.

Remarques pour les appelants

Fonction d' CoCreateInstance COM d'appel avec CLSID du fournisseur de programme qui est obtenu à partir de le Registre. Consultez l'exemple.

méthodes en commande de Vtable

Méthode

Description

IDebugProgramProvider2 : : GetProviderProcessData

Obtient des informations sur les programmes exécutés, filtré de diverses manières.

IDebugProgramProvider2 : : GetProviderProgramNode

Obtient un nœud de programme, donné un identificateur de processus spécifique

IDebugProgramProvider2 : : WatchForProviderEvents

Génère un rappel pour le surveiller les événements de fournisseur associés à des genres spécifiques de processus.

IDebugProgramProvider2 : : SetLocale

Génère des paramètres régionaux pour toutes les ressources spécifiques à une langue requises par le De.

Notes

Normalement, un processus utilise cette interface pour déterminer sur les programmes s'exécutant dans ce processus.

Configuration requise

en-tête : msdbg.h

l'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

Référence

IDebugProgramPublisher2

Programmes d'assistance du Kit de développement logiciel pour le débogage

Concepts

Les interfaces principales