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 |
---|---|
Obtém informações sobre os programas em execução, filtrados de diversas maneiras. |
|
Obtém um nó de programa, dada uma ID de processo específico. |
|
Estabelece um retorno de chamada para observar eventos de provedor associados a tipos específicos de processos. |
|
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);
}