KernelBasePathCchRemoveBackslashEx Method

Removes the trailing backslash from the end of a path string.

This function differs from PathCchRemoveBackslash(StringBuilder, UInt32) in that it can return a pointer to the new end of the string and report the number of unused characters remaining in the buffer.

This function differs from PathRemoveBackslash(StringBuilder) in that it accepts paths with "\", "\?" and "\?\UNC" prefixes.

Note This function, or PathCchRemoveBackslash(StringBuilder, UInt32), should be used in place of PathRemoveBackslash(StringBuilder) to prevent the possibility of a buffer overrun.

Definition

Namespace: DevCase.Win32.NativeMethods
Assembly: DevCase.net48 (in DevCase.net48.dll) Version: 6.0.0.0 (6.0)
XMLNS for XAML: Not mapped to an xmlns.
[DllImportAttribute("KernelBase.dll", CharSet = CharSet.Auto, BestFitMapping = false, 
	ThrowOnUnmappableChar = true)]
public static HResult PathCchRemoveBackslashEx(
	StringBuilder buffer,
	uint bufferSize,
	out IntPtr refEnd,
	out uint refRemaining
)

Parameters

buffer  StringBuilder
A pointer to the path string.

When this function returns successfully, the string contains the path with any trailing backslash removed.

If no trailing backslash was found, the string is unchanged.

bufferSize  UInt32
The size of the buffer pointed to by buffer, in characters.
refEnd  IntPtr
A value that, when this function returns successfully, receives the address of a pointer to end of the new string.

If the string is a root path such as "C:", the pointer points to the backslash; otherwise the pointer points to the string's terminating null character.

refRemaining  UInt32
A pointer to a value that, when this function returns successfully, receives the number of unused characters in the destination buffer, including the terminating null character.

If the string is a root path such as "C:", this count includes the backslash in that string.

Return Value

HResult
This function returns S_OK if the function was successful, S_FALSE if the string was a root path or if no backslash was found, or an error code otherwise.

Remarks

See Also