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
.
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) |