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

另请参阅