IDebugProgramProvider2
Esta interfaz registrada permite al administrador de depuración de sesión (SDM) obtener información sobre los programas que se han "publicado" a través de la interfaz IDebugProgramPublisher2 .
Sintaxis
IDebugProgramProvider2 : IUnknown
Notas para los implementadores
El motor de depuración (DE) implementa esta interfaz para proporcionar información sobre los programas que se depuran. Esta interfaz se registra en la sección DE del Registro mediante la métrica metricProgramProvider
, tal y como se describe en asistentes del SDK para la depuración.
Notas para autores de la llamada
Llame a la función com CoCreateInstance
con el CLSID
del proveedor del programa que se obtiene del Registro. Vea el ejemplo.
Métodos en orden de tabla virtual
Método | Descripción |
---|---|
GetProviderProcessData | Obtiene información sobre los programas que se ejecutan, filtrados de varias maneras. |
GetProviderProgramNode | Obtiene un nodo de programa, dado un identificador de proceso específico. |
WatchForProviderEvents | Establece una devolución de llamada para inspeccionar los eventos del proveedor asociados a tipos específicos de procesos. |
SetLocale | Establece una configuración regional para cualquier recurso específico del idioma que necesite el DE. |
Comentarios
Normalmente, un proceso usa esta interfaz para averiguar los programas que se ejecutan en ese proceso.
Requisitos
Encabezado: msdbg.h
Espacio de nombres: Microsoft.VisualStudio.Debugger.Interop
Ensamblado: Microsoft.VisualStudio.Debugger.Interop.dll
Ejemplo
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);
}