Поделиться через


Функция PathCchCombine (pathcch.h)

Объединяет два фрагмента пути в один путь. Эта функция также канонизирует все относительные элементы пути, удаляя элементы "." и ".." для упрощения конечного пути.

Эта функция отличается от PathCchCombineEx тем, что вы ограничены конечным путем длины MAX_PATH.

Эта функция отличается от PathAllocCombine тем, что вызывающий объект должен объявить размер возвращаемой строки, которая хранится в стеке.

Эта функция отличается от PathCombine тем, что она принимает пути с префиксами "\", "\?" и "\?\UNC".

Примечание Эту функцию PathCchCombineEx или PathAllocCombine следует использовать вместо PathCombine , чтобы предотвратить возможность переполнения буфера.

Синтаксис

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

Параметры

[out] pszPathOut

Указатель на буфер, который при успешном возврате этой функции получает объединенную строку пути. Этот параметр может указывать на тот же буфер, что и pszPathIn или pszMore.

[in] cchPathOut

Размер буфера, на который указывает pszPathOut, в символах.

[in, optional] pszPathIn

Указатель на первую строку пути. Это значение может иметь значение NULL.

[in, optional] pszMore

Указатель на вторую строку пути. Если этот путь начинается с одной обратной косой черты, он объединяется только с корнем пути, на который указывает pszPathIn. Если этот путь является полным, он копируется непосредственно в выходной буфер без объединения с другим путем. Это значение может иметь значение NULL.

Возвращаемое значение

Эта функция возвращает код HRESULT , включая следующий код.

Код возврата Описание
S_OK
Функция выполнена успешно. Обратите внимание, что сюда также относится пустое расширение, например точка без символов после него. В этом случае исходная строка возвращается в неотправленном виде.
E_INVALIDARG
Это значение может быть вызвано несколькими причинами, такими как параметр pszPathOut , задающий значение NULL, или значение cchPathOut , равное 0 или значение, превышающее PATHCCH_MAX_CCH.
E_OUTOFMEMORY
Функции не удалось выделить достаточно памяти для выполнения операции.
PATHCCH_E_FILENAME_TOO_LONG
Размер одного или обоих исходных путей превысил PATHCCH_MAX_CCH.

Комментарии

Если и pszPathIn , и pszMore имеют значение NULL или указывают на пустые строки, одна обратная косая черта копируется в буфер, на который указывает pszPathOut.

Требования

Требование Значение
Минимальная версия клиента Windows 8 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header pathcch.h
Библиотека Pathcch.lib

См. также раздел

PathCchCanonicalize

PathCchCanonicalizeEx

PathCchCombineEx