UrlFixupW 函式 (shlwapi.h)
[UrlFixupW 可用於需求一節中指定的作業系統。 它可能會在後續版本中改變或無法使用。]
嘗試更正通訊協議標識碼不正確之URL。 例如, htttp
將會變更為 http
。
語法
LWSTDAPI UrlFixupW(
[in] PCWSTR pcszUrl,
[out] PWSTR pszTranslatedUrl,
DWORD cchMax
);
參數
[in] pcszUrl
類型: PCWSTR
Null 終止字串的指標,其中包含要更正的URL。 此字串長度不能超過INTERNET_MAX_PATH_LENGTH個字元,包括終止 的NULL 字元。
[out] pszTranslatedUrl
類型: PWSTR
緩衝區的指標,當此函式成功傳回時,會收到複製的字元。 緩衝區必須夠大,才能包含 cchMax 參數所指定的 WCHAR 字元數目,包括終止 的 NULL 字元。 此參數可以等於 pcszUrl 參數,以就地更正URL。 如果 pszTranslatedUrl 不等於pcszUrl,pszTranslatedUrl所指向的緩衝區不得重疊 pcszUrl 所指向的緩衝區。
cchMax
類型: DWORD
pszTranslatedUrl 所指向之緩衝區中可包含的 WCHAR 字元數目。 這個參數必須大於零。
傳回值
類型: HRESULT
如果已接受或已成功更正建議的URL,則傳回S_OK。 pszTranslatedUrl 緩衝區包含更正的 URL,如果不需要更正,則為原始 URL。 如果無法充分辨識建議的 URL 以更正,則傳回S_FALSE。 否則,傳回標準 COM 錯誤碼。
備註
UrlFixup 函式會辨識 URL_SCHEME 列舉所指定的配置。
優先順序會授與通訊協定識別符區段中的第一個字元,因此 htp
會轉換成 http
,而不是 ftp
。
範例
此範例示範如何使用 UrlFixupW。 請注意,最後四個自動更正可能不是使用者預期的內容,並示範函式所使用的啟發學習法限制。
#include <windows.h>
#include <shlwapi.h>
#include <stdio.h>
#include <tchar.h>
void sample(LPCWSTR pszUrl)
{
WCHAR szBuf[256];
HRESULT hr = UrlFixupW(pszUrl, szBuf, 256);
if (hr == S_OK)
{
wprintf(L"%-35s %s\n", pszUrl, szBuf);
}
else
{
wprintf(L"%-35s failed\n", pszUrl);
}
}
int __cdecl main()
{
sample(L"http://www.microsoft.com");
sample(L"mail:someone@example.com");
sample(L"abc:def");
sample(L"someone@example.com");
sample(L"htpp:wwwmicrosoft.com");
sample(L"htps:\\\\www.microsoft.com");
sample(L"http:someone@example.com");
return 0;
}
..................................
This example might produce the following output:
http://www.microsoft.com http://www.microsoft.com
http:www.microsoft.com http://www.microsoft.com
mail:someone@example.com mailto:someone@example.com
abc:def failed
someone@example.com failed
htpp:wwwmicrosoft.com http://wwwmicrosoft.com
htps:\\www.microsoft.com http://www.microsoft.com
http:someone@example.com http://someone@example.com
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | shlwapi.h |
Dll | Shlwapi.dll (5.0 版或更新版本) |