共用方式為


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

傳回S_OK建議的URL是否已可接受或已成功更正。 pszTranslatedUrl 緩衝區包含更正的 URL,如果不需要更正,則包含原始 URL。 如果無法充分辨識建議的 URL 以更正,則會傳回S_FALSE。 否則,會傳回標準 COM 錯誤碼。

備註

UrlFixup 函式會辨識 URL_SCHEME 列舉所指定的配置。

優先級會指定給通訊協定識別碼區段中的第一個字元,因此 htp 會轉換為 httpftp而不是 。

便條 請勿將此函式用於確定性資料轉換。 UrlFixupW 所使用的啟發式可能會從一個版本變更為下一個版本。 函式應該只用來更正可能無效的使用者輸入。
 
此功能僅在 Unicode 版本中可用。

範例

此範例示範如何使用 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
                

需求

Requirement 價值觀
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平臺 窗戶
Header 什爾瓦皮.h
Library mincore_downlevel.lib
DLL Shlwapi.dll(5.0 版或更新版本)