我正在编写一个使用 InternetQueryOption API 查询代理设置的程序。
查看INTERNET_PER_CONN_OPTION
http://msdn.microsoft.com/en-us/library/windows/desktop/aa385145%28v=vs.85%29.aspx的 Windows 文档
文档中有注释
Windows 7 及更高版本:
支持 Internet Explorer 8 的客户端应使用 INTERNET_PER_CONN_FLAGS_UI 查询连接类型。如果此查询失败,则系统正在运行以前版本的 Internet Explorer,客户端应使用 INTERNET_PER_CONN_FLAGS 再次查询。无论 Internet Explorer 的版本如何,都使用 INTERNET_PER_CONN_FLAGS 恢复连接类型。
我已经在运行 IE9 的 Win7 64 位机器上进行了测试INTERNET_PER_CONN_FLAGS
,INTERNET_PER_CONN_FLAGS_UI
一切似乎都运行良好。
和功能的文档INTERNET_PER_CONN_FLAGS
也INTERNET_PER_CONN_FLAGS_UI
似乎相同。
那么使用的原因是什么INTERNET_PER_CONN_FLAGS_UI
呢?注释是否表明它仅适用于 IE8 或 IE8 及更高版本。
我的程序需要支持从运行 IE6 的 WinXP 到当前 Win7 机器的所有内容。所以我不清楚我应该使用什么。
这是我的代码
INTERNET_PER_CONN_OPTION_LIST List;
INTERNET_PER_CONN_OPTION Option[1];
unsigned long nSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
Option[0].dwOption = INTERNET_PER_CONN_FLAGS;
List.dwSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
List.pszConnection = 0;
List.dwOptionCount = sizeof(Option)/sizeof(Option[0]);
List.dwOptionError = 0;
Option[0].Value.pszValue = 0;
List.pOptions = Option;
InternetQueryOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &List, &nSize);
如果失败,我应该更改
INTERNET_PER_CONN_FLAGS
为INTERNET_PER_CONN_FLAGS_UI
& 然后再次调用 with吗?INTERNET_PER_CONN_FLAGS
INTERNET_PER_CONN_FLAGS_UI
这究竟是什么意思
无论 Internet Explorer 的版本如何,都使用 INTERNET_PER_CONN_FLAGS 恢复连接类型。
这是否意味着INTERNET_PER_CONN_FLAGS_UI
仅与InternetQueryOption
和相关InternetSetOption
,我应该始终使用INTERNET_PER_CONN_FLAGS
.