Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

PathCchAppend function

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.


HRESULT PathCchAppend(
  _Inout_   PWSTR pszPath,
  _In_      size_t cchPath,
  _In_opt_  PCWSTR pszMore


pszPath [in, out]

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.

cchPath [in]

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

pszMore [in, optional]

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 codeDescription

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 neccessary size.



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


Minimum supported client

Windows 8 [desktop apps only]

Minimum supported server

Windows Server 2012 [desktop apps only]





See also




Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

© 2014 Microsoft. All rights reserved.