IDebugProgramProvider2
Diese registrierte Schnittstelle ermöglicht der Sitzung Debuggen von Manager (SDM) zum Abrufen von Informationen zu Programmen, die von der IDebugProgramPublisher2 „Schnittstelle“ veröffentlicht worden sind.
IDebugProgramProvider2 : IUnknown
Hinweise für Implementierer
Das Debugmodul (DE) implementiert diese Schnittstelle, um Informationen über die Anwendungen bereitzustellen, die gedebuggt werden. Diese Schnittstelle wird in DE section mithilfe der Registrierung registriert metricProgramProvidermetrischen, wie in SDK-Hilfen für das Debuggenbeschrieben.
Hinweise für Aufrufer
CoCreateInstance-Funktion des Aufrufs COM mit CLSID des Programms Anbieters, der aus der Registrierung abgerufen wird. Weitere Informationen finden Sie im Beispiel.
Methoden in die Vtable-Reihenfolge
Methode |
Beschreibung |
---|---|
Ruft Informationen über die ausgeführte Programme, die gefiltert in einer Vielzahl von Methoden. |
|
Ruft den Knoten ab, wenn ein Programm eine bestimmte Prozessnummer |
|
Richtet einen Rückruf für Anbieter ein, um Ereignisse zu überwachen, die mit bestimmten Arten von Prozessen zugeordnet sind. |
|
Richtet das Gebietsschema für alle sprachspezifischen Ressourcen, die vom DE benötigt werden. |
Hinweise
Normalerweise verwendet ein Prozess über diese Schnittstelle, um Programme zu ermitteln, die in diesem Prozess ausgeführt werden.
Anforderungen
Header: msdbg.h
Namespace: Microsoft.VisualStudio.Debugger.Interop
Assembly: Microsoft.VisualStudio.Debugger.Interop.dll
Beispiel
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);
}