Função UrlCombineW (shlwapi.h)
Quando fornecido com uma URL relativa e sua base, retorna uma URL em forma canônica.
Sintaxe
LWSTDAPI UrlCombineW(
[in] PCWSTR pszBase,
[in] PCWSTR pszRelative,
[out, optional] PWSTR pszCombined,
[in, out] DWORD *pcchCombined,
DWORD dwFlags
);
Parâmetros
[in] pszBase
Tipo: PCTSTR
Um ponteiro para uma cadeia de caracteres terminada em nulo de comprimento máximo INTERNET_MAX_URL_LENGTH que contém a URL base.
[in] pszRelative
Tipo: PCTSTR
Um ponteiro para uma cadeia de caracteres terminada em nulo de comprimento máximo INTERNET_MAX_URL_LENGTH que contém a URL relativa.
[out, optional] pszCombined
Tipo: PTSTR
Um ponteiro para um buffer que, quando essa função retorna com êxito, recebe uma cadeia de caracteres terminada em nulo que contém a URL combinada.
[in, out] pcchCombined
Tipo: DWORD*
Um ponteiro para um valor que, na entrada, é definido como o número de caracteres no buffer pszCombined . Quando a função retorna com êxito, o valor depende se a função é bem-sucedida ou retorna E_POINTER. Para outros valores retornados, o valor desse parâmetro não tem sentido.
dwFlags
Tipo: DWORD
Sinalizadores que especificam como a URL é convertida em formulário canônico. Os sinalizadores a seguir podem ser combinados.
URL_DONT_SIMPLIFY (0x08000000)
Trate '/./' e '/.. /' em uma cadeia de caracteres de URL como caracteres literais, não como abreviação para navegação. Consulte Comentários para obter mais discussões.
URL_ESCAPE_PERCENT (0x00001000)
Converta qualquer ocorrência de '%' em sua sequência de escape.
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_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_NO_META
Definido como o mesmo que URL_DONT_SIMPLIFY.
URL_PLUGGABLE_PROTOCOL (0x40000000)
Combine URLs com protocolos conectáveis definidos pelo cliente, de acordo com a especificação 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_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 são ignoradas. 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_AS_UTF8 (0x00040000)
Windows 7 e posterior. Codificar por porcentagem todos os caracteres não ASCII como seus equivalentes UTF-8.
Retornar valor
Tipo: HRESULT
Retorna códigos de erro COM padrão, incluindo o seguinte.
Código de retorno | Descrição |
---|---|
|
pszCombined aponta para uma cadeia de caracteres que contém as URLs combinadas. O valor de pcchCombined é definido como o número de caracteres na cadeia de caracteres, sem contar o caractere NULL de terminação. |
|
O buffer era muito pequeno. O valor de pcchCombined é definido como o número mínimo de caracteres que o buffer deve ser capaz de conter, incluindo o caractere NULL de terminação. |
Comentários
Os itens entre barras são tratados como identificadores hierárquicos; o último item especifica o documento em si. Você deve inserir uma barra (/) após o nome do documento para acrescentar mais itens; caso contrário, UrlCombine troca um documento por outro. Por exemplo:
hRetVal = UrlCombine(TEXT("http://xyz/test/abc"),
TEXT("bar"),
lpszCombined,
&dwLength, 0);
O código anterior retorna a URL http://xyz/test/bar. Se você quiser que a URL combinada seja http://xyz/test/abc/bar, use a chamada a seguir para UrlCombine.
hRetVal = UrlCombine(TEXT("http://xyz/test/abc/"),
TEXT("bar"),
lpszCombined,
&dwLength, 0);
Se uma cadeia de caracteres de URL contiver '/.. /' ou '/./', UrlCombine geralmente trata os caracteres como se indicassem 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". 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á.
Observação
O cabeçalho shlwapi.h define UrlCombine 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
Requisito | Valor |
---|---|
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) |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de