Bagikan melalui


Fungsi UrlFixupW (shlwapi.h)

[UrlFixupW tersedia untuk digunakan dalam sistem operasi yang ditentukan di bagian Persyaratan. Ini mungkin diubah atau tidak tersedia dalam versi berikutnya.]

Mencoba memperbaiki URL yang pengidentifikasi protokolnya salah. Misalnya, htttp akan diubah menjadi http.

Sintaks

LWSTDAPI UrlFixupW(
  [in]  PCWSTR pcszUrl,
  [out] PWSTR  pszTranslatedUrl,
        DWORD  cchMax
);

Parameter

[in] pcszUrl

Jenis: PCWSTR

Penunjuk ke untai (karakter) yang dihentikan null yang berisi URL yang akan dikoreksi. Panjang string ini tidak boleh melebihi INTERNET_MAX_PATH_LENGTH karakter, termasuk karakter NULL yang mengakhiri.

[out] pszTranslatedUrl

Jenis: PWSTR

Penunjuk ke buffer yang, ketika fungsi ini berhasil dikembalikan, menerima karakter yang disalin. Buffer harus cukup besar untuk berisi jumlah karakter WCHAR yang ditentukan oleh parameter cchMax , termasuk karakter NULL yang mengakhiri. Parameter ini dapat sama dengan parameter pcszUrl untuk memperbaiki URL di tempatnya. Jika pszTranslatedUrl tidak sama dengan pcszUrl, buffer yang ditunjukkan oleh pszTranslatedUrl tidak boleh tumpang tindih dengan buffer yang ditunjukkan oleh pcszUrl.

cchMax

Jenis: DWORD

Jumlah karakter WCHAR yang dapat dimuat dalam buffer yang ditunjukkan oleh pszTranslatedUrl. Parameter ini harus lebih besar dari nol.

Mengembalikan nilai

Jenis: HRESULT

Mengembalikan S_OK jika URL yang diusulkan sudah dapat diterima atau berhasil dikoreksi. Buffer pszTranslatedUrl berisi URL yang dikoreksi, atau URL asli jika tidak diperlukan koreksi. Mengembalikan S_FALSE jika URL yang diusulkan tidak dapat dikenali dengan cukup untuk diperbaiki. Jika tidak, mengembalikan kode kesalahan COM standar.

Keterangan

Fungsi UrlFixup mengenali skema yang ditentukan oleh enumerasi URL_SCHEME .

Prioritas diberikan kepada karakter pertama di bagian pengidentifikasi protokol sehingga htp akan dikonversi menjadi http alih-alih ftp.

Catatan Jangan gunakan fungsi ini untuk transformasi data deterministik. Heuristik yang digunakan oleh UrlFixupW dapat berubah dari satu rilis ke rilis berikutnya. Fungsi hanya boleh digunakan untuk memperbaiki kemungkinan input pengguna yang tidak valid.
 
Fungsi ini hanya tersedia dalam versi Unicode.

Contoh

Contoh ini menunjukkan cara menggunakan UrlFixupW. Perhatikan bahwa empat koreksi otomatis terakhir mungkin bukan apa yang dimaksudkan pengguna dan menunjukkan batasan heuristik yang digunakan oleh fungsi.


#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
                

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header shlwapi.h
DLL Shlwapi.dll (versi 5.0 atau yang lebih baru)