Funzione UrlCanonicalizeA (shlwapi.h)
Converte una stringa URL in formato canonico.
Sintassi
LWSTDAPI UrlCanonicalizeA(
[in] PCSTR pszUrl,
[out] PSTR pszCanonicalized,
[in, out] DWORD *pcchCanonicalized,
DWORD dwFlags
);
Parametri
[in] pszUrl
Tipo: PCTSTR
Puntatore a una stringa con terminazione Null di lunghezza massima INTERNET_MAX_URL_LENGTH che contiene una stringa URL. Se la stringa non fa riferimento a un file, deve includere uno schema valido, ad esempio "http://".
[out] pszCanonicalized
Tipo: PTSTR
Puntatore a un buffer che, quando questa funzione viene restituita correttamente, riceve l'URL convertito come stringa con terminazione Null.
[in, out] pcchCanonicalized
Tipo: DWORD*
Puntatore a un valore che, nella voce, viene impostato sul numero di caratteri nel buffer pszCanonicalized.
dwFlags
Tipo: DWORD
Flag che specificano la modalità di conversione dell'URL in formato canonico. È possibile combinare i flag seguenti.
URL_UNESCAPE (0x10000000)
Annullare l'escape di tutte le sequenze di escape contenute negli URL, con due eccezioni. Le sequenze di escape per "?" e "#" non sono precedute da escape. Se viene impostato anche uno dei flag di URL_ESCAPE_XXX, i due URL vengono prima senza escape, quindi combinati, quindi preceduti da un escape.
URL_ESCAPE_UNSAFE (0x20000000)
Sostituire i caratteri non sicuri con le sequenze di escape. I caratteri non sicuri sono i caratteri che possono essere modificati durante il trasporto in Internet e includono i caratteri (<, >, ", #, {, }, |, , ^, [, ]e '). Questo flag si applica a tutti gli URL, inclusi gli URL opachi.
URL_PLUGGABLE_PROTOCOL (0x40000000)
Combinare gli URL con i protocolli pluggable definiti dal client, in base alla specifica W3C. Questo flag non si applica ai protocolli standard, ad esempio ftp, http, gopher e così via. Se questo flag è impostato, urlCombine non semplifica gli URL, quindi non è necessario impostare anche URL_DONT_SIMPLIFY.
URL_ESCAPE_SPACES_ONLY (0x04000000)
Sostituire solo gli spazi con sequenze di escape. Questo flag ha la precedenza su URL_ESCAPE_UNSAFE, ma non si applica agli URL opachi.
URL_DONT_SIMPLIFY (0x08000000)
Trattare "/./" e "/.. /" in una stringa URL come caratteri letterali, non come abbreviato per la navigazione. Per altre informazioni, vedere la sezione Osservazioni.
URL_NO_META (0x08000000)
Definito come uguale a URL_DONT_SIMPLIFY.
URL_ESCAPE_PERCENT (0x00001000)
Convertire qualsiasi occorrenza di "%" nella sequenza di escape.
URL_ESCAPE_AS_UTF8 (0x00040000)
Windows 7 e versioni successive. Codifica in percentuale tutti i caratteri non ASCII come equivalenti UTF-8.
Valore restituito
Tipo: HRESULT
Se questa funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT.
Osservazioni
Questa funzione esegue attività come la sostituzione di caratteri non sicuri con le relative sequenze di escape e sequenze di compressione come ".....".
Se una stringa URL contiene "/.. /" o "/./", UrlCanonicalize considera i caratteri come indica la navigazione nella gerarchia url. La funzione semplifica gli URL prima di combinarli. Ad esempio, "/hello/cruel/.. /world" è semplificato in "/hello/world". Le eccezioni a questo comportamento predefinito si verificano in questi casi:
- Se il flag URL_DONT_SIMPLIFY è impostato in dwFlags, la funzione non semplifica gli URL. In questo caso, "/hello/cruel/.. /world" viene lasciato così come è.
- Se "/.. /" o "/./" è il primo segmento nel percorso ,ad esempio "http://domain/../path1/path2/file.htm"), UrlCanonicalize restituisce il percorso esattamente come è stato immesso.
Nota
L'intestazione shlwapi.h definisce UrlCanonicalize come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional, Windows XP [solo app desktop] |
server minimo supportato | Windows 2000 Server [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
shlwapi.h |
libreria |
Shlwapi.lib |
dll | Shlwapi.dll (versione 5.0 o successiva) |