PathCchAppend function (pathcch.h)

Appends one path to the end of another.

This function differs from PathCchAppendEx in that you are restricted to a final path of length MAX_PATH.

This function differs from PathAppend in that it accepts paths with "\", "\?" and "\?\UNC" prefixes.

Note  This function, or PathCchAppendEx, should be used in place of PathAppend to prevent the possibility of a buffer overrun.


  [in, out]      PWSTR  pszPath,
  [in]           size_t cchPath,
  [in, optional] PCWSTR pszMore


[in, out] pszPath

A pointer to a buffer that, on entry, contains the original path. When this function returns successfully, the buffer contains the original path plus the appended path.

[in] cchPath

The size of the buffer pointed to by pszPath, in characters.

[in, optional] pszMore

A pointer to the path to append to the end of the path pointed to by pszPath. UNC paths and paths beginning with the "\?" sequence are accepted and recognized as fully-qualified paths. These paths replace the string pointed to by pszPath instead of being appended to it.

Return value

If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT code, including the following.

Return code Description
Either pszPath or pszMore is NULL, cchPath is 0, or cchPath is greater than PATHCCH_MAX_CCH.
The resulting string would exceed PATHCCH_MAX_CCH.
The function could not allocate a buffer of the necessary size.


This function inserts a backslash between the two strings, if one is not already present.


Requirement Value
Minimum supported client Windows 8 [desktop apps | UWP apps]
Minimum supported server Windows Server 2012 [desktop apps | UWP apps]
Target Platform Windows
Header pathcch.h
Library Pathcch.lib

See also