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
.
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) |