18template<
typename StringType>
98 typedef typename StringType::PCXSTR
PCXSTR;
99 typedef typename StringType::PXSTR
PXSTR;
100 typedef typename StringType::XCHAR
XCHAR;
154 strTemp.ReleaseBuffer();
183 PXSTR str = strTemp.GetBuffer(nMaxChars);
185 strTemp.ReleaseBuffer();
198 if (*extension ==
'\0')
202 return (
int)(extension -
str);
370 operator const StringType&()
const noexcept
380 operator StringType&()
noexcept
StringType GetExtension() const
BOOL PathIsUNCX(LPCWSTR pszPath)
BOOL PathMakePrettyX(LPWSTR pszPath)
void PathCanonicalizeX(LPWSTR pszDst, LPCWSTR pszSrc)
void PathStripPathX(LPSTR pszPath)
int GetDriveNumber() const
void PathRemoveArgsX(LPWSTR pszPath)
BOOL AddExtension(PCXSTR pszExtension)
BOOL PathRenameExtensionX(LPSTR pszPath, LPCSTR pszExt)
BOOL PathIsSameRootX(LPCWSTR pszPath, LPCWSTR pszOther) const
void Combine(PCXSTR pszDir, PCXSTR pszFile)
BOOL IsUNCServerShare() const
CPathT< StringType > CommonPrefix(PCXSTR pszOther)
void PathCombineX(LPWSTR pszPathOut, LPCWSTR pszPathIn, LPCWSTR pszMore)
LPCWSTR PathFindExtensionX(LPCWSTR pszPath) const
BOOL CompactPath(HDC hDC, UINT nWidth)
BOOL PathIsUNCServerShareX(LPCSTR pszPath)
void PathQuoteSpacesX(LPSTR pszPath)
BOOL PathRelativePathToX(LPSTR pszPath, LPCSTR pszFrom, DWORD dwAttrFrom, LPCSTR pszTo, DWORD dwAttrTo)
BOOL PathIsPrefixX(LPCWSTR pszPath, LPCWSTR pszPrefix)
BOOL PathCompactPathX(HDC hDC, LPSTR pszPath, UINT dx)
LPCSTR PathSkipRootX(LPCSTR pszPath) const
void BuildRoot(int iDrive)
BOOL RenameExtension(PCXSTR pszExtension)
BOOL PathIsDirectoryX(LPCSTR pszPath) const
BOOL PathStripToRootX(LPSTR pszPath)
BOOL PathIsUNCServerX(LPCWSTR pszPath)
BOOL Append(PCXSTR pszMore)
LPCWSTR PathSkipRootX(LPCWSTR pszPath) const
void PathAddBackslashX(LPSTR pszPath)
BOOL PathStripToRootX(LPWSTR pszPath)
BOOL PathMatchSpecX(LPCWSTR pszPath, LPCWSTR pszSpec) const
void PathBuildRootX(LPWSTR pszRoot, int iDrive)
void PathRemoveExtensionX(LPWSTR pszPath)
BOOL PathIsRootX(LPCWSTR pszPath) const
BOOL PathIsUNCServerShareX(LPCWSTR pszPath)
BOOL PathIsRootX(LPCSTR pszPath) const
BOOL CompactPathEx(UINT nMaxChars, DWORD dwFlags=0)
BOOL PathAddExtensionX(LPWSTR pszPath, LPCWSTR pszExt)
BOOL PathRemoveFileSpecX(LPWSTR pszPath)
BOOL PathMatchSpecX(LPCSTR pszPath, LPCSTR pszSpec) const
BOOL PathFileExistsX(LPCSTR pszPath) const
void PathStripPathX(LPWSTR pszPath)
BOOL MatchSpec(PCXSTR pszSpec) const
BOOL PathIsPrefixX(LPCSTR pszPath, LPCSTR pszPrefix)
BOOL PathRelativePathToX(LPWSTR pszPath, LPCWSTR pszFrom, DWORD dwAttrFrom, LPCWSTR pszTo, DWORD dwAttrTo)
int PathGetDriveNumberX(LPCSTR pszPath) const
void PathBuildRootX(LPSTR pszRoot, int iDrive)
BOOL PathIsRelativeX(LPCSTR pszPath) const
BOOL PathCompactPathExX(LPWSTR pszOut, LPCWSTR pszSrc, UINT cchMax, DWORD dwFlags)
void PathRemoveBackslashX(LPWSTR pszPath)
BOOL PathMakePrettyX(LPSTR pszPath)
BOOL PathIsFileSpecX(LPCWSTR pszPath) const
void PathCanonicalizeX(LPSTR pszDst, LPCSTR pszSrc)
LPCSTR PathFindFileNameX(LPCSTR pszPath) const
void PathRemoveBackslashX(LPSTR pszPath)
BOOL PathIsUNCX(LPCSTR pszPath)
void PathUnquoteSpacesX(LPWSTR pszPath)
BOOL PathCompactPathExX(LPSTR pszOut, LPCSTR pszSrc, UINT cchMax, DWORD dwFlags)
BOOL PathAddExtensionX(LPSTR pszPath, LPCSTR pszExt)
LPCSTR PathFindExtensionX(LPCSTR pszPath) const
void PathUnquoteSpacesX(LPSTR pszPath)
BOOL PathIsRelativeX(LPCWSTR pszPath) const
void PathQuoteSpacesX(LPWSTR pszPath)
BOOL IsPrefix(PCXSTR pszPrefix) const
BOOL PathIsFileSpecX(LPCSTR pszPath) const
int PathGetDriveNumberX(LPCWSTR pszPath) const
CPathT(const CPathT< StringType > &path)
BOOL RelativePathTo(PCXSTR pszFrom, DWORD dwAttrFrom, PCXSTR pszTo, DWORD dwAttrTo)
BOOL PathRenameExtensionX(LPWSTR pszPath, LPCWSTR pszExt)
BOOL PathRemoveFileSpecX(LPSTR pszPath)
BOOL PathFileExistsX(LPCWSTR pszPath) const
int FindExtension() const
StringType::PCXSTR PCXSTR
void PathAddBackslashX(LPWSTR pszPath)
void PathCombineX(LPSTR pszPathOut, LPCSTR pszPathIn, LPCSTR pszMore)
BOOL PathAppendX(LPWSTR pszPath, LPCWSTR pszMore)
void PathRemoveBlanksX(LPSTR pszPath)
BOOL PathAppendX(LPSTR pszPath, LPCSTR pszMore)
void PathRemoveArgsX(LPSTR pszPath)
BOOL PathCompactPathX(HDC hDC, LPWSTR pszPath, UINT dx)
CPathT< StringType > PathCommonPrefixX(LPCSTR pszFile1, LPCSTR pszFile2, LPSTR pszPath)
BOOL PathIsSameRootX(LPCSTR pszPath, LPCSTR pszOther) const
void PathRemoveBlanksX(LPWSTR pszPath)
BOOL IsSameRoot(PCXSTR pszOther) const
BOOL PathIsUNCServerX(LPCSTR pszPath)
CPathT< StringType > & operator+=(PCXSTR pszMore)
BOOL PathIsDirectoryX(LPCWSTR pszPath) const
void PathRemoveExtensionX(LPSTR pszPath)
CPathT< StringType > PathCommonPrefixX(LPCWSTR pszFile1, LPCWSTR pszFile2, LPWSTR pszPath)
LPCWSTR PathFindFileNameX(LPCWSTR pszPath) const
int WINAPI PathCommonPrefixW(const WCHAR *file1, const WCHAR *file2, WCHAR *path)
BOOL WINAPI PathIsRootA(const char *path)
BOOL WINAPI PathMatchSpecA(const char *path, const char *mask)
BOOL WINAPI PathIsSameRootW(const WCHAR *path1, const WCHAR *path2)
void WINAPI PathRemoveExtensionW(WCHAR *path)
void WINAPI PathRemoveBlanksW(WCHAR *path)
BOOL WINAPI PathIsUNCW(const WCHAR *path)
LPSTR WINAPI PathFindExtensionA(const char *path)
BOOL WINAPI PathIsPrefixA(const char *prefix, const char *path)
int WINAPI PathCommonPrefixA(const char *file1, const char *file2, char *path)
void WINAPI PathRemoveBlanksA(char *path)
void WINAPI PathUnquoteSpacesW(WCHAR *path)
int WINAPI PathGetDriveNumberW(const WCHAR *path)
void WINAPI PathQuoteSpacesA(char *path)
BOOL WINAPI PathRemoveFileSpecA(char *path)
WCHAR *WINAPI PathRemoveBackslashW(WCHAR *path)
BOOL WINAPI PathIsUNCServerShareW(const WCHAR *path)
BOOL WINAPI PathIsUNCServerA(const char *path)
BOOL WINAPI PathIsFileSpecA(const char *path)
WCHAR *WINAPI PathFindFileNameW(const WCHAR *path)
BOOL WINAPI PathFileExistsA(const char *path)
BOOL WINAPI PathRelativePathToA(char *path, const char *from, DWORD attributes_from, const char *to, DWORD attributes_to)
void WINAPI PathStripPathA(char *path)
void WINAPI PathStripPathW(WCHAR *path)
BOOL WINAPI PathRemoveFileSpecW(WCHAR *path)
void WINAPI PathRemoveExtensionA(char *path)
LPWSTR WINAPI PathFindExtensionW(const WCHAR *path)
char *WINAPI PathSkipRootA(const char *path)
int WINAPI PathGetDriveNumberA(const char *path)
BOOL WINAPI PathIsRelativeA(const char *path)
void WINAPI PathUnquoteSpacesA(char *path)
BOOL WINAPI PathIsRelativeW(const WCHAR *path)
char *WINAPI PathRemoveBackslashA(char *path)
BOOL WINAPI PathStripToRootW(WCHAR *path)
BOOL WINAPI PathStripToRootA(char *path)
BOOL WINAPI PathIsSameRootA(const char *path1, const char *path2)
BOOL WINAPI PathIsUNCServerW(const WCHAR *path)
BOOL WINAPI PathMatchSpecW(const WCHAR *path, const WCHAR *mask)
WCHAR *WINAPI PathSkipRootW(const WCHAR *path)
BOOL WINAPI PathRelativePathToW(WCHAR *path, const WCHAR *from, DWORD attributes_from, const WCHAR *to, DWORD attributes_to)
BOOL WINAPI PathFileExistsW(const WCHAR *path)
char *WINAPI PathFindFileNameA(const char *path)
BOOL WINAPI PathIsFileSpecW(const WCHAR *path)
BOOL WINAPI PathIsRootW(const WCHAR *path)
BOOL WINAPI PathIsPrefixW(const WCHAR *prefix, const WCHAR *path)
BOOL WINAPI PathIsUNCA(const char *path)
BOOL WINAPI PathIsUNCServerShareA(const char *path)
void WINAPI PathQuoteSpacesW(WCHAR *path)
void WINAPI PathRemoveArgsW(LPWSTR lpszPath)
BOOL WINAPI PathIsDirectoryA(LPCSTR lpszPath)
LPSTR WINAPI PathBuildRootA(LPSTR lpszPath, int drive)
void WINAPI PathRemoveArgsA(LPSTR lpszPath)
BOOL WINAPI PathCompactPathExA(LPSTR lpszDest, LPCSTR lpszPath, UINT cchMax, DWORD dwFlags)
BOOL WINAPI PathCompactPathExW(LPWSTR lpszDest, LPCWSTR lpszPath, UINT cchMax, DWORD dwFlags)
BOOL WINAPI PathMakePrettyW(LPWSTR lpszPath)
BOOL WINAPI PathCompactPathA(HDC hDC, LPSTR lpszPath, UINT dx)
LPWSTR WINAPI PathBuildRootW(LPWSTR lpszPath, int drive)
BOOL WINAPI PathCompactPathW(HDC hDC, LPWSTR lpszPath, UINT dx)
BOOL WINAPI PathMakePrettyA(LPSTR lpszPath)
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
CPathT< CStringA > CPathA
CPathT< CStringW > CPathW
#define PathAddExtensionA
#define PathCanonicalizeA
#define PathAddExtensionW
#define PathCanonicalizeW
#define PathAddBackslashA
#define PathRenameExtensionA
#define PathRenameExtensionW
#define PathAddBackslashW
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags