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