Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten zarejestrowany interfejs umożliwia menedżerowi debugowania sesji (SDM) uzyskiwanie informacji o programach, które zostały "opublikowane" za pośrednictwem interfejsu IDebugProgramPublisher2 .
Składnia
IDebugProgramProvider2 : IUnknown
Uwagi dotyczące implementacji
Aparat debugowania (DE) implementuje ten interfejs, aby dostarczać informacje o debugowanych programach. Ten interfejs jest zarejestrowany w sekcji DE rejestru przy użyciu metryki metricProgramProvider, zgodnie z opisem w pomocnikach zestawu SDK do debugowania.
Uwagi dotyczące wywoływania
Wywołaj funkcję COM CoCreateInstance za pomocą CLSID dostawcy programu uzyskanego z rejestru. Zobacz przykład.
Metody w kolejności Vtable
| Metoda | opis |
|---|---|
| GetProviderProcessData | Uzyskuje informacje o uruchomionych programach, filtrowanych na różne sposoby. |
| GetProviderProgramNode | Pobiera węzeł programu, biorąc pod uwagę określony identyfikator procesu. |
| WatchForProviderEvents | Ustanawia wywołanie zwrotne do obserwowania zdarzeń dostawcy skojarzonych z określonymi rodzajami procesów. |
| SetLocale | Ustanawia ustawienia regionalne dla wszystkich zasobów specyficznych dla języka wymaganych przez de. |
Uwagi
Zwykle proces używa tego interfejsu, aby dowiedzieć się więcej o programach uruchomionych w tym procesie.
Wymagania
Nagłówek: msdbg.h
Przestrzeń nazw: Microsoft.VisualStudio.Debugger.Interop
Zestaw: Microsoft.VisualStudio.Debugger.Interop.dll
Przykład
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);
}