C ++ / WinInet Alterar configurações de proxy do Windows 7

[Aviso: este é um problema específico do Windows 7, tanto quanto eu posso dizer]

Eu tenho um bloco de código que altera as configurações de proxy no registro do Windows e, em seguida, passa a chamar a API do WinInet com o seguinte:

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

Isso é completamente bom no XP e no Vista, no entanto, no Windows 7, algo aparentemente mudou e, por algum motivo, as chaves de registro anteriores são injetadas novamente, fazendo com que ele não funcione como esperado.

Se eu comentar essas duas linhas de código, os valores de registro permanecerão, mas obviamente o IE e outros aplicativos que dependem dessas informações de proxy não têm idéia de que a configuração foi alterada.

Existe uma maneira melhor de lidar com a notificação do sistema de que as opções foram alteradas e precisam ser recarregadas? Eu pesquisei por dias sobre este assunto, troquei compiladores, etc., e nada que eu faça faz funcionar como eu esperaria no Windows 7.

questionAnswers(2)

yourAnswerToTheQuestion