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