description | title | ms.date | ms.topic | f1_keywords | helpviewer_keywords | author | ms.author | manager | ms.subservice | ||
---|---|---|---|---|---|---|---|---|---|---|---|
This registered interface allows the session debug manager (SDM) to obtain information about programs that have been published through the IDebugProgramPublisher2 interface. |
IDebugProgramProvider2 |
11/04/2016 |
reference |
|
|
maiak |
maiak |
mijacobs |
debug-diagnostics |
This registered interface allows the session debug manager (SDM) to obtain information about programs that have been "published" through the IDebugProgramPublisher2 interface.
IDebugProgramProvider2 : IUnknown
The debug engine (DE) implements this interface to provide information about programs being debugged. This interface is registered in the DE section of the registry using the metric metricProgramProvider
, as described in SDK Helpers for Debugging.
Call COM's CoCreateInstance
function with the CLSID
of the program provider that is obtained from the registry. See the Example.
Method | Description |
---|---|
GetProviderProcessData | Obtains information about programs running, filtered in a variety of ways. |
GetProviderProgramNode | Gets a program node, given a specific process ID. |
WatchForProviderEvents | Establishes a callback to watch for provider events associated with specific kinds of processes. |
SetLocale | Establishes a locale for any language-specific resources needed by the DE. |
Normally, a process uses this interface to find out about the programs running in that process.
Header: msdbg.h
Namespace: Microsoft.VisualStudio.Debugger.Interop
Assembly: 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);
}