Partager via


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.

Note N’utilisez pas cette fonction pour la transformation déterministe des données. L’heuristique utilisée par UrlFixupW peut changer d’une version à l’autre. La fonction doit uniquement être utilisée pour corriger une entrée utilisateur éventuellement non valide.
 
Cette fonction est disponible uniquement dans une version Unicode.

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)