UrlFixupW, fonction (shlwapi.h)
[UrlFixupW est disponible pour une utilisation dans les systèmes d’exploitation spécifiés dans la section Configuration requise. Il peut être modifié ou indisponible dans les versions suivantes.]
Tente de corriger une URL dont l’identificateur de protocole est incorrect. Par exemple, htttp
sera remplacé par http
.
Syntaxe
LWSTDAPI UrlFixupW(
[in] PCWSTR pcszUrl,
[out] PWSTR pszTranslatedUrl,
DWORD cchMax
);
Paramètres
[in] pcszUrl
Type : PCWSTR
Pointeur vers une chaîne terminée par null qui contient l’URL à corriger. Cette chaîne ne doit pas dépasser INTERNET_MAX_PATH_LENGTH caractères, y compris le caractère NULL de fin.
[out] pszTranslatedUrl
Type : PWSTR
Pointeur vers une mémoire tampon qui, lorsque cette fonction retourne correctement, reçoit les caractères copiés. La mémoire tampon doit être suffisamment grande pour contenir le nombre de caractères WCHAR spécifiés par le paramètre cchMax , y compris le caractère NULL de fin. Ce paramètre peut être égal au paramètre pcszUrl pour corriger une URL sur place. Si pszTranslatedUrl n’est pas égal à pcszUrl, la mémoire tampon pointée par pszTranslatedUrl ne doit pas chevaucher la mémoire tampon pointée par pcszUrl.
cchMax
Type : DWORD
Nombre de caractères WCHAR pouvant être contenus dans la mémoire tampon pointée par pszTranslatedUrl. Ce paramètre doit être supérieur à zéro.
Valeur retournée
Type : HRESULT
Retourne S_OK si l’URL proposée était déjà acceptable ou a été correctement corrigée. La mémoire tampon pszTranslatedUrl contient l’URL corrigée ou l’URL d’origine si aucune correction n’a été nécessaire. Retourne S_FALSE si l’URL proposée n’a pas pu être reconnue suffisamment pour être corrigée. Sinon, retourne un code d’erreur COM standard.
Remarques
La fonction UrlFixup reconnaît les schémas spécifiés par l’énumération URL_SCHEME .
La priorité est donnée au premier caractère de la section identificateur de protocole et sera donc htp
converti http
en au lieu de ftp
.
Exemples
Cet exemple montre comment utiliser UrlFixupW. Notez que les quatre dernières corrections automatiques n’étaient probablement pas celles prévues par l’utilisateur et démontrent les limitations de l’heuristique utilisée par la fonction.
#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
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | shlwapi.h |
DLL | Shlwapi.dll (version 5.0 ou ultérieure) |