В этой документации для InternetOpen MSDN гласит:
Используйте INTERNET_OPEN_TYPE_DIRECT, если система, в которой работает приложение, использует прямое подключение к Интернету. ...
Используйте INTERNET_OPEN_TYPE_PROXY, если система, в которой работает приложение, использует один или несколько прокси-серверов для доступа в Интернет.
INTERNET_OPEN_TYPE_PRECONFIG просматривает значения реестра ProxyEnable, ProxyServer и ProxyOverride. ... Если ProxyEnable равен нулю, приложение использует INTERNET_OPEN_TYPE_DIRECT. В противном случае приложение использует INTERNET_OPEN_TYPE_PROXY и использует информацию ProxyServer и ProxyOverride.
Я интерпретировал это как означающее, что если вы пишете приложение, в котором есть вероятность, что пользователь находится за прокси-сервером, вы должны использовать INTERNET_OPEN_TYPE_PRECONFIG
, и Windows автоматически выберет опцию «direct», если пользователь за прокси.
Однако у ряда пользователей возникли проблемы с плохо настроенными установками Windows, для которых по какой-то причине настроен плохой прокси-сервер. Поскольку мы используем INTERNET_OPEN_TYPE_PRECONFIG
, доступ к Интернету для этих пользователей не работает. Некоторые из них могут разрешить неправильную конфигурацию, но не все.
Есть ли минус в использовании INTERNET_OPEN_TYPE_DIRECT
вместо _PRECONFIG
? Звучит так, будто мы должны использовать _PRECONFIG
, если мы хотим быть хорошим гражданином, но мы можем избавить себя и наших пользователей от множества головных болей, если мы просто используем _DIRECT
.