Condividi tramite


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é ftpin .

Nota Non usare questa funzione per la trasformazione dei dati deterministici. Le euristiche usate da UrlFixupW possono cambiare da una versione alla successiva. La funzione deve essere usata solo per correggere l'input utente eventualmente non valido.
 
Questa funzione è disponibile solo in una versione Unicode.

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)