| 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 SHQueryValueExA(HKEY hkey, LPSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData); | 
|---|
| 211 | HRESULT WINAPI SHQueryValueExW(HKEY hkey, LPWSTR pszValue, LPDWORD pdwReserved, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData); | 
|---|
| 212 | #define SHQueryValueEx WINELIB_NAME_AW(SHQueryValueEx) | 
|---|
| 213 |  | 
|---|
| 214 | HRESULT WINAPI SHDeleteKeyA(HKEY hKey, LPCSTR lpszSubKey); | 
|---|
| 215 | HRESULT WINAPI SHDeleteKeyW(HKEY hkey, LPCWSTR pszSubKey); | 
|---|
| 216 | #define  SHDeleteKey WINELIB_NAME_AW(SHDeleteKey) | 
|---|
| 217 |  | 
|---|
| 218 | DWORD WINAPI SHDeleteEmptyKeyA(HKEY hKey, LPCSTR lpszSubKey); | 
|---|
| 219 | DWORD WINAPI SHDeleteEmptyKeyW(HKEY hKey, LPCWSTR lpszSubKey); | 
|---|
| 220 | #define  SHDeleteEmptyKey WINELIB_NAME_AW(SHDeleteEmptyKey) | 
|---|
| 221 |  | 
|---|
| 222 | HRESULT WINAPI UrlCanonicalizeA(LPCSTR pszUrl, LPSTR pszCanonicalized, | 
|---|
| 223 | LPDWORD pcchCanonicalized, DWORD dwFlags); | 
|---|
| 224 | HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized, | 
|---|
| 225 | LPDWORD pcchCanonicalized, DWORD dwFlags); | 
|---|
| 226 | #define UrlCanonicalize WINELIB_NAME_AW(UrlCanoncalize) | 
|---|
| 227 |  | 
|---|
| 228 | HRESULT WINAPI UrlEscapeA(LPCSTR pszUrl, LPSTR pszEscaped, LPDWORD pcchEscaped, | 
|---|
| 229 | DWORD dwFlags); | 
|---|
| 230 | HRESULT WINAPI UrlEscapeW(LPCWSTR pszUrl, LPWSTR pszEscaped, | 
|---|
| 231 | LPDWORD pcchEscaped, DWORD dwFlags); | 
|---|
| 232 | #define UrlEscape WINELIB_NAME_AW(UrlEscape) | 
|---|
| 233 |  | 
|---|
| 234 | HRESULT WINAPI UrlUnescapeA(LPCSTR pszUrl, LPSTR pszUnescaped, | 
|---|
| 235 | LPDWORD pcchUnescaped, DWORD dwFlags); | 
|---|
| 236 | HRESULT WINAPI UrlUnescapeW(LPCWSTR pszUrl, LPWSTR pszUnescaped, | 
|---|
| 237 | LPDWORD pcchUnescaped, DWORD dwFlags); | 
|---|
| 238 | #define UrlUnescape WINELIB_AW_NAME(UrlUnescape) | 
|---|
| 239 |  | 
|---|
| 240 | #if 0 | 
|---|
| 241 | typedef struct _DllVersionInfo { | 
|---|
| 242 | DWORD cbSize; | 
|---|
| 243 | DWORD dwMajorVersion; | 
|---|
| 244 | DWORD dwMinorVersion; | 
|---|
| 245 | DWORD dwBuildNumber; | 
|---|
| 246 | DWORD dwPlatformID; | 
|---|
| 247 | } DLLVERSIONINFO; | 
|---|
| 248 |  | 
|---|
| 249 | #define DLLVER_PLATFORM_WINDOWS         0x00000001      // Windows 9x | 
|---|
| 250 | #define DLLVER_PLATFORM_NT              0x00000002      // Windows NT | 
|---|
| 251 |  | 
|---|
| 252 | typedef HRESULT CALLBACK (*DLLGETVERSIONPROC)(DLLVERSIONINFO *); | 
|---|
| 253 | #endif | 
|---|
| 254 |  | 
|---|
| 255 | #ifdef __cplusplus | 
|---|
| 256 | } /* extern "C" */ | 
|---|
| 257 | #endif /* defined(__cplusplus) */ | 
|---|
| 258 |  | 
|---|
| 259 | #endif /* __WINE_SHLWAPI_H */ | 
|---|