Implemented a few Url* functions.
[wine/wine64.git] / include / shlwapi.h
blob57e0a6c6192d2a4017fa94a5a2efb808cccbbd57
1 #ifndef __WINE_SHLWAPI_H
2 #define __WINE_SHLWAPI_H
4 #include "objbase.h"
6 #ifdef __cplusplus
7 extern "C" {
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:
15 * URL_ESCAPE_PERCENT
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
31 BOOL WINAPI PathAppendA(LPSTR lpszPath1,LPCSTR lpszPath2);
32 BOOL WINAPI PathAppendW(LPWSTR lpszPath1,LPCWSTR lpszPath2);
34 LPSTR WINAPI PathBuildRootA(LPSTR lpszPath, int drive);
35 LPWSTR WINAPI PathBuildRootW(LPWSTR lpszPath, int drive);
37 LPSTR WINAPI PathGetArgsA(LPCSTR lpszPath);
38 LPWSTR WINAPI PathGetArgsW(LPCWSTR lpszPath);
40 BOOL WINAPI PathRemoveFileSpecA(LPSTR lpszPath);
41 BOOL WINAPI PathRemoveFileSpecW(LPWSTR lpszPath);
43 void WINAPI PathStripPathA(LPSTR lpszPath);
44 void WINAPI PathStripPathW(LPWSTR lpszPath);
46 void WINAPI PathRemoveArgsA(LPSTR lpszPath);
47 void WINAPI PathRemoveArgsW(LPWSTR lpszPath);
49 void WINAPI PathRemoveExtensionA(LPSTR lpszPath);
50 void WINAPI PathRemoveExtensionW(LPWSTR lpszPath);
52 void WINAPI PathUnquoteSpacesA(LPSTR str);
53 void WINAPI PathUnquoteSpacesW(LPWSTR str);
55 int WINAPI PathParseIconLocationA(LPSTR lpszPath);
56 int WINAPI PathParseIconLocationW(LPWSTR lpszPath);
58 BOOL WINAPI PathIsDirectoryA(LPCSTR lpszPath);
59 BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath);
61 BOOL WINAPI PathFileExistsA(LPCSTR lpszPath);
62 BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath);
64 BOOL WINAPI PathIsSameRootA(LPCSTR lpszPath1, LPCSTR lpszPath2);
65 BOOL WINAPI PathIsSameRootW(LPCWSTR lpszPath1, LPCWSTR lpszPath2);
67 BOOL WINAPI PathSetDlgItemPathA(HWND hDlg, int id, LPCSTR pszPath);
68 BOOL WINAPI PathSetDlgItemPathW(HWND hDlg, int id, LPCWSTR pszPath);
70 LPSTR WINAPI PathFindFileNameA(LPCSTR pPath);
71 LPWSTR WINAPI PathFindFileNameW(LPCWSTR pPath);
72 #define PathFindFileName WINELIB_NAME_AW(PathFindFileName)
73 LPVOID WINAPI PathFindFileNameAW(LPCVOID path);
75 int WINAPI PathGetDriveNumberA(LPCSTR lpszPath);
76 int WINAPI PathGetDriveNumberW(LPCWSTR lpszPath);
77 #define PathGetDriveNumber WINELIB_NAME_AW(PathGetDriveNumber)
79 BOOL WINAPI PathCanonicalizeA(LPSTR lpszDst, LPCSTR lpszSrc);
80 BOOL WINAPI PathCanonicalizeW(LPWSTR lpszDst, LPCWSTR lpszSrc);
81 #define PathCanonicalize WINELIB_NAME_AW(PathCanonicalize)
83 LPSTR WINAPI PathFindNextComponentA(LPCSTR pszPath);
84 LPWSTR WINAPI PathFindNextComponentW(LPCWSTR pszPath);
85 #define PathFindNextComponent WINELIB_NAME_AW(PathFindNextComponent)
87 BOOL WINAPI PathIsURLA(LPCSTR pszPath);
88 BOOL WINAPI PathIsURLW(LPCWSTR pszPath);
89 #define PathIsURL WINELIB_NAME_AW(PathIsURL)
91 BOOL WINAPI PathAddExtensionA(LPSTR pszPath, LPCSTR pszExt);
92 BOOL WINAPI PathAddExtensionW(LPWSTR pszPath, LPCWSTR pszExt);
93 #define PathAddExtension WINELIB_NAME_AW(PathAddExtension)
95 BOOL WINAPI PathStripToRootA(LPSTR pszPath);
96 BOOL WINAPI PathStripToRootW(LPWSTR pszPath);
97 #define PathStripToRoot WINELIB_NAME_AW(PathStripToRoot)
99 INT WINAPI StrCSpnA(LPCSTR lpStr, LPCSTR lpSet);
100 INT WINAPI StrCSpnW(LPCWSTR lpStr, LPCWSTR lpSet);
101 #define StrCSpn WINELIB_NAME_AW(StrCSpn)
103 INT WINAPI StrCSpnIA(LPCSTR lpStr, LPCSTR lpSet);
104 INT WINAPI StrCSpnIW(LPCWSTR lpStr, LPCWSTR lpSet);
105 #define StrCSpnI WINELIB_NAME_AW(StrCSpnI)
107 #define StrCatA lstrcatA
108 LPWSTR WINAPI StrCatW(LPWSTR front, LPCWSTR back);
109 #define StrCat WINELIB_NAME_AW(StrCat)
111 LPSTR WINAPI StrCatBuffA(LPSTR front, LPCSTR back, INT size);
112 LPWSTR WINAPI StrCatBuffW(LPWSTR front, LPCWSTR back, INT size);
113 #define StrCatBuff WINELIB_NAME_AW(StrCatBuff)
115 LPSTR WINAPI StrChrA(LPCSTR lpStart, WORD wMatch);
116 LPWSTR WINAPI StrChrW(LPCWSTR lpStart, WCHAR wMatch);
117 #define StrChr WINELIB_NAME_AW(StrChr)
119 LPSTR WINAPI StrChrIA(LPCSTR lpStart, WORD wMatch);
120 LPWSTR WINAPI StrChrIW(LPCWSTR lpStart, WCHAR wMatch);
121 #define StrChrI WINELIB_NAME_AW(StrChrI)
123 INT WINAPI StrCmpNA(LPCSTR lpStr1, LPCSTR lpStr2, INT nChar);
124 INT WINAPI StrCmpNW(LPCWSTR lpStr1, LPCWSTR lpStr2, INT nChar);
125 #define StrCmpN WINELIB_NAME_AW(StrCmpN)
127 INT WINAPI StrCmpNIA(LPCSTR lpStr1, LPCSTR lpStr2, INT nChar);
128 INT WINAPI StrCmpNIW(LPCWSTR lpStr1, LPCWSTR lpStr2, INT nChar);
129 #define StrCmpNI WINELIB_NAME_AW(StrCmpNI)
131 LPSTR WINAPI StrDupA(LPCSTR lpSrc);
132 LPWSTR WINAPI StrDupW(LPCWSTR lpSrc);
133 #define StrDup WINELIB_NAME_AW(StrDup)
135 struct _STRRET;
136 struct _ITEMIDLIST;
137 HRESULT WINAPI StrRetToBufA(struct _STRRET *src, const struct _ITEMIDLIST *pidl, LPSTR dest, DWORD len);
138 HRESULT WINAPI StrRetToBufW(struct _STRRET *src, const struct _ITEMIDLIST *pidl, LPWSTR dest, DWORD len);
139 #define StrRetToBuf WINELIB_NAME_AW(StrRetToBuf)
141 void WINAPI PathRemoveBlanksA(LPSTR lpszPath);
142 void WINAPI PathRemoveBlanksW(LPWSTR lpszPath);
143 #define PathRemoveBlanks WINELIB_NAME_AW(PathRemoveBlanks)
144 void WINAPI PathRemoveBlanksAW(LPVOID lpszPath);
146 HRESULT WINAPI SHDeleteKeyA(HKEY hKey, LPCSTR lpszSubKey);
147 HRESULT WINAPI SHDeleteKeyW(HKEY hkey, LPCWSTR pszSubKey);
148 #define SHDeleteKey WINELIB_NAME_AW(SHDeleteKey)
150 DWORD WINAPI SHDeleteEmptyKeyA(HKEY hKey, LPCSTR lpszSubKey);
151 DWORD WINAPI SHDeleteEmptyKeyW(HKEY hKey, LPCWSTR lpszSubKey);
152 #define SHDeleteEmptyKey WINELIB_NAME_AW(SHDeleteEmptyKey)
154 HRESULT WINAPI UrlCanonicalizeA(LPCSTR pszUrl, LPSTR pszCanonicalized,
155 LPDWORD pcchCanonicalized, DWORD dwFlags);
156 HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized,
157 LPDWORD pcchCanonicalized, DWORD dwFlags);
158 #define UrlCanonicalize WINELIB_NAME_AW(UrlCanoncalize)
160 HRESULT WINAPI UrlEscapeA(LPCSTR pszUrl, LPSTR pszEscaped, LPDWORD pcchEscaped,
161 DWORD dwFlags);
162 HRESULT WINAPI UrlEscapeW(LPCWSTR pszUrl, LPWSTR pszEscaped,
163 LPDWORD pcchEscaped, DWORD dwFlags);
164 #define UrlEscape WINELIB_NAME_AW(UrlEscape)
166 HRESULT WINAPI UrlUnescapeA(LPCSTR pszUrl, LPSTR pszUnescaped,
167 LPDWORD pcchUnescaped, DWORD dwFlags);
168 HRESULT WINAPI UrlUnescapeW(LPCWSTR pszUrl, LPWSTR pszUnescaped,
169 LPDWORD pcchUnescaped, DWORD dwFlags);
170 #define UrlUnescape WINELIB_AW_NAME(UrlUnescape)
172 typedef struct _DllVersionInfo {
173 DWORD cbSize;
174 DWORD dwMajorVersion;
175 DWORD dwMinorVersion;
176 DWORD dwBuildNumber;
177 DWORD dwPlatformID;
178 } DLLVERSIONINFO;
180 #define DLLVER_PLATFORM_WINDOWS 0x00000001 // Windows 9x
181 #define DLLVER_PLATFORM_NT 0x00000002 // Windows NT
183 typedef HRESULT (CALLBACK* DLLGETVERSIONPROC)(DLLVERSIONINFO *);
185 #ifdef __cplusplus
186 } /* extern "C" */
187 #endif /* defined(__cplusplus) */
189 #endif /* __WINE_SHLWAPI_H */