IDebugProgramProvider2

Этот зарегистрированный интерфейс позволяет диспетчеру отладки сеансов (SDM) получать сведения о программах, которые были "опубликованы" через интерфейс IDebugProgramPublisher2 .

Синтаксис

IDebugProgramProvider2 : IUnknown

Примечания для разработчиков

Модуль отладки (DE) реализует этот интерфейс для предоставления сведений об отлаживаемых программах. Этот интерфейс зарегистрирован в разделе DE реестра с помощью метрики metricProgramProvider, как описано в вспомогательных элементах пакета SDK для отладки.

Заметки для вызывающих абонентов

Вызов функции COM CoCreateInstance с CLSID поставщиком программ, полученным из реестра. См. пример.

Методы в порядке Vtable

Метод Description
GetProviderProcessData Получает сведения о запущенных программах, отфильтрованных различными способами.
GetProviderProgramNode Возвращает узел программы с определенным идентификатором процесса.
WatchForProviderEvents Устанавливает обратный вызов для отслеживания событий поставщика, связанных с определенными типами процессов.
SetLocale Устанавливает языковой стандарт для всех ресурсов, необходимых для языка, необходимых de de.

Замечания

Как правило, процесс использует этот интерфейс, чтобы узнать о программах, работающих в этом процессе.

Requirements

Заголовок: 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);
}

См. также