WinHttpSetDefaultProxyConfiguration 函数 (winhttp.h)
重要
Windows 8.1 及更新版上已弃用 WinHttpSetDefaultProxyConfiguration。 WinHttpSetDefaultProxyConfiguration 不支持大多数代理配置,也不支持代理身份验证。 请改为将 WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY 与 WinHttpOpen 配合使用。
WinHttpSetDefaultProxyConfiguration 函数在注册表中设置默认的 WinHTTP 代理配置。
语法
WINHTTPAPI BOOL WinHttpSetDefaultProxyConfiguration(
[in] WINHTTP_PROXY_INFO *pProxyInfo
);
参数
[in] pProxyInfo
指向 类型为 WINHTTP_PROXY_INFO 的变量的指针,该变量指定默认代理配置。
返回值
如果成功,则返回 TRUE ,否则返回 FALSE 。 有关扩展的错误信息,请调用 GetLastError。 返回的错误代码如下。
错误代码 | 说明 |
---|---|
|
发生了内部错误。 |
|
内存不足,无法完成请求的操作。 (Windows 错误代码) |
注解
可以通过调用 WinHttpSetOption 并指定WINHTTP_OPTION_PROXY标志来替代现有 WinHTTP 会话由 WinHttpSetDefaultProxyConfiguration 设置的默认代理配置。 通过使用 WinHttpOpen 函数指定配置,可以为新会话重写默认代理配置。
如果指定了代理,应将 pProxyInfo 指向的 WINHTTP_PROXY_INFO 结构的 dwAccessType 成员设置为WINHTTP_ACCESS_TYPE_NAMED_PROXY。 否则,应将其设置为 WINHTTP_ACCESS_TYPE_DEFAULT_PROXY。
调用此函数后创建的任何新会话都使用新的默认代理配置。
即使在异步模式下使用 WinHTTP, (即在 WinHttpOpen) 中设置了WINHTTP_FLAG_ASYNC时,此函数也会同步运行。 返回值指示成功或失败。 要获得更多的错误信息,请调用 GetLastError。
示例
下面的代码示例演示如何在注册表中设置默认代理配置。
WINHTTP_PROXY_INFO proxyInfo;
// Allocate memory for string members.
proxyInfo.lpszProxy = new WCHAR[25];
proxyInfo.lpszProxyBypass = new WCHAR[25];
// Set the members of the proxy info structure.
proxyInfo.dwAccessType = WINHTTP_ACCESS_TYPE_NAMED_PROXY;
swprintf_s(proxyInfo.lpszProxy, 25, L"proxy_server");
swprintf_s(proxyInfo.lpszProxyBypass, 25, L"<local>");
// Set the default proxy configuration.
if (WinHttpSetDefaultProxyConfiguration( &proxyInfo ))
printf("Proxy Configuration Set.\n");
// Free memory allocated to the strings.
delete [] proxyInfo.lpszProxy;
delete [] proxyInfo.lpszProxyBypass;
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP、Windows 2000 Professional SP3 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003、Windows 2000 Server SP3 [仅限桌面应用] |
目标平台 | Windows |
标头 | winhttp.h |
Library | Winhttp.lib |
DLL | Winhttp.dll |
可再发行组件 | Windows XP 和 Windows 2000 上的 WinHTTP 5.0 和 Internet Explorer 5.01 或更高版本。 |