[s] Chaîne à terminateur nul qui contient l'URL convertie.
pcchCanonicalized
[e/s] Nombre de caractères dans pszCanonicalized.
dwFlags
[e] Sémaphore qui précise comme l'URL doit être convertie.
URL_DONT_SIMPLIFY = 0x8000000
Traitement des "/./" et "/../" d'une URL sans changement. Voir la section Remarque.
URL_ESCAPE_PERCENT = 0x1000
Conversion de toute occurrence de "%" en sa séquence d'échappement.
URL_ESCAPE_SPACES_ONLY = 0x4000000
Remplace uniquement les espaces.
URL_ESCAPE_UNSAFE = 0x2000000
Remplace tous les caractères spécifiques (<, >, ", #, {, }, |, \, ^, ~, [, ] et ').
URL_PLUGGABLE_PROTOCOL = 0x40000000
Combine les URLs en accord avec les spécifications du W3C (World Wide Web Consortium). Ce sémaphore ne s'applique pas aux protocoles standards tels que ftp, http, gopher, etc. S'il est mis, UrlCombine ne simplifie pas les URLs, il n'y a donc pas besoin de mettre à URL_DONT_SIMPLIFY.
URL_UNESCAPE = 0x10000000
Des-échappe les séquences d'échappement que l'URL contient avec 2 exceptions : les séquences "?" et "#" ne sont pas des-échappées. Si un des sémaphores URL_ESCAPE_XXX est mis, les 2 URLs sont des-echappées, puis combinées et échappées.
Compatibilité
Supporté pour toutes les versions à partir d'Internet Explorer 5.0 et shlwapi.dll version 5.0 minimum
Remarque
Si une URL contient "/../" ou "/./", UrlCanonicalize traite normalement les caractères comme indicateur de navigation dans la hiérarchie d'une URL. La fonction simplifie l'URL avant de les combiner, ainsi l'instance "/bonjour/monde/../cruel" est simplifiée en "/bonjour/cruel".
Exemple 1
// Remplacer les caractères spéciaux d'une URL
// par les séquences d'échappement adéquates
pszUrl est une chaîne Asciiz sur 260
pszCan est une chaîne Asciiz sur 260
cch est un entier = 260
pszUrl = "http://www.beaussier.com/montre moi [un] exemple>>"
AppelDll32("shlwapi", "UrlCanonicalizeA", ...
&pszUrl, &pszCan, &cch, 0x20000000)
Info(pszCan)