Juergen Schmied | 51c74d8 | 2000-04-28 20:23:46 +0000 | [diff] [blame] | 1 | #ifndef __WINE_SHLWAPI_H |
| 2 | #define __WINE_SHLWAPI_H |
| 3 | |
Alexandre Julliard | 74af67e | 2000-09-26 00:00:55 +0000 | [diff] [blame] | 4 | #include "objbase.h" |
Juergen Schmied | 51c74d8 | 2000-04-28 20:23:46 +0000 | [diff] [blame] | 5 | |
| 6 | #ifdef __cplusplus |
| 7 | extern "C" { |
| 8 | #endif /* defined(__cplusplus) */ |
| 9 | |
Huw D M Davies | f6c7222 | 2001-01-05 22:22:57 +0000 | [diff] [blame] | 10 | |
Marcus Meissner | 784fd59 | 2001-05-29 20:51:53 +0000 | [diff] [blame] | 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 |
| 17 | |
Huw D M Davies | f6c7222 | 2001-01-05 22:22:57 +0000 | [diff] [blame] | 18 | /* |
| 19 | * The URL_ defines were determined by trial and error. If they become |
| 20 | * documented please check them and add the missing ones including: |
| 21 | * |
| 22 | * URL_ESCAPE_PERCENT |
| 23 | * URL_PLUGGABLE_PROTOCOL |
| 24 | * URL_DONT_ESCAPE_EXTRA_INFO |
| 25 | * URL_ESCAPE_SEGMENT_ONLY |
| 26 | */ |
| 27 | |
| 28 | #define URL_UNESCAPE_INPLACE 0x00100000 |
| 29 | #define URL_DONT_UNESCAPE_EXTRA_INFO 0x02000000 |
| 30 | |
| 31 | #define URL_ESCAPE_SPACES_ONLY 0x04000000 |
| 32 | |
| 33 | #define URL_UNESCAPE 0x10000000 |
| 34 | #define URL_ESCAPE_UNSAFE 0x20000000 |
| 35 | #define URL_DONT_SIMPLIFY 0x40000000 |
| 36 | |
Huw D M Davies | 62519ab | 2001-01-07 21:50:52 +0000 | [diff] [blame] | 37 | LPSTR WINAPI PathAddBackslashA(LPSTR path); |
| 38 | LPWSTR WINAPI PathAddBackslashW(LPWSTR path); |
| 39 | #define PathAddBackslash WINELIB_NAME_AW(PathAddBackslash) |
Juergen Schmied | 51c74d8 | 2000-04-28 20:23:46 +0000 | [diff] [blame] | 40 | |
Juergen Schmied | 0d18aad | 2000-06-01 23:25:44 +0000 | [diff] [blame] | 41 | BOOL WINAPI PathAddExtensionA(LPSTR pszPath, LPCSTR pszExt); |
| 42 | BOOL WINAPI PathAddExtensionW(LPWSTR pszPath, LPCWSTR pszExt); |
| 43 | #define PathAddExtension WINELIB_NAME_AW(PathAddExtension) |
| 44 | |
Huw D M Davies | 62519ab | 2001-01-07 21:50:52 +0000 | [diff] [blame] | 45 | BOOL WINAPI PathAppendA(LPSTR lpszPath1,LPCSTR lpszPath2); |
| 46 | BOOL WINAPI PathAppendW(LPWSTR lpszPath1,LPCWSTR lpszPath2); |
| 47 | #define PathAppend WINELIB_NAME_AW(PathAppend) |
| 48 | |
| 49 | LPSTR WINAPI PathBuildRootA(LPSTR lpszPath, int drive); |
| 50 | LPWSTR WINAPI PathBuildRootW(LPWSTR lpszPath, int drive); |
| 51 | #define PathBuildRoot WINELIB_NAME_AW(PathBuiltRoot) |
| 52 | |
| 53 | BOOL WINAPI PathCanonicalizeA(LPSTR lpszDst, LPCSTR lpszSrc); |
| 54 | BOOL WINAPI PathCanonicalizeW(LPWSTR lpszDst, LPCWSTR lpszSrc); |
| 55 | #define PathCanonicalize WINELIB_NAME_AW(PathCanonicalize) |
| 56 | |
| 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) |
| 60 | |
| 61 | BOOL WINAPI PathFileExistsA(LPCSTR lpszPath); |
| 62 | BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath); |
| 63 | #define PathFileExists WINELIB_NAME_AW(PathFileExists) |
| 64 | |
| 65 | LPSTR WINAPI PathFindExtensionA(LPCSTR path); |
| 66 | LPWSTR WINAPI PathFindExtensionW(LPCWSTR path); |
| 67 | #define PathFindExtension WINELIB_NAME_AW(PathFindExtension) |
| 68 | |
| 69 | LPSTR WINAPI PathFindFileNameA(LPCSTR pPath); |
| 70 | LPWSTR WINAPI PathFindFileNameW(LPCWSTR pPath); |
| 71 | #define PathFindFileName WINELIB_NAME_AW(PathFindFileName) |
| 72 | |
| 73 | LPSTR WINAPI PathFindNextComponentA(LPCSTR pszPath); |
| 74 | LPWSTR WINAPI PathFindNextComponentW(LPCWSTR pszPath); |
| 75 | #define PathFindNextComponent WINELIB_NAME_AW(PathFindNextComponent) |
| 76 | |
| 77 | BOOL WINAPI PathFindOnPathA(LPSTR sFile, LPCSTR sOtherDirs); |
| 78 | BOOL WINAPI PathFindOnPathW(LPWSTR sFile, LPCWSTR sOtherDirs); |
| 79 | #define PathFindOnPath WINELIB_NAME_AW(PathFindOnPath) |
| 80 | |
| 81 | LPSTR WINAPI PathGetArgsA(LPCSTR lpszPath); |
| 82 | LPWSTR WINAPI PathGetArgsW(LPCWSTR lpszPath); |
| 83 | #define PathGetArgs WINELIB_NAME_AW(PathGetArgs) |
| 84 | |
| 85 | int WINAPI PathGetDriveNumberA(LPCSTR lpszPath); |
| 86 | int WINAPI PathGetDriveNumberW(LPCWSTR lpszPath); |
| 87 | #define PathGetDriveNumber WINELIB_NAME_AW(PathGetDriveNumber) |
| 88 | |
| 89 | BOOL WINAPI PathIsDirectoryA(LPCSTR lpszPath); |
| 90 | BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath); |
| 91 | #define PathIsDirectory WINELIB_NAME_AW(PathIsDirectory) |
| 92 | |
| 93 | BOOL WINAPI PathIsRelativeA(LPCSTR lpszPath); |
| 94 | BOOL WINAPI PathIsRelativeW(LPCWSTR lpszPath); |
| 95 | #define PathIsRelative WINELIB_NAME_AW(PathIsRelative) |
| 96 | |
| 97 | BOOL WINAPI PathIsRootA(LPCSTR x); |
| 98 | BOOL WINAPI PathIsRootW(LPCWSTR x); |
| 99 | #define PathIsRoot WINELIB_NAME_AW(PathIsRoot) |
| 100 | |
| 101 | BOOL WINAPI PathIsSameRootA(LPCSTR lpszPath1, LPCSTR lpszPath2); |
| 102 | BOOL WINAPI PathIsSameRootW(LPCWSTR lpszPath1, LPCWSTR lpszPath2); |
| 103 | #define PathIsSameRoot WINELIB_NAME_AW(PathIsSameRoot) |
| 104 | |
| 105 | BOOL WINAPI PathIsUNCA(LPCSTR lpszPath); |
| 106 | BOOL WINAPI PathIsUNCW(LPCWSTR lpszPath); |
| 107 | #define PathIsUNC WINELIB_NAME_AW(PathIsUNC) |
| 108 | |
| 109 | BOOL WINAPI PathIsURLA(LPCSTR pszPath); |
| 110 | BOOL WINAPI PathIsURLW(LPCWSTR pszPath); |
| 111 | #define PathIsURL WINELIB_NAME_AW(PathIsURL) |
| 112 | |
| 113 | BOOL WINAPI PathMatchSpecA(LPCSTR lpszPath, LPCSTR lpszSpec); |
| 114 | BOOL WINAPI PathMatchSpecW(LPCWSTR lpszPath, LPCWSTR lpszSpec); |
| 115 | #define PathMatchSpec WINELIB_NAME_AW(PathMatchSpec) |
| 116 | |
| 117 | int WINAPI PathParseIconLocationA(LPSTR lpszPath); |
| 118 | int WINAPI PathParseIconLocationW(LPWSTR lpszPath); |
| 119 | #define PathParseIconLocation WINELIB_NAME_AW(PathParseIconLocation) |
| 120 | |
| 121 | LPSTR WINAPI PathQuoteSpacesA(LPSTR path); |
| 122 | LPWSTR WINAPI PathQuoteSpacesW(LPWSTR path); |
| 123 | #define PathQuoteSpaces WINELIB_NAME_AW(PathQuoteSpaces) |
| 124 | |
| 125 | void WINAPI PathRemoveArgsA(LPSTR lpszPath); |
| 126 | void WINAPI PathRemoveArgsW(LPWSTR lpszPath); |
| 127 | #define PathRemoveArgs WINELIB_NAME_AW(PathRemoveArgs) |
| 128 | |
| 129 | LPSTR WINAPI PathRemoveBackslashA(LPSTR lpszPath); |
| 130 | LPWSTR WINAPI PathRemoveBackslashW(LPWSTR lpszPath); |
| 131 | #define PathRemoveBackslash WINELIB_NAME_AW(PathRemoveBackslash) |
| 132 | |
| 133 | void WINAPI PathRemoveBlanksA(LPSTR lpszPath); |
| 134 | void WINAPI PathRemoveBlanksW(LPWSTR lpszPath); |
| 135 | #define PathRemoveBlanks WINELIB_NAME_AW(PathRemoveBlanks) |
| 136 | |
| 137 | void WINAPI PathRemoveExtensionA(LPSTR lpszPath); |
| 138 | void WINAPI PathRemoveExtensionW(LPWSTR lpszPath); |
| 139 | #define PathRemoveExtension WINELIB_NAME_AW(PathRemoveExtension) |
| 140 | |
| 141 | BOOL WINAPI PathRemoveFileSpecA(LPSTR lpszPath); |
| 142 | BOOL WINAPI PathRemoveFileSpecW(LPWSTR lpszPath); |
| 143 | #define PathRemoveFileSpec WINELIB_NAME_AW(PathRemoveFileSpec) |
| 144 | |
| 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) |
| 148 | |
| 149 | void WINAPI PathStripPathA(LPSTR lpszPath); |
| 150 | void WINAPI PathStripPathW(LPWSTR lpszPath); |
| 151 | #define PathStripPath WINELIB_NAME_AW(PathStripPath) |
| 152 | |
Juergen Schmied | 0d18aad | 2000-06-01 23:25:44 +0000 | [diff] [blame] | 153 | BOOL WINAPI PathStripToRootA(LPSTR pszPath); |
| 154 | BOOL WINAPI PathStripToRootW(LPWSTR pszPath); |
| 155 | #define PathStripToRoot WINELIB_NAME_AW(PathStripToRoot) |
| 156 | |
Huw D M Davies | 62519ab | 2001-01-07 21:50:52 +0000 | [diff] [blame] | 157 | void WINAPI PathUnquoteSpacesA(LPSTR str); |
| 158 | void WINAPI PathUnquoteSpacesW(LPWSTR str); |
| 159 | #define PathUnquoteSpaces WINELIB_NAME_AW(PathUnquoteSpaces) |
| 160 | |
| 161 | |
Huw D M Davies | 52b2d2c | 2000-09-13 20:28:31 +0000 | [diff] [blame] | 162 | INT WINAPI StrCSpnA(LPCSTR lpStr, LPCSTR lpSet); |
| 163 | INT WINAPI StrCSpnW(LPCWSTR lpStr, LPCWSTR lpSet); |
| 164 | #define StrCSpn WINELIB_NAME_AW(StrCSpn) |
| 165 | |
| 166 | INT WINAPI StrCSpnIA(LPCSTR lpStr, LPCSTR lpSet); |
| 167 | INT WINAPI StrCSpnIW(LPCWSTR lpStr, LPCWSTR lpSet); |
| 168 | #define StrCSpnI WINELIB_NAME_AW(StrCSpnI) |
| 169 | |
| 170 | #define StrCatA lstrcatA |
| 171 | LPWSTR WINAPI StrCatW(LPWSTR front, LPCWSTR back); |
| 172 | #define StrCat WINELIB_NAME_AW(StrCat) |
| 173 | |
| 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) |
| 177 | |
Juergen Schmied | 13d74c5 | 2000-06-13 03:45:52 +0000 | [diff] [blame] | 178 | LPSTR WINAPI StrChrA(LPCSTR lpStart, WORD wMatch); |
| 179 | LPWSTR WINAPI StrChrW(LPCWSTR lpStart, WCHAR wMatch); |
| 180 | #define StrChr WINELIB_NAME_AW(StrChr) |
| 181 | |
Huw D M Davies | 52b2d2c | 2000-09-13 20:28:31 +0000 | [diff] [blame] | 182 | LPSTR WINAPI StrChrIA(LPCSTR lpStart, WORD wMatch); |
| 183 | LPWSTR WINAPI StrChrIW(LPCWSTR lpStart, WCHAR wMatch); |
| 184 | #define StrChrI WINELIB_NAME_AW(StrChrI) |
| 185 | |
| 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) |
| 189 | |
| 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) |
| 193 | |
| 194 | LPSTR WINAPI StrDupA(LPCSTR lpSrc); |
| 195 | LPWSTR WINAPI StrDupW(LPCWSTR lpSrc); |
| 196 | #define StrDup WINELIB_NAME_AW(StrDup) |
| 197 | |
Huw D M Davies | 62519ab | 2001-01-07 21:50:52 +0000 | [diff] [blame] | 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) |
| 201 | |
Peter Hunnisett | d50a5b3 | 2001-07-10 19:12:40 +0000 | [diff] [blame^] | 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) |
| 205 | |
| 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) |
Huw D M Davies | 62519ab | 2001-01-07 21:50:52 +0000 | [diff] [blame] | 209 | |
| 210 | |
Alexandre Julliard | 74af67e | 2000-09-26 00:00:55 +0000 | [diff] [blame] | 211 | struct _STRRET; |
| 212 | struct _ITEMIDLIST; |
| 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); |
Huw D M Davies | 52b2d2c | 2000-09-13 20:28:31 +0000 | [diff] [blame] | 215 | #define StrRetToBuf WINELIB_NAME_AW(StrRetToBuf) |
| 216 | |
Mike McCormack | 3112fd2 | 2000-09-29 00:25:56 +0000 | [diff] [blame] | 217 | HRESULT WINAPI SHDeleteKeyA(HKEY hKey, LPCSTR lpszSubKey); |
| 218 | HRESULT WINAPI SHDeleteKeyW(HKEY hkey, LPCWSTR pszSubKey); |
| 219 | #define SHDeleteKey WINELIB_NAME_AW(SHDeleteKey) |
| 220 | |
| 221 | DWORD WINAPI SHDeleteEmptyKeyA(HKEY hKey, LPCSTR lpszSubKey); |
| 222 | DWORD WINAPI SHDeleteEmptyKeyW(HKEY hKey, LPCWSTR lpszSubKey); |
| 223 | #define SHDeleteEmptyKey WINELIB_NAME_AW(SHDeleteEmptyKey) |
| 224 | |
Huw D M Davies | f6c7222 | 2001-01-05 22:22:57 +0000 | [diff] [blame] | 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) |
| 230 | |
| 231 | HRESULT WINAPI UrlEscapeA(LPCSTR pszUrl, LPSTR pszEscaped, LPDWORD pcchEscaped, |
| 232 | DWORD dwFlags); |
| 233 | HRESULT WINAPI UrlEscapeW(LPCWSTR pszUrl, LPWSTR pszEscaped, |
| 234 | LPDWORD pcchEscaped, DWORD dwFlags); |
| 235 | #define UrlEscape WINELIB_NAME_AW(UrlEscape) |
| 236 | |
| 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) |
| 242 | |
Francois Gouget | 8aa79fb | 2000-09-29 01:03:30 +0000 | [diff] [blame] | 243 | typedef struct _DllVersionInfo { |
| 244 | DWORD cbSize; |
| 245 | DWORD dwMajorVersion; |
| 246 | DWORD dwMinorVersion; |
| 247 | DWORD dwBuildNumber; |
| 248 | DWORD dwPlatformID; |
| 249 | } DLLVERSIONINFO; |
| 250 | |
| 251 | #define DLLVER_PLATFORM_WINDOWS 0x00000001 // Windows 9x |
| 252 | #define DLLVER_PLATFORM_NT 0x00000002 // Windows NT |
| 253 | |
Francois Gouget | 40774c3 | 2001-02-12 01:29:08 +0000 | [diff] [blame] | 254 | typedef HRESULT CALLBACK (*DLLGETVERSIONPROC)(DLLVERSIONINFO *); |
Francois Gouget | 8aa79fb | 2000-09-29 01:03:30 +0000 | [diff] [blame] | 255 | |
Juergen Schmied | 51c74d8 | 2000-04-28 20:23:46 +0000 | [diff] [blame] | 256 | #ifdef __cplusplus |
| 257 | } /* extern "C" */ |
| 258 | #endif /* defined(__cplusplus) */ |
| 259 | |
| 260 | #endif /* __WINE_SHLWAPI_H */ |