[1166] | 1 | /**
|
---|
| 2 | * This file is part of the mingw-w64 runtime package.
|
---|
| 3 | * No warranty is given; refer to the file DISCLAIMER within this package.
|
---|
| 4 | */
|
---|
| 5 |
|
---|
| 6 | #include <apiset.h>
|
---|
| 7 | #include <apisetcconv.h>
|
---|
| 8 | #include <minwindef.h>
|
---|
| 9 | #include <minwinbase.h>
|
---|
| 10 |
|
---|
| 11 | #ifdef __cplusplus
|
---|
| 12 | extern "C" {
|
---|
| 13 | #endif
|
---|
| 14 |
|
---|
| 15 | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
|
---|
| 16 |
|
---|
| 17 | #define VOLUME_PREFIX L"\\\\?\\Volume"
|
---|
| 18 | #define VOLUME_PREFIX_LEN (ARRAYSIZE (VOLUME_PREFIX) - 1)
|
---|
| 19 |
|
---|
| 20 | #define PATHCCH_ALLOW_LONG_PATHS 0x00000001
|
---|
| 21 | #define PATHCCH_MAX_CCH 0x8000
|
---|
| 22 |
|
---|
| 23 | WINPATHCCHAPI HRESULT APIENTRY PathAllocCombine (PCWSTR pszPathIn, PCWSTR pszMore, unsigned long dwFlags, PWSTR *ppszPathOut);
|
---|
| 24 | WINPATHCCHAPI HRESULT APIENTRY PathAllocCanonicalize (PCWSTR pszPathIn, unsigned long dwFlags, PWSTR *ppszPathOut);
|
---|
| 25 | WINPATHCCHAPI HRESULT APIENTRY PathCchAddBackslash (PWSTR pszPath, size_t cchPath);
|
---|
| 26 | WINPATHCCHAPI HRESULT APIENTRY PathCchAddBackslashEx (PWSTR pszPath, size_t cchPath, PWSTR *ppszEnd, size_t *pcchRemaining);
|
---|
| 27 | WINPATHCCHAPI HRESULT APIENTRY PathCchAddExtension (PWSTR pszPath, size_t cchPath, PCWSTR pszExt);
|
---|
| 28 | WINPATHCCHAPI HRESULT APIENTRY PathCchAppend (PWSTR pszPath, size_t cchPath, PCWSTR pszMore);
|
---|
| 29 | WINPATHCCHAPI HRESULT APIENTRY PathCchAppendEx (PWSTR pszPath, size_t cchPath, PCWSTR pszMore, unsigned long dwFlags);
|
---|
| 30 | WINPATHCCHAPI HRESULT APIENTRY PathCchCanonicalize (PWSTR pszPathOut, size_t cchPathOut, PCWSTR pszPathIn);
|
---|
| 31 | WINPATHCCHAPI HRESULT APIENTRY PathCchCanonicalizeEx (PWSTR pszPathOut, size_t cchPathOut, PCWSTR pszPathIn, unsigned long dwFlags);
|
---|
| 32 | WINPATHCCHAPI HRESULT APIENTRY PathCchCombine (PWSTR pszPathOut, size_t cchPathOut, PCWSTR pszPathIn, PCWSTR pszMore);
|
---|
| 33 | WINPATHCCHAPI HRESULT APIENTRY PathCchCombineEx (PWSTR pszPathOut, size_t cchPathOut, PCWSTR pszPathIn, PCWSTR pszMore, unsigned long dwFlags);
|
---|
| 34 | WINPATHCCHAPI HRESULT APIENTRY PathCchFindExtension (PCWSTR pszPath, size_t cchPath, PCWSTR *ppszExt);
|
---|
| 35 | WINPATHCCHAPI WINBOOL APIENTRY PathCchIsRoot (PCWSTR pszPath);
|
---|
| 36 | WINPATHCCHAPI HRESULT APIENTRY PathCchRemoveBackslashEx (PWSTR pszPath, size_t cchPath, PWSTR *ppszEnd, size_t *pcchRemaining);
|
---|
| 37 | WINPATHCCHAPI HRESULT APIENTRY PathCchRemoveBackslash (PWSTR pszPath, size_t cchPath);
|
---|
| 38 | WINPATHCCHAPI HRESULT APIENTRY PathCchRemoveExtension (PWSTR pszPath, size_t cchPath);
|
---|
| 39 | WINPATHCCHAPI HRESULT APIENTRY PathCchRemoveFileSpec (PWSTR pszPath, size_t cchPath);
|
---|
| 40 | WINPATHCCHAPI HRESULT APIENTRY PathCchRenameExtension (PWSTR pszPath, size_t cchPath, PCWSTR pszExt);
|
---|
| 41 | WINPATHCCHAPI HRESULT APIENTRY PathCchSkipRoot (PCWSTR pszPath, PCWSTR *ppszRootEnd);
|
---|
| 42 | WINPATHCCHAPI HRESULT APIENTRY PathCchStripPrefix (PWSTR pszPath, size_t cchPath);
|
---|
| 43 | WINPATHCCHAPI HRESULT APIENTRY PathCchStripToRoot (PWSTR pszPath, size_t cchPath);
|
---|
| 44 | WINPATHCCHAPI WINBOOL APIENTRY PathIsUNCEx (PCWSTR pszPath, PCWSTR *ppszServer);
|
---|
| 45 |
|
---|
| 46 | #ifndef PATHCCH_NO_DEPRECATE
|
---|
| 47 | #undef PathAddBackslash
|
---|
| 48 | #undef PathAddBackslashA
|
---|
| 49 | #undef PathAddBackslashW
|
---|
| 50 |
|
---|
| 51 | #undef PathAddExtension
|
---|
| 52 | #undef PathAddExtensionA
|
---|
| 53 | #undef PathAddExtensionW
|
---|
| 54 |
|
---|
| 55 | #undef PathAppend
|
---|
| 56 | #undef PathAppendA
|
---|
| 57 | #undef PathAppendW
|
---|
| 58 |
|
---|
| 59 | #undef PathCanonicalize
|
---|
| 60 | #undef PathCanonicalizeA
|
---|
| 61 | #undef PathCanonicalizeW
|
---|
| 62 |
|
---|
| 63 | #undef PathCombine
|
---|
| 64 | #undef PathCombineA
|
---|
| 65 | #undef PathCombineW
|
---|
| 66 |
|
---|
| 67 | #undef PathRenameExtension
|
---|
| 68 | #undef PathRenameExtensionA
|
---|
| 69 | #undef PathRenameExtensionW
|
---|
| 70 |
|
---|
| 71 | #ifndef DEPRECATE_SUPPORTED
|
---|
| 72 | #define PathIsRelativeWorker PathIsRelativeWorker_is_internal_to_pathcch;
|
---|
| 73 | #define StrIsEqualWorker StrIsEqualWorker_is_internal_to_pathcch;
|
---|
| 74 | #define FindPreviousBackslashWorker FindPreviousBackslashWorker_is_internal_to_pathcch;
|
---|
| 75 | #define IsHexDigitWorker IsHexDigitWorker_is_internal_to_pathcch;
|
---|
| 76 | #define StringIsGUIDWorker StringIsGUIDWorker_is_internal_to_pathcch;
|
---|
| 77 | #define PathIsVolumeGUIDWorker PathIsVolumeGUIDWorker_is_internal_to_pathcch;
|
---|
| 78 | #define IsValidExtensionWorker IsValidExtensionWorker_is_internal_to_pathcch;
|
---|
| 79 |
|
---|
| 80 | #define PathAddBackslash PathAddBackslash_instead_use_PathCchAddBackslash;
|
---|
| 81 | #define PathAddBackslashA PathAddBackslash_instead_use_PathCchAddBackslash;
|
---|
| 82 | #define PathAddBackslashW PathAddBackslash_instead_use_PathCchAddBackslash;
|
---|
| 83 |
|
---|
| 84 | #define PathAddExtension PathAddExtension_instead_use_PathCchAddExtension;
|
---|
| 85 | #define PathAddExtensionA PathAddExtension_instead_use_PathCchAddExtension;
|
---|
| 86 | #define PathAddExtensionW PathAddExtension_instead_use_PathCchAddExtension;
|
---|
| 87 |
|
---|
| 88 | #define PathAppend PathAppend_instead_use_PathCchAppend;
|
---|
| 89 | #define PathAppendA PathAppend_instead_use_PathCchAppend;
|
---|
| 90 | #define PathAppendW PathAppend_instead_use_PathCchAppend;
|
---|
| 91 |
|
---|
| 92 | #define PathCanonicalize PathCanonicalize_instead_use_PathCchCanonicalize;
|
---|
| 93 | #define PathCanonicalizeA PathCanonicalize_instead_use_PathCchCanonicalize;
|
---|
| 94 | #define PathCanonicalizeW PathCanonicalize_instead_use_PathCchCanonicalize;
|
---|
| 95 |
|
---|
| 96 | #define PathCombine PathCombine_instead_use_PathCchCombine;
|
---|
| 97 | #define PathCombineA PathCombine_instead_use_PathCchCombine;
|
---|
| 98 | #define PathCombineW PathCombine_instead_use_PathCchCombine;
|
---|
| 99 |
|
---|
| 100 | #define PathRenameExtension PathRenameExtension_instead_use_PathCchRenameExtension;
|
---|
| 101 | #define PathRenameExtensionA PathRenameExtension_instead_use_PathCchRenameExtension;
|
---|
| 102 | #define PathRenameExtensionW PathRenameExtension_instead_use_PathCchRenameExtension;
|
---|
| 103 | #endif
|
---|
| 104 | #endif
|
---|
| 105 | #endif
|
---|
| 106 |
|
---|
| 107 | #ifdef __cplusplus
|
---|
| 108 | }
|
---|
| 109 | #endif
|
---|
| 110 |
|
---|
| 111 | #ifdef __cplusplus
|
---|
| 112 |
|
---|
| 113 | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
|
---|
| 114 | __CRT_INLINE WINBOOL PathIsUNCEx (PWSTR path, PWSTR *pserver) {
|
---|
| 115 | return PathIsUNCEx (const_cast<PCWSTR> (path), const_cast<PCWSTR *> (pserver));
|
---|
| 116 | }
|
---|
| 117 |
|
---|
| 118 | __CRT_INLINE HRESULT PathCchSkipRoot (PWSTR path, PWSTR *prootend) {
|
---|
| 119 | return PathCchSkipRoot (const_cast<PCWSTR> (path), const_cast<PCWSTR *> (prootend));
|
---|
| 120 | }
|
---|
| 121 |
|
---|
| 122 | __CRT_INLINE HRESULT PathCchFindExtension (PWSTR path, size_t n, PWSTR *pext) {
|
---|
| 123 | return PathCchFindExtension (const_cast<PCWSTR> (path), n, const_cast<PCWSTR *> (pext));
|
---|
| 124 | }
|
---|
| 125 | #endif
|
---|
| 126 | #endif
|
---|