Freigeben über


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

IDebugProgramProvider2::GetProviderProcessData

Ruft Informationen über die ausgeführte Programme, die gefiltert in einer Vielzahl von Methoden.

IDebugProgramProvider2::GetProviderProgramNode

Ruft den Knoten ab, wenn ein Programm eine bestimmte Prozessnummer

IDebugProgramProvider2::WatchForProviderEvents

Richtet einen Rückruf für Anbieter ein, um Ereignisse zu überwachen, die mit bestimmten Arten von Prozessen zugeordnet sind.

IDebugProgramProvider2::SetLocale

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

Siehe auch

Referenz

IDebugProgramPublisher2

SDK-Hilfen für das Debuggen

Konzepte

Kern-Schnittstellen