C ++ / WinInet Cambiar la configuración del proxy de Windows 7

[Descargo de responsabilidad: este es un problema específico de Windows 7, por lo que puedo decir]

Tengo un bloque de código que cambia la configuración del proxy en el registro de Windows y luego procede a llamar a la API de WinInet con lo siguiente:

InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0);

Esto está completamente bien en XP y Vista, sin embargo, en Windows 7, al parecer, algo ha cambiado, y por alguna razón, las claves de registro anteriores se vuelven a inyectar para que no funcione como se esperaba.

Si comento esas dos líneas de código, los valores del registro se mantienen, pero obviamente IE y otras aplicaciones que se basan en esa información del proxy no tienen idea de que la configuración ha cambiado.

¿Hay una mejor manera de manejar notificando al sistema que las opciones han cambiado y se deben volver a cargar? He buscado días sobre este problema, compiladores cambiados, etc., y nada de lo que hago lo hace funcionar como esperaría en Windows 7.

Respuestas a la pregunta(2)

Su respuesta a la pregunta