Funzione UrlFixupW (shlwapi.h)
[UrlFixupW è disponibile per l'uso nei sistemi operativi specificati nella sezione Requisiti. Può essere modificato o non disponibile nelle versioni successive.
Tenta di correggere un URL il cui identificatore del protocollo non è corretto. Ad esempio, htttp
verrà modificato in http
.
Sintassi
LWSTDAPI UrlFixupW(
[in] PCWSTR pcszUrl,
[out] PWSTR pszTranslatedUrl,
DWORD cchMax
);
Parametri
[in] pcszUrl
Tipo: PCWSTR
Puntatore a una stringa con terminazione null contenente l'URL da correggere. Questa stringa non deve superare INTERNET_MAX_PATH_LENGTH caratteri in lunghezza, incluso il carattere NULL terminante.
[out] pszTranslatedUrl
Tipo: PWSTR
Puntatore a un buffer che, quando questa funzione restituisce correttamente, riceve i caratteri copiati. Il buffer deve essere abbastanza grande per contenere il numero di caratteri WCHAR specificati dal parametro cchMax , incluso il carattere NULL terminante. Questo parametro può essere uguale al parametro pcszUrl per correggere un URL sul posto. Se pszTranslatedUrl non è uguale a pcszUrl, il buffer a cui punta pszTranslatedUrl non deve sovrapporsi al buffer a cui punta pcszUrl.
cchMax
Tipo: DWORD
Numero di caratteri WCHAR che possono essere contenuti nel buffer a cui fa riferimento pszTranslatedUrl. Il valore del parametro deve essere maggiore di zero.
Valore restituito
Tipo: HRESULT
Restituisce S_OK se l'URL proposto è già accettabile o è stato corretto correttamente. Il buffer pszTranslatedUrl contiene l'URL corretto o l'URL originale se non è necessaria alcuna correzione. Restituisce S_FALSE se l'URL proposto non è stato riconosciuto sufficientemente da correggere. In caso contrario, restituisce un codice di errore COM standard.
Commenti
La funzione UrlFixup riconosce gli schemi specificati dall'enumerazione URL_SCHEME .
La priorità viene assegnata al primo carattere nella sezione identificatore del protocollo, quindi htp
verrà convertito in http
anziché ftp
in .
Esempio
In questo esempio viene illustrato come usare UrlFixupW. Si noti che le ultime quattro correzioni automatiche non erano probabilmente ciò che l'utente intendeva e dimostra le limitazioni dell'euristica utilizzata dalla funzione.
#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
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | shlwapi.h |
DLL | Shlwapi.dll (versione 5.0 o successiva) |