Funzione PathCchCombine (pathcch.h)

Combina due frammenti di percorso in un singolo percorso. Questa funzione canonizza anche gli elementi del percorso relativi, rimuovendo "." e ".." per semplificare il percorso finale.

Questa funzione differisce da PathCchCombineEx in cui si è limitati a un percorso finale di lunghezza MAX_PATH.

Questa funzione differisce da PathAllocCombine in cui il chiamante deve dichiarare le dimensioni della stringa restituita, archiviata nello stack.

Questa funzione differisce da PathCombine in quanto accetta percorsi con "\", "\?" e "\?\UNC".

Nota Questa funzione, PathCchCombineEx o PathAllocCombine deve essere usata al posto di PathCombine per evitare la possibilità di un overrun del buffer.

Sintassi

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

Parametri

[out] pszPathOut

Puntatore a un buffer che, quando questa funzione restituisce correttamente, riceve la stringa di percorso combinata. Questo parametro può puntare allo stesso buffer di pszPathIn o pszMore.

[in] cchPathOut

Dimensioni del buffer a cui punta pszPathOut, in caratteri.

[in, optional] pszPathIn

Puntatore alla prima stringa di percorso. Questo valore può essere NULL.

[in, optional] pszMore

Puntatore alla seconda stringa di percorso. Se questo percorso inizia con una singola barra rovesciata, viene combinato con solo la radice del percorso a cui fa riferimento pszPathIn. Se questo percorso è completo, viene copiato direttamente nel buffer di output senza essere combinato con l'altro percorso. Questo valore può essere NULL.

Valore restituito

Questa funzione restituisce un codice HRESULT , incluso quanto segue.

Codice restituito Descrizione
S_OK
Funzione completata. Si noti che questo include anche il caso di un'estensione vuota, ad esempio un punto senza caratteri che lo seguono. In tal caso, la stringa originale viene restituita invariata.
E_INVALIDARG
Questo valore può essere causato da diverse cose, ad esempio il param pszPathOut impostato su NULL o il valore cchPathOut impostato su 0 o un valore maggiore di PATHCCH_MAX_CCH.
E_OUTOFMEMORY
La funzione non ha potuto allocare memoria sufficiente per eseguire l'operazione.
PATHCCH_E_FILENAME_TOO_LONG
Le dimensioni di uno o entrambi i percorsi originali superano PATHCCH_MAX_CCH.

Commenti

Se sia pszPathIn che pszMore sono NULL o puntano a stringhe vuote, una singola barra rovesciata viene copiata nel buffer a cui fa riferimento pszPathOut.

Requisiti

Requisito Valore
Client minimo supportato Windows 8 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione pathcch.h
Libreria Pathcch.lib

Vedi anche

PathCchCanonicalize

PathCchCanonicalizeEx

PathCchCombineEx