UrlCombineA 函式 (shlwapi.h)
當提供相對 URL 及其基底時,會以標準形式傳回 URL。
語法
LWSTDAPI UrlCombineA(
[in] PCSTR pszBase,
[in] PCSTR pszRelative,
[out, optional] PSTR pszCombined,
[in, out] DWORD *pcchCombined,
DWORD dwFlags
);
參數
[in] pszBase
類型:PCTSTR
包含基底 URL 之最大長度之 null 終止字串的指標INTERNET_MAX_URL_LENGTH。
[in] pszRelative
類型:PCTSTR
包含相對 URL 之最大長度之 null 終止字串的指標INTERNET_MAX_URL_LENGTH。
[out, optional] pszCombined
類型:PTSTR
緩衝區的指標,當此函式成功傳回時,會收到包含合併 URL 的 Null 終止字串。
[in, out] pcchCombined
類型:DWORD*
項目上設定為 pszCombined 緩衝區
dwFlags
類型:DWORD
指定 URL 如何轉換成標準格式的旗標。 可以合併下列旗標。
URL_DONT_SIMPLIFY (0x08000000)
處理 『/./』 和 『/.。/' 在 URL 字串中做為常值字元,而不是導覽的速記。 如需進一步的討論,請參閱。
URL_ESCAPE_PERCENT (0x00001000)
將任何出現的 『%』 轉換成逸出序列。
URL_ESCAPE_SPACES_ONLY(0x04000000)
將空格取代為逸出序列。 此旗標的優先順序高於 URL_ESCAPE_UNSAFE,但不適用於不透明的 URL。
URL_ESCAPE_UNSAFE (0x20000000)
將 unsafe 字元取代為逸出序列。 不安全字元是在因特網傳輸期間可能改變的字元,包括 (<、>、“、#、{、}、|、^、~、[、]、 和 ') 字元。 此旗標適用於所有 URL,包括不透明 URL。
URL_NO_META
定義為與 URL_DONT_SIMPLIFY相同。
URL_PLUGGABLE_PROTOCOL (0x40000000)
根據 W3C 規格,結合 URL 與用戶端定義的插入式通訊協定。 此旗標不適用於標準通訊協定,例如 ftp、HTTP、gopher 等等。 如果設定此旗標,UrlCombine 不會簡化 URL,因此不需要也設定 URL_DONT_SIMPLIFY。
URL_UNESCAPE(0x10000000)
取消逸出 URL 包含的任何逸出序列,但有兩個例外狀況。 '?' 和 '#' 的逸出序列不會解除逸出。 如果同時設定其中一個URL_ESCAPE_XXX旗標,則兩個URL會先取消逸出,然後合併,然後逸出。
URL_ESCAPE_AS_UTF8 (0x00040000)
Windows 7 和更新版本。 將所有非 ASCII 字元的百分比編碼為其 UTF-8 對等專案。
傳回值
類型:HRESULT
傳回標準 COM 錯誤碼,包括下列專案。
傳回碼 | 描述 |
---|---|
|
pszCombined 指向包含合併 URL 的字串。 pcchCombined 的值會設定為字串中的字元數,而不會計算結束 NULL 字元。 |
|
緩衝區太小。 pcchCombined 的值會設定為緩衝區必須包含的字元數下限,包括終止 NULL 字元。 |
言論
斜線之間的專案會被視為階層式標識符;最後一個專案會指定檔本身。 您必須在檔名稱後面輸入斜線 (/) 以附加更多專案;否則,UrlCombine 交換另一份檔。 例如:
hRetVal = UrlCombine(TEXT("http://xyz/test/abc"),
TEXT("bar"),
lpszCombined,
&dwLength, 0);
上述程式代碼會傳回 URL http://xyz/test/bar. 如果您要將合併的網址 http://xyz/test/abc/bar,請使用下列呼叫來 UrlCombine。
hRetVal = UrlCombine(TEXT("http://xyz/test/abc/"),
TEXT("bar"),
lpszCombined,
&dwLength, 0);
如果 URL 字串包含 '/.。/' 或 '/./',UrlCombine 通常會將字元視為表示在 URL 階層中流覽。 函式會在合併 URL 之前簡化 URL。 例如,“/hello/cruel/.。/world“ 已簡化為 ”/hello/world“。 如果在 dwFlags中設定 URL_DONT_SIMPLIFY 旗標,則函式不會簡化 URL。 在此情況下,“/hello/cruel/.。/world“ 已保留為 。
注意
shlwapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 UrlCombine 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional、Windows XP [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | shlwapi.h |
連結庫 | Shlwapi.lib |
DLL | Shlwapi.dll 版 (5.0 版或更新版本) |