1 #ifndef __WINE_SHLWAPI_H
2 #define __WINE_SHLWAPI_H
8 #endif /* defined(__cplusplus) */
11 /* Mask returned by GetPathCharType */
12 #define GCT_INVALID 0x0000
13 #define GCT_LFNCHAR 0x0001
14 #define GCT_SHORTCHAR 0x0002
15 #define GCT_WILD 0x0004
16 #define GCT_SEPARATOR 0x0008
19 * The URL_ defines were determined by trial and error. If they become
20 * documented please check them and add the missing ones including:
23 * URL_PLUGGABLE_PROTOCOL
24 * URL_DONT_ESCAPE_EXTRA_INFO
25 * URL_ESCAPE_SEGMENT_ONLY
28 #define URL_UNESCAPE_INPLACE 0x00100000
29 #define URL_DONT_UNESCAPE_EXTRA_INFO 0x02000000
31 #define URL_ESCAPE_SPACES_ONLY 0x04000000
33 #define URL_UNESCAPE 0x10000000
34 #define URL_ESCAPE_UNSAFE 0x20000000
35 #define URL_DONT_SIMPLIFY 0x40000000
37 LPSTR WINAPI
PathAddBackslashA(LPSTR path
);
38 LPWSTR WINAPI
PathAddBackslashW(LPWSTR path
);
39 #define PathAddBackslash WINELIB_NAME_AW(PathAddBackslash)
41 BOOL WINAPI
PathAddExtensionA(LPSTR pszPath
, LPCSTR pszExt
);
42 BOOL WINAPI
PathAddExtensionW(LPWSTR pszPath
, LPCWSTR pszExt
);
43 #define PathAddExtension WINELIB_NAME_AW(PathAddExtension)
45 BOOL WINAPI
PathAppendA(LPSTR lpszPath1
,LPCSTR lpszPath2
);
46 BOOL WINAPI
PathAppendW(LPWSTR lpszPath1
,LPCWSTR lpszPath2
);
47 #define PathAppend WINELIB_NAME_AW(PathAppend)
49 LPSTR WINAPI
PathBuildRootA(LPSTR lpszPath
, int drive
);
50 LPWSTR WINAPI
PathBuildRootW(LPWSTR lpszPath
, int drive
);
51 #define PathBuildRoot WINELIB_NAME_AW(PathBuiltRoot)
53 BOOL WINAPI
PathCanonicalizeA(LPSTR lpszDst
, LPCSTR lpszSrc
);
54 BOOL WINAPI
PathCanonicalizeW(LPWSTR lpszDst
, LPCWSTR lpszSrc
);
55 #define PathCanonicalize WINELIB_NAME_AW(PathCanonicalize)
57 LPSTR WINAPI
PathCombineA(LPSTR szDest
, LPCSTR lpszDir
, LPCSTR lpszFile
);
58 LPWSTR WINAPI
PathCombineW(LPWSTR szDest
, LPCWSTR lpszDir
, LPCWSTR lpszFile
);
59 #define PathCombine WINELIB_NAME_AW(PathCombine)
61 BOOL WINAPI
PathFileExistsA(LPCSTR lpszPath
);
62 BOOL WINAPI
PathFileExistsW(LPCWSTR lpszPath
);
63 #define PathFileExists WINELIB_NAME_AW(PathFileExists)
65 LPSTR WINAPI
PathFindExtensionA(LPCSTR path
);
66 LPWSTR WINAPI
PathFindExtensionW(LPCWSTR path
);
67 #define PathFindExtension WINELIB_NAME_AW(PathFindExtension)
69 LPSTR WINAPI
PathFindFileNameA(LPCSTR pPath
);
70 LPWSTR WINAPI
PathFindFileNameW(LPCWSTR pPath
);
71 #define PathFindFileName WINELIB_NAME_AW(PathFindFileName)
73 LPSTR WINAPI
PathFindNextComponentA(LPCSTR pszPath
);
74 LPWSTR WINAPI
PathFindNextComponentW(LPCWSTR pszPath
);
75 #define PathFindNextComponent WINELIB_NAME_AW(PathFindNextComponent)
77 BOOL WINAPI
PathFindOnPathA(LPSTR sFile
, LPCSTR sOtherDirs
);
78 BOOL WINAPI
PathFindOnPathW(LPWSTR sFile
, LPCWSTR sOtherDirs
);
79 #define PathFindOnPath WINELIB_NAME_AW(PathFindOnPath)
81 LPSTR WINAPI
PathGetArgsA(LPCSTR lpszPath
);
82 LPWSTR WINAPI
PathGetArgsW(LPCWSTR lpszPath
);
83 #define PathGetArgs WINELIB_NAME_AW(PathGetArgs)
85 int WINAPI
PathGetDriveNumberA(LPCSTR lpszPath
);
86 int WINAPI
PathGetDriveNumberW(LPCWSTR lpszPath
);
87 #define PathGetDriveNumber WINELIB_NAME_AW(PathGetDriveNumber)
89 BOOL WINAPI
PathIsDirectoryA(LPCSTR lpszPath
);
90 BOOL WINAPI
PathIsDirectoryW(LPCWSTR lpszPath
);
91 #define PathIsDirectory WINELIB_NAME_AW(PathIsDirectory)
93 BOOL WINAPI
PathIsRelativeA(LPCSTR lpszPath
);
94 BOOL WINAPI
PathIsRelativeW(LPCWSTR lpszPath
);
95 #define PathIsRelative WINELIB_NAME_AW(PathIsRelative)
97 BOOL WINAPI
PathIsRootA(LPCSTR x
);
98 BOOL WINAPI
PathIsRootW(LPCWSTR x
);
99 #define PathIsRoot WINELIB_NAME_AW(PathIsRoot)
101 BOOL WINAPI
PathIsSameRootA(LPCSTR lpszPath1
, LPCSTR lpszPath2
);
102 BOOL WINAPI
PathIsSameRootW(LPCWSTR lpszPath1
, LPCWSTR lpszPath2
);
103 #define PathIsSameRoot WINELIB_NAME_AW(PathIsSameRoot)
105 BOOL WINAPI
PathIsUNCA(LPCSTR lpszPath
);
106 BOOL WINAPI
PathIsUNCW(LPCWSTR lpszPath
);
107 #define PathIsUNC WINELIB_NAME_AW(PathIsUNC)
109 BOOL WINAPI
PathIsURLA(LPCSTR pszPath
);
110 BOOL WINAPI
PathIsURLW(LPCWSTR pszPath
);
111 #define PathIsURL WINELIB_NAME_AW(PathIsURL)
113 BOOL WINAPI
PathMatchSpecA(LPCSTR lpszPath
, LPCSTR lpszSpec
);
114 BOOL WINAPI
PathMatchSpecW(LPCWSTR lpszPath
, LPCWSTR lpszSpec
);
115 #define PathMatchSpec WINELIB_NAME_AW(PathMatchSpec)
117 int WINAPI
PathParseIconLocationA(LPSTR lpszPath
);
118 int WINAPI
PathParseIconLocationW(LPWSTR lpszPath
);
119 #define PathParseIconLocation WINELIB_NAME_AW(PathParseIconLocation)
121 LPSTR WINAPI
PathQuoteSpacesA(LPSTR path
);
122 LPWSTR WINAPI
PathQuoteSpacesW(LPWSTR path
);
123 #define PathQuoteSpaces WINELIB_NAME_AW(PathQuoteSpaces)
125 void WINAPI
PathRemoveArgsA(LPSTR lpszPath
);
126 void WINAPI
PathRemoveArgsW(LPWSTR lpszPath
);
127 #define PathRemoveArgs WINELIB_NAME_AW(PathRemoveArgs)
129 LPSTR WINAPI
PathRemoveBackslashA(LPSTR lpszPath
);
130 LPWSTR WINAPI
PathRemoveBackslashW(LPWSTR lpszPath
);
131 #define PathRemoveBackslash WINELIB_NAME_AW(PathRemoveBackslash)
133 void WINAPI
PathRemoveBlanksA(LPSTR lpszPath
);
134 void WINAPI
PathRemoveBlanksW(LPWSTR lpszPath
);
135 #define PathRemoveBlanks WINELIB_NAME_AW(PathRemoveBlanks)
137 void WINAPI
PathRemoveExtensionA(LPSTR lpszPath
);
138 void WINAPI
PathRemoveExtensionW(LPWSTR lpszPath
);
139 #define PathRemoveExtension WINELIB_NAME_AW(PathRemoveExtension)
141 BOOL WINAPI
PathRemoveFileSpecA(LPSTR lpszPath
);
142 BOOL WINAPI
PathRemoveFileSpecW(LPWSTR lpszPath
);
143 #define PathRemoveFileSpec WINELIB_NAME_AW(PathRemoveFileSpec)
145 BOOL WINAPI
PathSetDlgItemPathA(HWND hDlg
, int id
, LPCSTR pszPath
);
146 BOOL WINAPI
PathSetDlgItemPathW(HWND hDlg
, int id
, LPCWSTR pszPath
);
147 #define PathSetDlgItemPath WINELIB_NAME_AW(PathSetDlgItemPath)
149 void WINAPI
PathStripPathA(LPSTR lpszPath
);
150 void WINAPI
PathStripPathW(LPWSTR lpszPath
);
151 #define PathStripPath WINELIB_NAME_AW(PathStripPath)
153 BOOL WINAPI
PathStripToRootA(LPSTR pszPath
);
154 BOOL WINAPI
PathStripToRootW(LPWSTR pszPath
);
155 #define PathStripToRoot WINELIB_NAME_AW(PathStripToRoot)
157 void WINAPI
PathUnquoteSpacesA(LPSTR str
);
158 void WINAPI
PathUnquoteSpacesW(LPWSTR str
);
159 #define PathUnquoteSpaces WINELIB_NAME_AW(PathUnquoteSpaces)
162 INT WINAPI
StrCSpnA(LPCSTR lpStr
, LPCSTR lpSet
);
163 INT WINAPI
StrCSpnW(LPCWSTR lpStr
, LPCWSTR lpSet
);
164 #define StrCSpn WINELIB_NAME_AW(StrCSpn)
166 INT WINAPI
StrCSpnIA(LPCSTR lpStr
, LPCSTR lpSet
);
167 INT WINAPI
StrCSpnIW(LPCWSTR lpStr
, LPCWSTR lpSet
);
168 #define StrCSpnI WINELIB_NAME_AW(StrCSpnI)
170 #define StrCatA lstrcatA
171 LPWSTR WINAPI
StrCatW(LPWSTR front
, LPCWSTR back
);
172 #define StrCat WINELIB_NAME_AW(StrCat)
174 LPSTR WINAPI
StrCatBuffA(LPSTR front
, LPCSTR back
, INT size
);
175 LPWSTR WINAPI
StrCatBuffW(LPWSTR front
, LPCWSTR back
, INT size
);
176 #define StrCatBuff WINELIB_NAME_AW(StrCatBuff)
178 LPSTR WINAPI
StrChrA(LPCSTR lpStart
, WORD wMatch
);
179 LPWSTR WINAPI
StrChrW(LPCWSTR lpStart
, WCHAR wMatch
);
180 #define StrChr WINELIB_NAME_AW(StrChr)
182 LPSTR WINAPI
StrChrIA(LPCSTR lpStart
, WORD wMatch
);
183 LPWSTR WINAPI
StrChrIW(LPCWSTR lpStart
, WCHAR wMatch
);
184 #define StrChrI WINELIB_NAME_AW(StrChrI)
186 INT WINAPI
StrCmpNA(LPCSTR lpStr1
, LPCSTR lpStr2
, INT nChar
);
187 INT WINAPI
StrCmpNW(LPCWSTR lpStr1
, LPCWSTR lpStr2
, INT nChar
);
188 #define StrCmpN WINELIB_NAME_AW(StrCmpN)
190 INT WINAPI
StrCmpNIA(LPCSTR lpStr1
, LPCSTR lpStr2
, INT nChar
);
191 INT WINAPI
StrCmpNIW(LPCWSTR lpStr1
, LPCWSTR lpStr2
, INT nChar
);
192 #define StrCmpNI WINELIB_NAME_AW(StrCmpNI)
194 LPSTR WINAPI
StrDupA(LPCSTR lpSrc
);
195 LPWSTR WINAPI
StrDupW(LPCWSTR lpSrc
);
196 #define StrDup WINELIB_NAME_AW(StrDup)
198 LPSTR WINAPI
StrFormatByteSizeA ( DWORD dw
, LPSTR pszBuf
, UINT cchBuf
);
199 LPWSTR WINAPI
StrFormatByteSizeW ( DWORD dw
, LPWSTR pszBuf
, UINT cchBuf
);
200 #define StrFormatByteSize WINELIB_NAME_AW(StrFormatByteSize)
202 INT WINAPI
wvnsprintfA(LPSTR lpOut
, INT cchLimitIn
, LPCSTR lpFmt
, va_list arglist
);
203 INT WINAPI
wvnsprintfW(LPWSTR lpOut
, INT cchLimitIn
, LPCWSTR lpFmt
, va_list arglist
);
204 #define wvnsprintf WINELIB_NAME_AW(wvnsprintf)
206 INT WINAPIV
wnsprintfA(LPSTR lpOut
, INT cchLimitIn
, LPCSTR lpFmt
, ...);
207 INT WINAPIV
wnsprintfW(LPWSTR lpOut
, INT cchLimitIn
, LPCWSTR lpFmt
, ...);
208 #define wnsprintf WINELIB_NAME_AW(wnsprintf)
213 HRESULT WINAPI
StrRetToBufA(struct _STRRET
*src
, const struct _ITEMIDLIST
*pidl
, LPSTR dest
, DWORD len
);
214 HRESULT WINAPI
StrRetToBufW(struct _STRRET
*src
, const struct _ITEMIDLIST
*pidl
, LPWSTR dest
, DWORD len
);
215 #define StrRetToBuf WINELIB_NAME_AW(StrRetToBuf)
217 HRESULT WINAPI
SHDeleteKeyA(HKEY hKey
, LPCSTR lpszSubKey
);
218 HRESULT WINAPI
SHDeleteKeyW(HKEY hkey
, LPCWSTR pszSubKey
);
219 #define SHDeleteKey WINELIB_NAME_AW(SHDeleteKey)
221 DWORD WINAPI
SHDeleteEmptyKeyA(HKEY hKey
, LPCSTR lpszSubKey
);
222 DWORD WINAPI
SHDeleteEmptyKeyW(HKEY hKey
, LPCWSTR lpszSubKey
);
223 #define SHDeleteEmptyKey WINELIB_NAME_AW(SHDeleteEmptyKey)
225 HRESULT WINAPI
UrlCanonicalizeA(LPCSTR pszUrl
, LPSTR pszCanonicalized
,
226 LPDWORD pcchCanonicalized
, DWORD dwFlags
);
227 HRESULT WINAPI
UrlCanonicalizeW(LPCWSTR pszUrl
, LPWSTR pszCanonicalized
,
228 LPDWORD pcchCanonicalized
, DWORD dwFlags
);
229 #define UrlCanonicalize WINELIB_NAME_AW(UrlCanoncalize)
231 HRESULT WINAPI
UrlEscapeA(LPCSTR pszUrl
, LPSTR pszEscaped
, LPDWORD pcchEscaped
,
233 HRESULT WINAPI
UrlEscapeW(LPCWSTR pszUrl
, LPWSTR pszEscaped
,
234 LPDWORD pcchEscaped
, DWORD dwFlags
);
235 #define UrlEscape WINELIB_NAME_AW(UrlEscape)
237 HRESULT WINAPI
UrlUnescapeA(LPCSTR pszUrl
, LPSTR pszUnescaped
,
238 LPDWORD pcchUnescaped
, DWORD dwFlags
);
239 HRESULT WINAPI
UrlUnescapeW(LPCWSTR pszUrl
, LPWSTR pszUnescaped
,
240 LPDWORD pcchUnescaped
, DWORD dwFlags
);
241 #define UrlUnescape WINELIB_AW_NAME(UrlUnescape)
243 typedef struct _DllVersionInfo
{
245 DWORD dwMajorVersion
;
246 DWORD dwMinorVersion
;
251 #define DLLVER_PLATFORM_WINDOWS 0x00000001 // Windows 9x
252 #define DLLVER_PLATFORM_NT 0x00000002 // Windows NT
254 typedef HRESULT
CALLBACK (*DLLGETVERSIONPROC
)(DLLVERSIONINFO
*);
258 #endif /* defined(__cplusplus) */
260 #endif /* __WINE_SHLWAPI_H */