Partilhar via


IDebugProgramProvider2

Essa interface registrado permite a depuração de sessão (SDM) para obter informações sobre programas que tenham sido "publicada" por meio do Gerenciador de IDebugProgramPublisher2 interface.

IDebugProgramProvider2 : IUnknown

Observações para Implementadores

O mecanismo de depuração (DE) implementa essa interface para fornecer informações sobre programas que está sendo depurado. Esta interface está registrada na seção do registro utilizando a métrica DE metricProgramProvider, conforme descrito na SDK auxiliares para depuração.

Observações para chamadores

Chamar COM CoCreateInstance funcionar com o CLSID do provedor do programa que é obtido do registro. Consulte o exemplo.

Métodos na ordem de Vtable

Método

Descrição

IDebugProgramProvider2::GetProviderProcessData

Obtém informações sobre os programas em execução, filtrados de diversas maneiras.

IDebugProgramProvider2::GetProviderProgramNode

Obtém um nó de programa, dada uma ID de processo específico.

IDebugProgramProvider2::WatchForProviderEvents

Estabelece um retorno de chamada para observar eventos de provedor associados a tipos específicos de processos.

IDebugProgramProvider2::SetLocale

Estabelece uma localidade para quaisquer recursos específicos de idiomas necessários para o DE.

Comentários

Normalmente, um processo usa essa interface para saber mais sobre os programas em execução nesse processo.

Requisitos

Cabeçalho: msdbg.h

Namespace: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

Exemplo

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

Consulte também

Referência

IDebugProgramPublisher2

SDK auxiliares para depuração

Conceitos

Interfaces principais