Share via


Função UrlFixupW (shlwapi.h)

[UrlFixupW está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Ele pode estar alterado ou indisponível em versões subsequentes.]

Tenta corrigir uma URL cujo identificador de protocolo está incorreto. Por exemplo, htttp será alterado para http.

Sintaxe

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

Parâmetros

[in] pcszUrl

Tipo: PCWSTR

Um ponteiro para uma cadeia de caracteres terminada em nulo que contém a URL a ser corrigida. Essa cadeia de caracteres não deve exceder INTERNET_MAX_PATH_LENGTH caracteres de comprimento, incluindo o caractere NULL de terminação.

[out] pszTranslatedUrl

Tipo: PWSTR

Um ponteiro para um buffer que, quando essa função retorna com êxito, recebe os caracteres copiados. O buffer deve ser grande o suficiente para conter o número de caracteres WCHAR especificados pelo parâmetro cchMax , incluindo o caractere NULL de terminação. Esse parâmetro pode ser igual ao parâmetro pcszUrl para corrigir uma URL em vigor. Se pszTranslatedUrl não for igual a pcszUrl, o buffer apontado por pszTranslatedUrl não deverá sobrepor o buffer apontado por pcszUrl.

cchMax

Tipo: DWORD

O número de caracteres WCHAR que podem ser contidos no buffer apontado por pszTranslatedUrl. Esse parâmetro deve ser maior que zero.

Retornar valor

Tipo: HRESULT

Retorna S_OK se a URL proposta já era aceitável ou foi corrigida com êxito. O buffer pszTranslatedUrl contém a URL corrigida ou a URL original se nenhuma correção for necessária. Retorna S_FALSE se a URL proposta não puder ser reconhecida o suficiente para ser corrigida. Caso contrário, retornará um código de erro COM padrão.

Comentários

A função UrlFixup reconhece os esquemas especificados pela enumeração URL_SCHEME .

A prioridade é dada ao primeiro caractere na seção de identificador de protocolo, portanto htp , será convertida http em em vez de ftp.

Nota Não use essa função para transformação de dados determinística. A heurística usada por UrlFixupW pode mudar de uma versão para outra. A função só deve ser usada para corrigir a entrada de usuário possivelmente inválida.
 
Essa função está disponível apenas em uma versão Unicode.

Exemplos

Este exemplo mostra como usar UrlFixupW. Observe que as últimas quatro autocorreções provavelmente não foram o que o usuário pretendia e demonstram limitações da heurística usada pela função.


#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 Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shlwapi.h
DLL Shlwapi.dll (versão 5.0 ou posterior)