Compartir a través de


Función UrlFixupW (shlwapi.h)

[UrlFixupW está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. Puede modificarse o no estar disponible en versiones posteriores.

Intenta corregir una dirección URL cuyo identificador de protocolo es incorrecto. Por ejemplo, htttp se cambiará a http.

Sintaxis

LWSTDAPI UrlFixupW(
  [in]  PCWSTR pcszUrl,
  [out] PWSTR  pszTranslatedUrl,
        DWORD  cchMax
);

Parámetros

[in] pcszUrl

Tipo: PCWSTR

Puntero a una cadena terminada en null que contiene la dirección URL que se va a corregir. Esta cadena no debe superar INTERNET_MAX_PATH_LENGTH caracteres de longitud, incluido el carácter NULL de terminación.

[out] pszTranslatedUrl

Tipo: PWSTR

Puntero a un búfer que, cuando esta función devuelve correctamente, recibe los caracteres copiados. El búfer debe ser lo suficientemente grande como para contener el número de caracteres WCHAR especificados por el parámetro cchMax , incluido el carácter NULL de terminación. Este parámetro puede ser igual al parámetro pcszUrl para corregir una dirección URL en contexto. Si pszTranslatedUrl no es igual a pcszUrl, el búfer al que apunta pszTranslatedUrl no debe superponerse al búfer señalado por pcszUrl.

cchMax

Tipo: DWORD

Número de caracteres WCHAR que se pueden contener en el búfer al que apunta pszTranslatedUrl. Este parámetro debe ser mayor que cero.

Valor devuelto

Tipo: HRESULT

Devuelve S_OK si la dirección URL propuesta ya era aceptable o se corrigió correctamente. El búfer pszTranslatedUrl contiene la dirección URL corregida o la dirección URL original si no se necesitaba ninguna corrección. Devuelve S_FALSE si no se pudo reconocer la dirección URL propuesta lo suficiente como para corregirse. De lo contrario, devuelve un código de error COM estándar.

Comentarios

La función UrlFixup reconoce los esquemas especificados por la enumeración URL_SCHEME .

La prioridad se asigna al primer carácter de la sección de identificador de protocolo, por lo que htp se convertirá en http en lugar de ftp.

Nota No use esta función para la transformación de datos determinista. La heurística usada por UrlFixupW puede cambiar de una versión a la siguiente. La función solo se debe usar para corregir la entrada del usuario posiblemente no válida.
 
Esta función solo está disponible en una versión Unicode.

Ejemplos

En este ejemplo se muestra cómo usar UrlFixupW. Tenga en cuenta que las cuatro últimas correcciones automáticas probablemente no eran lo que el usuario pretendía y mostrar las limitaciones de la heurística usada por la función.


#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
                

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shlwapi.h
Archivo DLL Shlwapi.dll (versión 5.0 o posterior)