Função PathAllocCombine (pathcch.h)

Concatena dois fragmentos de caminho em um único caminho. Essa função também canoniza todos os elementos de caminho relativo, substituindo elementos de caminho como "." e "..".

Essa função difere de PathCchCombine e PathCchCombineEx , pois retorna o resultado no heap. Isso significa que o chamador não precisa declarar o tamanho da cadeia de caracteres retornada e reduz o uso da pilha.

Essa função é diferente de PathCombine , pois aceita caminhos com prefixos "\", "\?" e "\?\UNC".

Nota Essa função, PathCchCombine ou PathCchCombineEx, deve ser usada no lugar de PathCombine.
<

Sintaxe

WINPATHCCHAPI HRESULT PathAllocCombine(
  [in]  PCWSTR pszPathIn,
  [in]  PCWSTR pszMore,
  [in]  ULONG  dwFlags,
  [out] PWSTR  *ppszPathOut
);

Parâmetros

[in] pszPathIn

Um ponteiro para a primeira cadeia de caracteres de caminho.

[in] pszMore

Um ponteiro para a segunda cadeia de caracteres de caminho. Se esse caminho começar com uma única barra invertida, ele será combinado apenas com a raiz do caminho apontado por pszPathIn. Se esse caminho for totalmente qualificado, ele será copiado diretamente para o buffer de saída sem ser combinado com o outro caminho.

[in] dwFlags

Um ou mais dos seguintes sinalizadores:

Valor Significado
PATHCCH_NONE
0x0000000
Não permita a construção de caminhos \\?\ (ou seja, caminhos longos) mais longos do que MAX_PATH .
PATHCCH_ALLOW_LONG_PATHS
0x00000001
Permitir a construção de caminhos \\?\ mais longos do que MAX_PATH .
PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS
0x00000002
Força a API a tratar o chamador como caminho longo habilitado, independentemente do estado habilitado para nome longo do processo. Essa opção só pode ser usada quando PATHCCH_ALLOW_LONG_PATHS é especificado e não pode ser usada com PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS.

Nota Esse valor está disponível a partir do Windows 10, versão 1703.

PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS
0x00000004
Força a API a tratar o chamador como caminho longo desabilitado, independentemente do estado habilitado para nome longo do processo. Essa opção só pode ser usada quando PATHCCH_ALLOW_LONG_PATHS é especificado e não pode ser usada com PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS.

Nota Esse valor está disponível a partir do Windows 10, versão 1703.

PATHCCH_DO_NOT_NORMALIZE_SEGMENTS
0x00000008
Desabilita a normalização de segmentos de caminho que inclui a remoção de pontos e espaços à direita. Isso permite o acesso a caminhos que a normalização do caminho win32 bloqueará.

Nota Esse valor está disponível a partir do Windows 10, versão 1703.

PATHCCH_ENSURE_IS_EXTENDED_LENGTH_PATH
0x00000010
Converte o caminho de entrada no formulário de caminho do dispositivo DOS de comprimento estendido (com o prefixo \\?\) se ainda não estiver nesse formulário. Isso permite o acesso a caminhos que, de outra forma, não são endereçáveis devido a regras de normalização do Win32 (que podem remover pontos e espaços à direita) e limitações de comprimento do caminho. Essa opção implica o mesmo comportamento de PATHCCH_DO_NOT_NORMALIZE_SEGMENTS.

Nota Esse valor está disponível a partir do Windows 10, versão 1703.

PATHCCH_ENSURE_TRAILING_SLASH
0x00000020
Ao combinar ou normalizar um caminho, verifique se há uma barra invertida à direita.

Nota Esse valor está disponível a partir do Windows 10, versão 1703.

[out] ppszPathOut

O endereço de um ponteiro para um buffer que, quando essa função retorna com êxito, recebe a cadeia de caracteres de caminho combinada. É responsabilidade do chamador liberar esse recurso, quando ele não for mais necessário, chamando a função LocalFree . Esse valor não pode ser NULL.

Retornar valor

Se essa função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

Embora pszPathIn ou pszMore possam NULL, ambos não podem ser NULL.

Essa função dá suporte a estes formulários de caminho alternativos:

  • \\?\
  • \\?\\UNC\
  • \\?\Volume{guid}\

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho pathcch.h
Biblioteca Pathcch.lib

Confira também

PathCchCombine

PathCchCombineEx