Pregunta

Como parte de un generador de perfiles de JavaScript para IE 6/7, necesitaba cargar un depurador personalizado que creé en IE.Conseguí que esto funcionara bien en XP, pero no pude hacerlo funcionar en Vista (historia completa aquí: http://damianblog.com/2008/09/09/tracejs-v2-rip/).

La llamada a GetProviderProcessData falla en Vista.¿Alguien tiene alguna sugerencia?

Gracias Damian

// 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;
}
¿Fue útil?

Solución

Sería útil saber cuál fue el resultado del error.

Posibles problemas que se me ocurren:

Si se le niega el permiso, lo más probable es que le falten algunos requisitos Privilegio en su ACL.Los nuevos a veces no están bien documentados; consulte los encabezados más recientes del SDK de plataforma para ver si aún hay alguno nuevo disponible.Es posible que en Vista el Privilegio ya no esté asignado de forma predeterminada a su ACL.

Si recibe algún tipo de error de tipo No encontrado, entonces puede ser un problema de 32 bits/64 bits.Es posible que su API de depuración solo esté disponible en COM de 64 bits en Vista 64.La interoperación de 32 bits/64 bits puede resultar muy confusa.

Otros consejos

No estoy familiarizado con estas interfaces, pero fallas inesperadas en Vista pueden requerir pasar un mensaje de UAC.¿Has intentado iniciar el depurador con privilegios de administrador?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top