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