PathAllocCombine 関数 (pathcch.h)

2 つのパス フラグメントを 1 つのパスに連結します。 この関数は、相対パス要素も正規化し、"." や ".." などのパス要素を置き換えます。

この関数は、ヒープで結果を返す点で PathCchCombine および PathCchCombineEx とは異なります。 つまり、呼び出し元は返される文字列のサイズを宣言する必要がないため、スタックの使用が減ります。

この関数は PathCombine とは異なり、"\"、"\?" および "\?\UNC" プレフィックスを持つパスを受け入れる点で異なります。

メモ この関数 PathCchCombine または PathCchCombineEx は、 PathCombine の代わりに使用する必要があります。
<

構文

WINPATHCCHAPI HRESULT PathAllocCombine(
  [in]  PCWSTR pszPathIn,
  [in]  PCWSTR pszMore,
  [in]  ULONG  dwFlags,
  [out] PWSTR  *ppszPathOut
);

パラメーター

[in] pszPathIn

最初のパス文字列へのポインター。

[in] pszMore

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

[in] dwFlags

次のフラグの 1 つまたは複数:

意味
PATHCCH_NONE
0x0000000
\\?\ パス (つまり、長いパス) を MAX_PATH より長く構築することはできません。
PATHCCH_ALLOW_LONG_PATHS
0x00000001
を超える \\?\ パス の構築MAX_PATH 許可します。
PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS
0x00000002
プロセスの長い名前が有効な状態とは関係なく、呼び出し元を長いパスが有効として処理するように API に強制します。 このオプションは、 PATHCCH_ALLOW_LONG_PATHS が指定されている場合にのみ使用でき、 PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESSでは使用できません。

メモこの値は、Windows 10 バージョン 1703 以降で使用できます。

PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS
0x00000004
プロセスの長い名前が有効な状態とは関係なく、呼び出し元を長いパスが無効として API に強制的に処理します。 このオプションは、 PATHCCH_ALLOW_LONG_PATHS が指定されている場合にのみ使用でき、 PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESSでは使用できません。

メモこの値は、Windows 10 バージョン 1703 以降で使用できます。

PATHCCH_DO_NOT_NORMALIZE_SEGMENTS
0x00000008
末尾のドットとスペースの削除を含むパス セグメントの正規化を無効にします。 これにより、win32 パス正規化がブロックするパスへのアクセスが可能になります。

メモこの値は、Windows 10 バージョン 1703 以降で使用できます。

PATHCCH_ENSURE_IS_EXTENDED_LENGTH_PATH
0x00000010
入力パスを拡張長 DOS デバイス パス フォーム (\\?\ プレフィックス付き) に変換します (まだその形式でない場合)。 これにより、Win32 正規化規則 (末尾のドットとスペースを削除できる) とパスの長さの制限により、アドレス指定できないパスにアクセスできます。 このオプションは、PATHCCH_DO_NOT_NORMALIZE_SEGMENTSと同じ動作を意味 します

メモこの値は、Windows 10 バージョン 1703 以降で使用できます。

PATHCCH_ENSURE_TRAILING_SLASH
0x00000020
パスを結合または正規化する場合は、末尾に円記号があることを確認します。

メモこの値は、Windows 10 バージョン 1703 以降で使用できます。

[out] ppszPathOut

この関数が正常に返されるときに、結合されたパス文字列を受け取るバッファーへのポインターのアドレス。 このリソースが不要になったときに LocalFree 関数を呼び出すことで、このリソースを解放するのは呼び出し元の責任です。 この値を NULL にすることはできません。

戻り値

この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。

注釈

pszPathIn または pszMoreNULL にできますが、両方を NULL にすることはできません。

この関数は、次の代替パス形式をサポートしています。

  • \\?\
  • \\。\\Unc\
  • \\?\Volume{guid}\

要件

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

こちらもご覧ください

PathCchCombine

PathCchCombineEx