WinHttpSetDefaultProxyConfiguration 函数 (winhttp.h)

重要

Windows 8.1 及更新版上已弃用 WinHttpSetDefaultProxyConfigurationWinHttpSetDefaultProxyConfiguration 不支持大多数代理配置,也不支持代理身份验证。 请改为将 WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXYWinHttpOpen 配合使用

WinHttpSetDefaultProxyConfiguration 函数在注册表中设置默认的 WinHTTP 代理配置。

语法

WINHTTPAPI BOOL WinHttpSetDefaultProxyConfiguration(
  [in] WINHTTP_PROXY_INFO *pProxyInfo
);

参数

[in] pProxyInfo

指向 类型为 WINHTTP_PROXY_INFO 的变量的指针,该变量指定默认代理配置。

返回值

如果成功,则返回 TRUE ,否则返回 FALSE 。 有关扩展的错误信息,请调用 GetLastError。 返回的错误代码如下。

错误代码 说明
ERROR_WINHTTP_INTERNAL_ERROR
发生了内部错误。
ERROR_NOT_ENOUGH_MEMORY
内存不足,无法完成请求的操作。 (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。

注意 对于 Windows XP 和 Windows 2000,请参阅 WinHTTP 起始页的 运行时要求 部分。
 

示例

下面的代码示例演示如何在注册表中设置默认代理配置。

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 或更高版本。

另请参阅

WinHTTP 版本

WinHttpGetDefaultProxyConfiguration