IDebugProgramProvider2
此注册接口允许会话调试管理器(SDM)通过 IDebugProgramPublisher2 接口获取有关“已发布”的程序的信息。
语法
IDebugProgramProvider2 : IUnknown
实现者须知
调试引擎 (DE) 实现此接口来提供有关正在调试的程序的信息。 此接口使用指标metricProgramProvider
在注册表的 DE 部分中注册,如 SDK 调试帮助程序中所述。
对调用者的说明
使用CLSID
从注册表获取的程序提供程序调用 COM 函数CoCreateInstance
。 请参阅示例。
按 Vtable 顺序排列的方法
方法 | 说明 |
---|---|
GetProviderProcessData | 获取有关正在运行的程序的信息,以多种方式进行筛选。 |
GetProviderProgramNode | 获取给定特定进程 ID 的程序节点。 |
WatchForProviderEvents | 建立回调来监视与特定类型的进程关联的提供程序事件。 |
SetLocale | 为 DE 所需的任何特定于语言的资源建立区域设置。 |
备注
通常,进程使用此接口来了解在该进程中运行的程序。
要求
标头:msdbg.h
命名空间:Microsoft.VisualStudio.Debugger.Interop
程序集:Microsoft.VisualStudio.Debugger.Interop.dll
示例
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);
}