Função UrlCanonicalizeA (shlwapi.h)
Converte uma cadeia de caracteres de URL em forma canônica.
Sintaxe
LWSTDAPI UrlCanonicalizeA(
[in] PCSTR pszUrl,
[out] PSTR pszCanonicalized,
[in, out] DWORD *pcchCanonicalized,
DWORD dwFlags
);
Parâmetros
[in] pszUrl
Tipo: PCTSTR
Um ponteiro para uma cadeia de caracteres terminada em nulo de comprimento máximo INTERNET_MAX_URL_LENGTH que contém uma cadeia de caracteres de URL. Se a cadeia de caracteres não fizer referência a um arquivo, ela deverá incluir um esquema válido, como "http://".
[out] pszCanonicalized
Tipo: PTSTR
Um ponteiro para um buffer que, quando essa função retorna com êxito, recebe a URL convertida como uma cadeia de caracteres terminada em nulo.
[in, out] pcchCanonicalized
Tipo: DWORD*
Um ponteiro para um valor que, na entrada, é definido como o número de caracteres no buffer pszCanonicalized .
dwFlags
Tipo: DWORD
Os sinalizadores que especificam como a URL é convertida em forma canônica. Os sinalizadores a seguir podem ser combinados.
URL_UNESCAPE (0x10000000)
Cancele o escape de todas as sequências de escape que as URLs contêm, com duas exceções. As sequências de escape para "?" e "#" não ficam sem escape. Se um dos sinalizadores de URL_ESCAPE_XXX também estiver definido, as duas URLs serão primeiro não escapadas, depois combinadas e, em seguida, escapadas.
URL_ESCAPE_UNSAFE (0x20000000)
substitua caracteres desprotegidos pelas suas sequências de escape. Caracteres não seguros são os caracteres que podem ser alterados durante o transporte pela Internet e incluem os caracteres (<, >, ", #, {, }, |, , ^, [, ]e '). Esse sinalizador se aplica a todas as URLs, incluindo URLs opacas.
URL_PLUGGABLE_PROTOCOL (0x40000000)
Combine URLs com protocolos conectáveis definidos pelo cliente, de acordo com a especificação do W3C. Esse sinalizador não se aplica a protocolos padrão, como FTP, HTTP, Gopher e assim por diante. Se esse sinalizador estiver definido, UrlCombine não simplificará as URLs, portanto, não será necessário definir também URL_DONT_SIMPLIFY.
URL_ESCAPE_SPACES_ONLY (0x04000000)
substitua apenas espaços por sequências de escape. Esse sinalizador tem precedência sobre URL_ESCAPE_UNSAFE, mas não se aplica a URLs opacas.
URL_DONT_SIMPLIFY (0x08000000)
Trate "/./" e "/../" em uma cadeia de caracteres de URL como caracteres literais, não como uma abreviação para navegação. Consulte Comentários para mais discussões.
URL_NO_META (0x08000000)
Definido como o mesmo que URL_DONT_SIMPLIFY.
URL_ESCAPE_PERCENT (0x00001000)
converta ocorrências de "%" em sua sequência de escape.
URL_ESCAPE_AS_UTF8 (0x00040000)
Windows 7 e posterior. Codificar por porcentagem todos os caracteres não ASCII como seus equivalentes UTF-8.
Valor retornado
Tipo: HRESULT
Se essa função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.
Comentários
Essa função executa tarefas como substituir caracteres não seguros por suas sequências de escape e recolhimento de sequências como ".....".
Se uma cadeia de caracteres de URL contiver "/.. /" ou "/./", UrlCanonicalize trata os caracteres como indicando a navegação na hierarquia de URL. A função simplifica as URLs antes de combiná-las. Por exemplo, "/hello/cruel/.. /world" é simplificado para "/hello/world". Exceções a esse comportamento padrão ocorrem nestes casos:
- Se o sinalizador URL_DONT_SIMPLIFY for definido em dwFlags, a função não simplificará as URLs. Nesse caso, "/hello/cruel/.. /world" é deixado como está.
- Se "/.. /" ou "/./" é o primeiro segmento no caminho (por exemplo, "http://domain/../path1/path2/file.htm"), UrlCanonicalize gera o caminho exatamente como foi a entrada.
Observação
O cabeçalho shlwapi.h define UrlCanonicalize como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Cliente mínimo com suporte | Windows 2000 Professional, Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | shlwapi.h |
Biblioteca | Shlwapi.lib |
DLL | Shlwapi.dll (versão 5.0 ou posterior) |