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 |
---|---|
Ottiene le informazioni sui programmi in esecuzione, filtrato in diversi modi. |
|
Ottiene un nodo di programma, dato un ID processo specifica |
|
Stabilisce un callback per controllare gli eventi del provider associati a tipi specifici di processi. |
|
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);
}