PathCchCombineEx, fonction (pathcch.h)

Combine deux fragments de chemin en un seul chemin. Cette fonction canonique également tous les éléments de chemin d’accès relatifs, en supprimant les éléments « . » et « . » pour simplifier le chemin final.

Cette fonction diffère de PathCchCombine en ce qu’elle permet de construire un chemin final plus long.

Cette fonction diffère de PathAllocCombine en ce que l’appelant doit déclarer la taille de la chaîne retournée, qui est stockée sur la pile.

Cette fonction diffère de PathCombine en ce qu’elle accepte les chemins avec les préfixes « \ », « \ ? » et « \ ?\UNC ».

Note Cette fonction, PathCchCombine ou PathAllocCombine doit être utilisée à la place de PathCombine pour éviter la possibilité d’un dépassement de mémoire tampon.

Syntaxe

WINPATHCCHAPI HRESULT PathCchCombineEx(
  [out]          PWSTR  pszPathOut,
  [in]           size_t cchPathOut,
  [in, optional] PCWSTR pszPathIn,
  [in, optional] PCWSTR pszMore,
  [in]           ULONG  dwFlags
);

Paramètres

[out] pszPathOut

Pointeur vers une mémoire tampon qui, lorsque cette fonction retourne correctement, reçoit la chaîne de chemin d’accès combinée. Ce paramètre peut pointer vers la même mémoire tampon que pszPathIn ou pszMore.

[in] cchPathOut

Taille de la mémoire tampon pointée par pszPathOut, en caractères.

[in, optional] pszPathIn

Pointeur vers la première chaîne de chemin d’accès. Cette valeur peut être NULL.

[in, optional] pszMore

Pointeur vers la deuxième chaîne de chemin d’accès. Si ce chemin commence par une seule barre oblique inverse, il est combiné avec uniquement la racine du chemin vers laquelle pointe pszPathIn. Si ce chemin est complet, il est copié directement dans la mémoire tampon de sortie sans être combiné avec l’autre chemin. Cette valeur peut être NULL.

[in] dwFlags

Un ou plusieurs des indicateurs suivants :

Valeur Signification
PATHCCH_NONE
0x0000000
N’autorisez pas la construction de chemins \\ ?\ (c’est-à-dire des chemins longs) plus longs que MAX_PATH .
PATHCCH_ALLOW_LONG_PATHS
0x00000001
Autorisez la construction de chemins \\ ?\ plus longs que MAX_PATH. Notez que cchPathOut doit être supérieur à MAX_PATH. Si ce n’est pas le cas, cet indicateur est ignoré.
PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS
0x00000002
Force l’API à traiter l’appelant comme chemin long activé, indépendamment de l’état de nom long du processus activé. Cette option ne peut être utilisée que lorsque PATHCCH_ALLOW_LONG_PATHS est spécifié et ne peut pas être utilisée avec PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS.

Note Cette valeur est disponible à partir de Windows 10, version 1703.

PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS
0x00000004
Force l’API à traiter l’appelant comme chemin d’accès long désactivé, indépendamment de l’état activé du nom long du processus. Cette option ne peut être utilisée que lorsque PATHCCH_ALLOW_LONG_PATHS est spécifié et ne peut pas être utilisée avec PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS.

Note Cette valeur est disponible à partir de Windows 10, version 1703.

PATHCCH_DO_NOT_NORMALIZE_SEGMENTS
0x00000008
Désactive la normalisation des segments de chemin qui inclut la suppression des points de fin et des espaces. Cela permet d’accéder aux chemins que la normalisation des chemins win32 bloquera.

Note Cette valeur est disponible à partir de Windows 10, version 1703.

PATHCCH_ENSURE_IS_EXTENDED_LENGTH_PATH
0x00000010
Convertit le chemin d’entrée dans le formulaire de chemin d’accès de l’appareil DOS de longueur étendue (avec le préfixe \\ ?\) s’il n’est pas déjà dans ce formulaire. Cela permet d’accéder aux chemins qui ne sont autrement pas adressables en raison des règles de normalisation Win32 (qui peuvent supprimer des points et des espaces de fin) et des limitations de longueur de chemin. Cette option implique le même comportement de PATHCCH_DO_NOT_NORMALIZE_SEGMENTS.

Note Cette valeur est disponible à partir de Windows 10, version 1703.

Valeur retournée

Cette fonction retourne un code HRESULT , y compris les éléments suivants.

Code de retour Description
S_OK
La fonction a réussi. Notez que cela inclut également le cas d’une extension vide, par exemple un point sans caractères. Dans ce cas, la chaîne d’origine est retournée sans que cela soit affecté.
E_INVALIDARG
Cette valeur peut être due à plusieurs éléments, tels que la valeur null du paramètre pszPathOut ou la valeur cchPathOut définie sur 0 ou une valeur supérieure à PATHCCH_MAX_CCH .
E_OUTOFMEMORY
La fonction n’a pas pu allouer suffisamment de mémoire pour effectuer l’opération.
PATHCCH_E_FILENAME_TOO_LONG
La taille de l’un des chemins d’origine ou des deux a dépassé PATHCCH_MAX_CCH .

Remarques

Si pszPathIn et pszMore ont la valeur NULL ou pointent vers des chaînes vides, une seule barre oblique inverse est copiée dans la mémoire tampon vers laquelle pointe pszPathOut.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête pathcch.h
Bibliothèque Pathcch.lib

Voir aussi

PathCchCanonicalize

PathCchCanonicalizeEx

PathCchCombine