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