1 #ifndef __WINE_SHLWAPI_H
2 #define __WINE_SHLWAPI_H
8 #endif /* defined(__cplusplus) */
12 * The URL_ defines were determined by trial and error. If they become
13 * documented please check them and add the missing ones including:
16 * URL_PLUGGABLE_PROTOCOL
17 * URL_DONT_ESCAPE_EXTRA_INFO
18 * URL_ESCAPE_SEGMENT_ONLY
21 #define URL_UNESCAPE_INPLACE 0x00100000
22 #define URL_DONT_UNESCAPE_EXTRA_INFO 0x02000000
24 #define URL_ESCAPE_SPACES_ONLY 0x04000000
26 #define URL_UNESCAPE 0x10000000
27 #define URL_ESCAPE_UNSAFE 0x20000000
28 #define URL_DONT_SIMPLIFY 0x40000000
30 LPSTR WINAPI
PathAddBackslashA(LPSTR path
);
31 LPWSTR WINAPI
PathAddBackslashW(LPWSTR path
);
32 #define PathAddBackslash WINELIB_NAME_AW(PathAddBackslash)
34 BOOL WINAPI
PathAddExtensionA(LPSTR pszPath
, LPCSTR pszExt
);
35 BOOL WINAPI
PathAddExtensionW(LPWSTR pszPath
, LPCWSTR pszExt
);
36 #define PathAddExtension WINELIB_NAME_AW(PathAddExtension)
38 BOOL WINAPI
PathAppendA(LPSTR lpszPath1
,LPCSTR lpszPath2
);
39 BOOL WINAPI
PathAppendW(LPWSTR lpszPath1
,LPCWSTR lpszPath2
);
40 #define PathAppend WINELIB_NAME_AW(PathAppend)
42 LPSTR WINAPI
PathBuildRootA(LPSTR lpszPath
, int drive
);
43 LPWSTR WINAPI
PathBuildRootW(LPWSTR lpszPath
, int drive
);
44 #define PathBuildRoot WINELIB_NAME_AW(PathBuiltRoot)
46 BOOL WINAPI
PathCanonicalizeA(LPSTR lpszDst
, LPCSTR lpszSrc
);
47 BOOL WINAPI
PathCanonicalizeW(LPWSTR lpszDst
, LPCWSTR lpszSrc
);
48 #define PathCanonicalize WINELIB_NAME_AW(PathCanonicalize)
50 LPSTR WINAPI
PathCombineA(LPSTR szDest
, LPCSTR lpszDir
, LPCSTR lpszFile
);
51 LPWSTR WINAPI
PathCombineW(LPWSTR szDest
, LPCWSTR lpszDir
, LPCWSTR lpszFile
);
52 #define PathCombine WINELIB_NAME_AW(PathCombine)
54 BOOL WINAPI
PathFileExistsA(LPCSTR lpszPath
);
55 BOOL WINAPI
PathFileExistsW(LPCWSTR lpszPath
);
56 #define PathFileExists WINELIB_NAME_AW(PathFileExists)
58 LPSTR WINAPI
PathFindExtensionA(LPCSTR path
);
59 LPWSTR WINAPI
PathFindExtensionW(LPCWSTR path
);
60 #define PathFindExtension WINELIB_NAME_AW(PathFindExtension)
62 LPSTR WINAPI
PathFindFileNameA(LPCSTR pPath
);
63 LPWSTR WINAPI
PathFindFileNameW(LPCWSTR pPath
);
64 #define PathFindFileName WINELIB_NAME_AW(PathFindFileName)
66 LPSTR WINAPI
PathFindNextComponentA(LPCSTR pszPath
);
67 LPWSTR WINAPI
PathFindNextComponentW(LPCWSTR pszPath
);
68 #define PathFindNextComponent WINELIB_NAME_AW(PathFindNextComponent)
70 BOOL WINAPI
PathFindOnPathA(LPSTR sFile
, LPCSTR sOtherDirs
);
71 BOOL WINAPI
PathFindOnPathW(LPWSTR sFile
, LPCWSTR sOtherDirs
);
72 #define PathFindOnPath WINELIB_NAME_AW(PathFindOnPath)
74 LPSTR WINAPI
PathGetArgsA(LPCSTR lpszPath
);
75 LPWSTR WINAPI
PathGetArgsW(LPCWSTR lpszPath
);
76 #define PathGetArgs WINELIB_NAME_AW(PathGetArgs)
78 int WINAPI
PathGetDriveNumberA(LPCSTR lpszPath
);
79 int WINAPI
PathGetDriveNumberW(LPCWSTR lpszPath
);
80 #define PathGetDriveNumber WINELIB_NAME_AW(PathGetDriveNumber)
82 BOOL WINAPI
PathIsDirectoryA(LPCSTR lpszPath
);
83 BOOL WINAPI
PathIsDirectoryW(LPCWSTR lpszPath
);
84 #define PathIsDirectory WINELIB_NAME_AW(PathIsDirectory)
86 BOOL WINAPI
PathIsRelativeA(LPCSTR lpszPath
);
87 BOOL WINAPI
PathIsRelativeW(LPCWSTR lpszPath
);
88 #define PathIsRelative WINELIB_NAME_AW(PathIsRelative)
90 BOOL WINAPI
PathIsRootA(LPCSTR x
);
91 BOOL WINAPI
PathIsRootW(LPCWSTR x
);
92 #define PathIsRoot WINELIB_NAME_AW(PathIsRoot)
94 BOOL WINAPI
PathIsSameRootA(LPCSTR lpszPath1
, LPCSTR lpszPath2
);
95 BOOL WINAPI
PathIsSameRootW(LPCWSTR lpszPath1
, LPCWSTR lpszPath2
);
96 #define PathIsSameRoot WINELIB_NAME_AW(PathIsSameRoot)
98 BOOL WINAPI
PathIsUNCA(LPCSTR lpszPath
);
99 BOOL WINAPI
PathIsUNCW(LPCWSTR lpszPath
);
100 #define PathIsUNC WINELIB_NAME_AW(PathIsUNC)
102 BOOL WINAPI
PathIsURLA(LPCSTR pszPath
);
103 BOOL WINAPI
PathIsURLW(LPCWSTR pszPath
);
104 #define PathIsURL WINELIB_NAME_AW(PathIsURL)
106 BOOL WINAPI
PathMatchSpecA(LPCSTR lpszPath
, LPCSTR lpszSpec
);
107 BOOL WINAPI
PathMatchSpecW(LPCWSTR lpszPath
, LPCWSTR lpszSpec
);
108 #define PathMatchSpec WINELIB_NAME_AW(PathMatchSpec)
110 int WINAPI
PathParseIconLocationA(LPSTR lpszPath
);
111 int WINAPI
PathParseIconLocationW(LPWSTR lpszPath
);
112 #define PathParseIconLocation WINELIB_NAME_AW(PathParseIconLocation)
114 LPSTR WINAPI
PathQuoteSpacesA(LPSTR path
);
115 LPWSTR WINAPI
PathQuoteSpacesW(LPWSTR path
);
116 #define PathQuoteSpaces WINELIB_NAME_AW(PathQuoteSpaces)
118 void WINAPI
PathRemoveArgsA(LPSTR lpszPath
);
119 void WINAPI
PathRemoveArgsW(LPWSTR lpszPath
);
120 #define PathRemoveArgs WINELIB_NAME_AW(PathRemoveArgs)
122 LPSTR WINAPI
PathRemoveBackslashA(LPSTR lpszPath
);
123 LPWSTR WINAPI
PathRemoveBackslashW(LPWSTR lpszPath
);
124 #define PathRemoveBackslash WINELIB_NAME_AW(PathRemoveBackslash)
126 void WINAPI
PathRemoveBlanksA(LPSTR lpszPath
);
127 void WINAPI
PathRemoveBlanksW(LPWSTR lpszPath
);
128 #define PathRemoveBlanks WINELIB_NAME_AW(PathRemoveBlanks)
130 void WINAPI
PathRemoveExtensionA(LPSTR lpszPath
);
131 void WINAPI
PathRemoveExtensionW(LPWSTR lpszPath
);
132 #define PathRemoveExtension WINELIB_NAME_AW(PathRemoveExtension)
134 BOOL WINAPI
PathRemoveFileSpecA(LPSTR lpszPath
);
135 BOOL WINAPI
PathRemoveFileSpecW(LPWSTR lpszPath
);
136 #define PathRemoveFileSpec WINELIB_NAME_AW(PathRemoveFileSpec)
138 BOOL WINAPI
PathSetDlgItemPathA(HWND hDlg
, int id
, LPCSTR pszPath
);
139 BOOL WINAPI
PathSetDlgItemPathW(HWND hDlg
, int id
, LPCWSTR pszPath
);
140 #define PathSetDlgItemPath WINELIB_NAME_AW(PathSetDlgItemPath)
142 void WINAPI
PathStripPathA(LPSTR lpszPath
);
143 void WINAPI
PathStripPathW(LPWSTR lpszPath
);
144 #define PathStripPath WINELIB_NAME_AW(PathStripPath)
146 BOOL WINAPI
PathStripToRootA(LPSTR pszPath
);
147 BOOL WINAPI
PathStripToRootW(LPWSTR pszPath
);
148 #define PathStripToRoot WINELIB_NAME_AW(PathStripToRoot)
150 void WINAPI
PathUnquoteSpacesA(LPSTR str
);
151 void WINAPI
PathUnquoteSpacesW(LPWSTR str
);
152 #define PathUnquoteSpaces WINELIB_NAME_AW(PathUnquoteSpaces)
155 INT WINAPI
StrCSpnA(LPCSTR lpStr
, LPCSTR lpSet
);
156 INT WINAPI
StrCSpnW(LPCWSTR lpStr
, LPCWSTR lpSet
);
157 #define StrCSpn WINELIB_NAME_AW(StrCSpn)
159 INT WINAPI
StrCSpnIA(LPCSTR lpStr
, LPCSTR lpSet
);
160 INT WINAPI
StrCSpnIW(LPCWSTR lpStr
, LPCWSTR lpSet
);
161 #define StrCSpnI WINELIB_NAME_AW(StrCSpnI)
163 #define StrCatA lstrcatA
164 LPWSTR WINAPI
StrCatW(LPWSTR front
, LPCWSTR back
);
165 #define StrCat WINELIB_NAME_AW(StrCat)
167 LPSTR WINAPI
StrCatBuffA(LPSTR front
, LPCSTR back
, INT size
);
168 LPWSTR WINAPI
StrCatBuffW(LPWSTR front
, LPCWSTR back
, INT size
);
169 #define StrCatBuff WINELIB_NAME_AW(StrCatBuff)
171 LPSTR WINAPI
StrChrA(LPCSTR lpStart
, WORD wMatch
);
172 LPWSTR WINAPI
StrChrW(LPCWSTR lpStart
, WCHAR wMatch
);
173 #define StrChr WINELIB_NAME_AW(StrChr)
175 LPSTR WINAPI
StrChrIA(LPCSTR lpStart
, WORD wMatch
);
176 LPWSTR WINAPI
StrChrIW(LPCWSTR lpStart
, WCHAR wMatch
);
177 #define StrChrI WINELIB_NAME_AW(StrChrI)
179 INT WINAPI
StrCmpNA(LPCSTR lpStr1
, LPCSTR lpStr2
, INT nChar
);
180 INT WINAPI
StrCmpNW(LPCWSTR lpStr1
, LPCWSTR lpStr2
, INT nChar
);
181 #define StrCmpN WINELIB_NAME_AW(StrCmpN)
183 INT WINAPI
StrCmpNIA(LPCSTR lpStr1
, LPCSTR lpStr2
, INT nChar
);
184 INT WINAPI
StrCmpNIW(LPCWSTR lpStr1
, LPCWSTR lpStr2
, INT nChar
);
185 #define StrCmpNI WINELIB_NAME_AW(StrCmpNI)
187 LPSTR WINAPI
StrDupA(LPCSTR lpSrc
);
188 LPWSTR WINAPI
StrDupW(LPCWSTR lpSrc
);
189 #define StrDup WINELIB_NAME_AW(StrDup)
191 LPSTR WINAPI
StrFormatByteSizeA ( DWORD dw
, LPSTR pszBuf
, UINT cchBuf
);
192 LPWSTR WINAPI
StrFormatByteSizeW ( DWORD dw
, LPWSTR pszBuf
, UINT cchBuf
);
193 #define StrFormatByteSize WINELIB_NAME_AW(StrFormatByteSize)
199 HRESULT WINAPI
StrRetToBufA(struct _STRRET
*src
, const struct _ITEMIDLIST
*pidl
, LPSTR dest
, DWORD len
);
200 HRESULT WINAPI
StrRetToBufW(struct _STRRET
*src
, const struct _ITEMIDLIST
*pidl
, LPWSTR dest
, DWORD len
);
201 #define StrRetToBuf WINELIB_NAME_AW(StrRetToBuf)
203 HRESULT WINAPI
SHDeleteKeyA(HKEY hKey
, LPCSTR lpszSubKey
);
204 HRESULT WINAPI
SHDeleteKeyW(HKEY hkey
, LPCWSTR pszSubKey
);
205 #define SHDeleteKey WINELIB_NAME_AW(SHDeleteKey)
207 DWORD WINAPI
SHDeleteEmptyKeyA(HKEY hKey
, LPCSTR lpszSubKey
);
208 DWORD WINAPI
SHDeleteEmptyKeyW(HKEY hKey
, LPCWSTR lpszSubKey
);
209 #define SHDeleteEmptyKey WINELIB_NAME_AW(SHDeleteEmptyKey)
211 HRESULT WINAPI
UrlCanonicalizeA(LPCSTR pszUrl
, LPSTR pszCanonicalized
,
212 LPDWORD pcchCanonicalized
, DWORD dwFlags
);
213 HRESULT WINAPI
UrlCanonicalizeW(LPCWSTR pszUrl
, LPWSTR pszCanonicalized
,
214 LPDWORD pcchCanonicalized
, DWORD dwFlags
);
215 #define UrlCanonicalize WINELIB_NAME_AW(UrlCanoncalize)
217 HRESULT WINAPI
UrlEscapeA(LPCSTR pszUrl
, LPSTR pszEscaped
, LPDWORD pcchEscaped
,
219 HRESULT WINAPI
UrlEscapeW(LPCWSTR pszUrl
, LPWSTR pszEscaped
,
220 LPDWORD pcchEscaped
, DWORD dwFlags
);
221 #define UrlEscape WINELIB_NAME_AW(UrlEscape)
223 HRESULT WINAPI
UrlUnescapeA(LPCSTR pszUrl
, LPSTR pszUnescaped
,
224 LPDWORD pcchUnescaped
, DWORD dwFlags
);
225 HRESULT WINAPI
UrlUnescapeW(LPCWSTR pszUrl
, LPWSTR pszUnescaped
,
226 LPDWORD pcchUnescaped
, DWORD dwFlags
);
227 #define UrlUnescape WINELIB_AW_NAME(UrlUnescape)
229 typedef struct _DllVersionInfo
{
231 DWORD dwMajorVersion
;
232 DWORD dwMinorVersion
;
237 #define DLLVER_PLATFORM_WINDOWS 0x00000001 // Windows 9x
238 #define DLLVER_PLATFORM_NT 0x00000002 // Windows NT
240 typedef HRESULT (CALLBACK
* DLLGETVERSIONPROC
)(DLLVERSIONINFO
*);
244 #endif /* defined(__cplusplus) */
246 #endif /* __WINE_SHLWAPI_H */