Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese registrierte Schnittstelle ermöglicht es dem Sitzungsdebug-Manager (SDM), Informationen zu Programmen abzurufen, die über die IDebugProgramPublisher2-Schnittstelle "veröffentlicht" wurden.
Syntax
IDebugProgramProvider2 : IUnknown
Hinweise für Implementierer
Das Debugmodul (DE) implementiert diese Schnittstelle, um Informationen über zu debuggierten Programmen bereitzustellen. Diese Schnittstelle wird im DE-Abschnitt der Registrierung mithilfe der Metrik metricProgramProviderregistriert, wie in SDK-Hilfsprogramme für das Debuggen beschrieben.
Hinweise für Aufrufer
Rufen Sie die COM-Funktion CoCreateInstance mit dem CLSID Programmanbieter auf, der aus der Registrierung abgerufen wird. Sehen Sie sich das Beispiel an.
Methoden in Vtable-Reihenfolge
| Methode | Beschreibung |
|---|---|
| GetProviderProcessData | Ruft Informationen über ausgeführte Programme ab, gefiltert auf unterschiedliche Weise. |
| GetProviderProgramNode | Ruft einen Programmknoten mit einer bestimmten Prozess-ID ab. |
| WatchForProviderEvents | Richtet einen Rückruf ein, um auf Anbieterereignisse zu achten, die bestimmten Arten von Prozessen zugeordnet sind. |
| SetLocale | Richtet ein Gebietsschema für alle sprachspezifischen Ressourcen ein, die von der DE benötigt werden. |
Hinweise
Normalerweise verwendet ein Prozess diese Schnittstelle, um herauszufinden, welche Programme 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);
}