Aracılığıyla paylaş


IDebugProgramProvider2

Bu kayıtlı arabirim, oturum hata ayıklama yöneticisinin (SDM) IDebugProgramPublisher2 arabirimi aracılığıyla "yayımlanan" programlar hakkında bilgi edinmesini sağlar.

Sözdizimi

IDebugProgramProvider2 : IUnknown

Uygulayıcılar için Notlar

Hata ayıklama altyapısı (DE), hata ayıklanan programlar hakkında bilgi sağlamak için bu arabirimi uygular. Bu arabirim, Hata Ayıklama için SDK Yardımcıları bölümünde açıklandığı gibi ölçümünü metricProgramProviderkullanarak kayıt defterinin DE bölümüne kaydedilir.

Arayanlar İçin Notlar

COM'un CoCreateInstance işlevini kayıt defterinden alınan program sağlayıcısıyla CLSID çağırın. Bkz. Örnek.

Vtable sırasına göre yöntemler

Metot Açıklama
GetProviderProcessData Çalışan programlar hakkında çeşitli yollarla filtrelenmiş bilgiler alır.
GetProviderProgramNode Belirli bir işlem kimliğine göre bir program düğümü alır.
WatchForProviderEvents Belirli işlem türleriyle ilişkili sağlayıcı olaylarını izlemek için bir geri çağırma oluşturur.
SetLocale DE tarafından gereken dile özgü kaynaklar için bir yerel ayar oluşturur.

Açıklamalar

Normalde bir işlem, bu işlemde çalışan programlar hakkında bilgi edinmek için bu arabirimi kullanır.

Gereksinimler

Üst bilgi: msdbg.h

Ad Alanı: Microsoft.VisualStudio.Debugger.Interop

Derleme: Microsoft.VisualStudio.Debugger.Interop.dll

Örnek

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

Ayrıca bkz.