共用方式為


IDebugProgramProvider2

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

已註冊的介面可讓偵錯工作階段管理員 (SDM) 可取得有關程式已經 「 發行 」 透過IDebugProgramPublisher2介面。

語法

IDebugProgramProvider2 : IUnknown  

實作者注意事項

偵錯引擎 (DE) 會實作這個介面來提供偵錯的程式的相關資訊。 此介面已註冊 DE 區段中使用標準的登錄metricProgramProvider所述,在SDK 協助程式進行偵錯

呼叫端資訊

呼叫 COM 的CoCreateInstance函式與CLSID會從登錄取得的程式提供者。 請參閱範例。

依照 Vtable 順序的方法

方法 描述
GetProviderProcessData 取得程式執行時,篩選過的各種方式的相關資訊。
GetProviderProgramNode 取得程式] 節點中,指定特定的處理序識別碼。
WatchForProviderEvents 建立要監視特定類型的處理序相關聯的提供者事件的回呼。
SetLocale 建立所需的 DE 任何語言特定資源的地區設定。

備註

通常,處理程序會使用此介面來找出該處理序中執行的程式。

需求

標頭︰ 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);  
}  

另請參閱

核心介面
IDebugProgramPublisher2
SDK 協助程式進行偵錯