InternetCombineUrlW 函数 (wininet.h)

将基 URL 和相对 URL 合并为单个 URL。 生成的 URL 已规范化 (请参阅 InternetCanonicalizeUrl) 。

语法

BOOL InternetCombineUrlW(
  [in]      LPCWSTR lpszBaseUrl,
  [in]      LPCWSTR lpszRelativeUrl,
  [out]     LPWSTR  lpszBuffer,
  [in, out] LPDWORD lpdwBufferLength,
  [in]      DWORD   dwFlags
);

参数

[in] lpszBaseUrl

指向包含基 URL 的以 null 结尾的字符串的指针。

[in] lpszRelativeUrl

指向包含相对 URL 的以 null 结尾的字符串的指针。

[out] lpszBuffer

指向接收组合 URL 的缓冲区的指针。

[in, out] lpdwBufferLength

指向包含 lpszBuffer 缓冲区大小的变量(以字符为单位)的指针。 如果函数成功,此参数将接收组合 URL 的大小(以字符为单位),不包括 null 终止字符。 如果函数失败,此参数接收所需缓冲区的大小(以字符为单位), (包括 null 终止字符) 。

[in] dwFlags

控制函数的操作。 此参数的取值可为下列值之一:

含义
ICU_BROWSER_MODE
不对“#”或“?”之后的字符进行编码或解码,也不删除“?”之后的尾随空格。 如果未指定此值,则会对整个 URL 进行编码,并删除尾部空格。
ICU_DECODE
在分析 URL 之前,将所有 %XX 序列转换为字符,包括转义序列。
ICU_ENCODE_PERCENT
对遇到的任何百分号进行编码。 默认情况下,不编码百分比符号。 此值在 Microsoft Internet Explorer 5 及更高版本中可用。
ICU_ENCODE_SPACES_ONLY
仅对空格进行编码。
ICU_NO_ENCODE
不将不安全字符转换为转义序列。
ICU_NO_META
不删除 (元序列,如“.”和“.”。从 URL ) 。

返回值

如果成功,则返回 TRUE ,否则返回 FALSE 。 要获得更多的错误信息,请调用 GetLastError。 可能的错误包括以下内容。

返回代码 说明
ERROR_BAD_PATHNAME
无法合并这些 URL。
ERROR_INSUFFICIENT_BUFFER
提供给函数的缓冲区不足或 为 NULLlpdwBufferLength 参数指示的值将包含保存组合 URL 所需的字节数。
ERROR_INTERNET_INVALID_URL
URL 的格式无效。
ERROR_INVALID_PARAMETER
存在无效的字符串、缓冲区、缓冲区大小或标志参数。

注解

注意 WinINet 不支持服务器实现。 此外,不应从服务使用它。 对于服务器实现或服务,请使用 Microsoft Windows HTTP Services (WinHTTP)
 

注意

wininet.h 标头将 InternetCombineUrl 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 wininet.h
Library Wininet.lib
DLL Wininet.dll

另请参阅

处理统一资源定位符

WinINet 函数