Share via


PathCchCombine 関数 (pathcch.h)

2 つのパス フラグメントを 1 つのパスに結合します。 この関数では、相対パス要素も正規化され、"." 要素と ".." 要素が削除され、最終的なパスが簡略化されます。

この関数は 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

2 番目のパス文字列へのポインター。 このパスが 1 つの円記号で始まる場合は、 pszPathIn が指すパスのルートとのみ組み合わされます。 このパスが完全修飾されている場合は、他のパスと組み合わされることなく、出力バッファーに直接コピーされます。 この値には NULL を指定できます。

戻り値

この関数は、次のような HRESULT コードを返します。

リターン コード 説明
S_OK
関数が正常に実行されました。 これには、後に文字のないピリオドなど、空の拡張子の場合も含まれていることに注意してください。 その場合、元の文字列は変更されていない状態で返されます。
E_INVALIDARG
この値は、 pszPathOut パラメーターが NULL に設定されている、 cchPathOut 値が 0 に設定されている、または PATHCCH_MAX_CCH より大きい値など、いくつかのことが原因で発生する可能性があります。
E_OUTOFMEMORY
関数は、操作を実行するのに十分なメモリを割り当てませんでした。
PATHCCH_E_FILENAME_TOO_LONG
元のパスの一方または両方のサイズが PATHCCH_MAX_CCHを超えました。

注釈

pszPathInpszMore の両方が NULL または空の文字列を指している場合は、pszPathOut が指すバッファーに 1 つの円記号がコピーされます。

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー pathcch.h
Library Pathcch.lib

こちらもご覧ください

PathCchCanonicalize

PathCchCanonicalizeEx

PathCchCombineEx