Вопрос

В рамках профилировщика JavaScript для IE 6/7 мне нужно было загрузить в IE собственный отладчик, который я создал.У меня все работало нормально на XP, но не получилось на Vista (полная история здесь: http://damianblog.com/2008/09/09/tracejs-v2-rip/).

Вызов GetProviderProcessData не работает в Vista.У кого-нибудь есть предложения?

Спасибо, Дамиан

// Create the MsProgramProvider
IDebugProgramProvider2* pIDebugProgramProvider2 = 0;
HRESULT st = CoCreateInstance(CLSID_MsProgramProvider, 0, CLSCTX_ALL, IID_IDebugProgramProvider2, (void**)&pIDebugProgramProvider2);
if(st != S_OK) {
    return st;
}

// Get the IDebugProgramNode2 instances running in this process
AD_PROCESS_ID processID;
processID.ProcessId.dwProcessId = GetCurrentProcessId();
processID.ProcessIdType = AD_PROCESS_ID_SYSTEM;

CONST_GUID_ARRAY engineFilter;
engineFilter.dwCount = 0;

PROVIDER_PROCESS_DATA processData;

st = pIDebugProgramProvider2->GetProviderProcessData(PFLAG_GET_PROGRAM_NODES|PFLAG_DEBUGGEE, 0, processID, engineFilter, &processData);
if(st != S_OK) {
    ShowError(L"GPPD Failed", st);
    pIDebugProgramProvider2->Release();
    return st;
}
Это было полезно?

Решение

Было бы полезно узнать, каков был результат ошибки.

Возможные проблемы, о которых я могу думать:

Если вам отказано в разрешении, скорее всего, вам не хватает некоторых необходимых данных. Привилегия в вашем ACL.Новые иногда плохо документированы. Проверьте последние заголовки Platform SDK, чтобы узнать, есть ли еще новые.Возможно, в Vista привилегия больше не назначена по умолчанию вашему ACL.

Если вы получаете какую-то ошибку типа «Не найдено», возможно, это проблема 32-битной или 64-битной версии.Ваш API отладки может быть доступен только в 64-битной версии COM на Vista 64.Взаимодействие 32-битных и 64-битных систем может быть очень запутанным.

Другие советы

Я не знаком с этими интерфейсами, но неожиданные сбои в Vista могут потребовать прохождения запроса UAC.Вы пробовали запустить отладчик с правами администратора?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top