source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/pathcch.h@ 1170

Last change on this file since 1170 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 5.6 KB
Line 
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
12extern "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
Note: See TracBrowser for help on using the repository browser.