PathCchCombine-Funktion (pathcch.h)

Kombiniert zwei Pfadfragmente zu einem einzelnen Pfad. Diese Funktion kanonisiert auch alle relativen Pfadelemente und entfernt die Elemente "." und ".", um den endgültigen Pfad zu vereinfachen.

Diese Funktion unterscheidet sich von PathCchCombineEx dadurch, dass Sie auf einen endgültigen Pfad mit der Länge MAX_PATH beschränkt sind.

Diese Funktion unterscheidet sich von PathAllocCombine darin, dass der Aufrufer die Größe der zurückgegebenen Zeichenfolge deklarieren muss, die im Stapel gespeichert ist.

Diese Funktion unterscheidet sich von PathCombine dadurch, dass sie Pfade mit den Präfixen "\", "\?" und "\?\UNC" akzeptiert.

Hinweis Diese Funktion, PathCchCombineEx oder PathAllocCombine sollte anstelle von PathCombine verwendet werden, um die Möglichkeit eines Pufferüberlaufs zu verhindern.

Syntax

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

Parameter

[out] pszPathOut

Ein Zeiger auf einen Puffer, der bei erfolgreicher Rückgabe dieser Funktion die kombinierte Pfadzeichenfolge empfängt. Dieser Parameter kann auf denselben Puffer wie pszPathIn oder pszMore verweisen.

[in] cchPathOut

Die Größe des Puffers, auf den pszPathOut in Zeichen verweist.

[in, optional] pszPathIn

Ein Zeiger auf die erste Pfadzeichenfolge. Dieser Wert kann NULL sein.

[in, optional] pszMore

Ein Zeiger auf die zweite Pfadzeichenfolge. Wenn dieser Pfad mit einem einzelnen umgekehrten Schrägstrich beginnt, wird er nur mit dem Stamm des Pfads kombiniert, auf den von pszPathIn verwiesen wird. Wenn dieser Pfad voll qualifiziert ist, wird er direkt in den Ausgabepuffer kopiert, ohne mit dem anderen Pfad kombiniert zu werden. Dieser Wert kann NULL sein.

Rückgabewert

Diese Funktion gibt einen HRESULT-Code zurück, einschließlich des folgenden.

Rückgabecode BESCHREIBUNG
S_OK
Die Funktion wurde erfolgreich ausgeführt. Beachten Sie, dass dies auch den Fall einer leeren Erweiterung umfasst, z. B. einen Punkt ohne Zeichen. In diesem Fall wird die ursprüngliche Zeichenfolge unverändert zurückgegeben.
E_INVALIDARG
Dieser Wert kann durch mehrere Faktoren verursacht werden, z. B. dass der pszPathOut-Param auf NULL festgelegt wird, oder der cchPathOut-Wert auf 0 oder ein Wert größer als PATHCCH_MAX_CCH festgelegt wird.
E_OUTOFMEMORY
Die Funktion konnte nicht genügend Arbeitsspeicher für die Ausführung des Vorgangs zuweisen.
PATHCCH_E_FILENAME_TOO_LONG
Die Größe eines oder beider ursprünglichen Pfade wurde PATHCCH_MAX_CCH überschritten.

Hinweise

Wenn sowohl pszPathIn als auch pszMoreNULL sind oder auf leere Zeichenfolgen zeigen, wird ein einzelner umgekehrter Schrägstrich in den Puffer kopiert, auf den von pszPathOut verwiesen wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile pathcch.h
Bibliothek Pathcch.lib

Weitere Informationen

PathCchCanonicalize

PathCchCanonicalizeEx

PathCchCombineEx