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
void WINAPI PathStripPathW(LPWSTR lpszPath)
void WINAPI PathRemoveArgsW(LPWSTR lpszPath)
void WINAPI PathRemoveExtensionA(LPSTR lpszPath)
VOID WINAPI PathUnquoteSpacesA(LPSTR lpszPath)
BOOL WINAPI PathIsUNCA(LPCSTR lpszPath)
BOOL WINAPI PathIsDirectoryA(LPCSTR lpszPath)
void WINAPI PathStripPathA(LPSTR lpszPath)
LPSTR WINAPI PathFindFileNameA(LPCSTR lpszPath)
VOID WINAPI PathQuoteSpacesA(LPSTR lpszPath)
BOOL WINAPI PathRelativePathToA(LPSTR lpszPath, LPCSTR lpszFrom, DWORD dwAttrFrom, LPCSTR lpszTo, DWORD dwAttrTo)
LPSTR WINAPI PathBuildRootA(LPSTR lpszPath, int drive)
int WINAPI PathGetDriveNumberW(const WCHAR *path)
LPWSTR WINAPI PathSkipRootW(LPCWSTR lpszPath)
BOOL WINAPI PathIsPrefixA(LPCSTR lpszPrefix, LPCSTR lpszPath)
int WINAPI PathCommonPrefixW(LPCWSTR lpszFile1, LPCWSTR lpszFile2, LPWSTR achPath)
BOOL WINAPI PathRemoveFileSpecW(LPWSTR lpszPath)
void WINAPI PathRemoveArgsA(LPSTR lpszPath)
LPWSTR WINAPI PathFindFileNameW(LPCWSTR lpszPath)
BOOL WINAPI PathCompactPathExA(LPSTR lpszDest, LPCSTR lpszPath, UINT cchMax, DWORD dwFlags)
VOID WINAPI PathRemoveBlanksA(LPSTR lpszPath)
BOOL WINAPI PathCompactPathExW(LPWSTR lpszDest, LPCWSTR lpszPath, UINT cchMax, DWORD dwFlags)
BOOL WINAPI PathIsRelativeA(LPCSTR lpszPath)
int WINAPI PathGetDriveNumberA(LPCSTR lpszPath)
BOOL WINAPI PathRemoveFileSpecA(LPSTR lpszPath)
BOOL WINAPI PathIsUNCServerW(LPCWSTR lpszPath)
BOOL WINAPI PathRelativePathToW(LPWSTR lpszPath, LPCWSTR lpszFrom, DWORD dwAttrFrom, LPCWSTR lpszTo, DWORD dwAttrTo)
BOOL WINAPI PathStripToRootW(LPWSTR lpszPath)
BOOL WINAPI PathMakePrettyW(LPWSTR lpszPath)
LPWSTR WINAPI PathFindExtensionW(LPCWSTR lpszPath)
BOOL WINAPI PathCompactPathA(HDC hDC, LPSTR lpszPath, UINT dx)
void WINAPI PathRemoveExtensionW(LPWSTR lpszPath)
BOOL WINAPI PathMatchSpecW(LPCWSTR lpszPath, LPCWSTR lpszMask)
LPWSTR WINAPI PathBuildRootW(LPWSTR lpszPath, int drive)
BOOL WINAPI PathFileExistsA(LPCSTR lpszPath)
BOOL WINAPI PathIsRootW(LPCWSTR lpszPath)
BOOL WINAPI PathIsRootA(LPCSTR lpszPath)
VOID WINAPI PathQuoteSpacesW(LPWSTR lpszPath)
BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath)
BOOL WINAPI PathIsUNCServerA(LPCSTR lpszPath)
VOID WINAPI PathUnquoteSpacesW(LPWSTR lpszPath)
BOOL WINAPI PathCompactPathW(HDC hDC, LPWSTR lpszPath, UINT dx)
BOOL WINAPI PathMatchSpecA(LPCSTR lpszPath, LPCSTR lpszMask)
BOOL WINAPI PathIsUNCW(LPCWSTR lpszPath)
BOOL WINAPI PathIsSameRootW(LPCWSTR lpszPath1, LPCWSTR lpszPath2)
BOOL WINAPI PathMakePrettyA(LPSTR lpszPath)
LPSTR WINAPI PathFindExtensionA(LPCSTR lpszPath)
BOOL WINAPI PathIsUNCServerShareW(LPCWSTR lpszPath)
BOOL WINAPI PathIsFileSpecA(LPCSTR lpszPath)
BOOL WINAPI PathIsUNCServerShareA(LPCSTR lpszPath)
BOOL WINAPI PathStripToRootA(LPSTR lpszPath)
BOOL WINAPI PathIsFileSpecW(LPCWSTR lpszPath)
int WINAPI PathCommonPrefixA(LPCSTR lpszFile1, LPCSTR lpszFile2, LPSTR achPath)
LPSTR WINAPI PathSkipRootA(LPCSTR lpszPath)
BOOL WINAPI PathIsPrefixW(LPCWSTR lpszPrefix, LPCWSTR lpszPath)
LPWSTR WINAPI PathRemoveBackslashW(LPWSTR lpszPath)
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
VOID WINAPI PathRemoveBlanksW(LPWSTR lpszPath)
BOOL WINAPI PathIsSameRootA(LPCSTR lpszPath1, LPCSTR lpszPath2)
LPSTR WINAPI PathRemoveBackslashA(LPSTR lpszPath)
BOOL WINAPI PathIsRelativeW(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