IDebugProgramProvider2
這個已註冊的介面可讓會話偵錯管理員 (SDM) 透過 IDebugProgramPublisher2 介面取得已「發佈」之程式的相關信息。
語法
IDebugProgramProvider2 : IUnknown
實作者的注意事項
偵錯引擎 (DE) 會實作這個介面,以提供正在偵錯之程式的相關信息。 此介面會使用 計量metricProgramProvider
在登錄的 DE 區段中註冊,如 SDK 協助程式進行偵錯中所述。
呼叫端注意事項
使用CLSID
從登錄取得之程式提供者的呼叫 COM 函CoCreateInstance
式。 請參閱範例。
以 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);
}