Merge back commits from WineHQ
[reactos.git] / reactos / include / wine / shlwapi.h
1 #ifndef __WINE_SHLWAPI_H
2 #define __WINE_SHLWAPI_H
3
4 #define WINSHLWAPI
5
6 /* First part: w32api shlwapi.h.
7 SHRegQueryInfoUSKeyA and SHRegQueryInfoUSKeyW miss the last parameter in w32api
8 Following functions are declared by w32api as documented in MSDN, but the actual
9 declaration in the PSDK is different:
10 PathMakeSystemFolderA/W
11 PathUnmakeSystemFolderA/W
12 SHRegCloseUSKey
13 SHRegQueryInfoUSKeyA/W
14 SHRegEnumUSKeyA/W
15 SHQueryInfoKeyA/W
16 SHEnumKeyExA/W
17 SHEnumValueA/W
18 Following functions are most likely documented wrong in MSDN (and in w32api), they
19 pop only 12 bytes from the stack on return:
20 MLLoadLibraryA/W
21 */
22
23 #if __GNUC__ >=3
24 #pragma GCC system_header
25 #endif
26
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30
31 #ifndef __OBJC__
32 #include <objbase.h>
33 #include <shlobj.h>
34 #endif
35
36 #ifndef WINSHLWAPI
37 #define WINSHLWAPI DECLSPEC_IMPORT
38 #endif
39
40 #define DLLVER_PLATFORM_WINDOWS 0x00000001
41 #define DLLVER_PLATFORM_NT 0x00000002
42
43 #define URL_DONT_ESCAPE_EXTRA_INFO 0x02000000
44 #define URL_DONT_SIMPLIFY 0x08000000
45 #define URL_ESCAPE_PERCENT 0x00001000
46 #define URL_ESCAPE_SEGMENT_ONLY 0x00002000
47 #define URL_ESCAPE_SPACES_ONLY 0x04000000
48 #define URL_ESCAPE_UNSAFE 0x20000000
49 #define URL_INTERNAL_PATH 0x00800000
50 #define URL_PARTFLAG_KEEPSCHEME 0x00000001
51 #define URL_PLUGGABLE_PROTOCOL 0x40000000
52 #define URL_UNESCAPE 0x10000000
53 #define URL_UNESCAPE_HIGH_ANSI_ONLY 0x00400000
54 #define URL_UNESCAPE_INPLACE 0x00100000
55
56 #ifndef RC_INVOKED
57 #include <pshpack1.h>
58 typedef struct _DllVersionInfo
59 {
60 DWORD cbSize;
61 DWORD dwMajorVersion;
62 DWORD dwMinorVersion;
63 DWORD dwBuildNumber;
64 DWORD dwPlatformID;
65 } DLLVERSIONINFO;
66 typedef struct _DLLVERSIONINFO2
67 {
68 DLLVERSIONINFO info1;
69 DWORD dwFlags;
70 ULONGLONG ullVersion;
71 } DLLVERSIONINFO2;
72 #include <poppack.h>
73
74 #define MAKEDLLVERULL(major, minor, build, qfe) \
75 (((ULONGLONG)(major) << 48) | \
76 ((ULONGLONG)(minor) << 32) | \
77 ((ULONGLONG)(build) << 16) | \
78 ((ULONGLONG)( qfe) << 0))
79
80 typedef enum {
81 ASSOCSTR_COMMAND,
82 ASSOCSTR_EXECUTABLE,
83 ASSOCSTR_FRIENDLYDOCNAME,
84 ASSOCSTR_FRIENDLYAPPNAME,
85 ASSOCSTR_NOOPEN,
86 ASSOCSTR_SHELLNEWVALUE,
87 ASSOCSTR_DDECOMMAND,
88 ASSOCSTR_DDEIFEXEC,
89 ASSOCSTR_DDEAPPLICATION,
90 ASSOCSTR_DDETOPIC
91 } ASSOCSTR;
92 typedef enum
93 {
94 ASSOCKEY_SHELLEXECCLASS = 1,
95 ASSOCKEY_APP,
96 ASSOCKEY_CLASS,
97 ASSOCKEY_BASECLASS
98 } ASSOCKEY;
99 typedef enum
100 {
101 ASSOCDATA_MSIDESCRIPTOR = 1,
102 ASSOCDATA_NOACTIVATEHANDLER,
103 ASSOCDATA_QUERYCLASSSTORE
104 } ASSOCDATA;
105 typedef DWORD ASSOCF;
106 typedef enum
107 {
108 SHREGDEL_DEFAULT = 0x00000000,
109 SHREGDEL_HKCU = 0x00000001,
110 SHREGDEL_HKLM = 0x00000010,
111 SHREGDEL_BOTH = 0x00000011
112 } SHREGDEL_FLAGS;
113 typedef enum
114 {
115 SHREGENUM_DEFAULT = 0x00000000,
116 SHREGENUM_HKCU = 0x00000001,
117 SHREGENUM_HKLM = 0x00000010,
118 SHREGENUM_BOTH = 0x00000011
119 } SHREGENUM_FLAGS;
120 typedef enum
121 {
122 URLIS_URL,
123 URLIS_OPAQUE,
124 URLIS_NOHISTORY,
125 URLIS_FILEURL,
126 URLIS_APPLIABLE,
127 URLIS_DIRECTORY,
128 URLIS_HASQUERY
129 } URLIS;
130
131 typedef HANDLE HUSKEY, *PHUSKEY;
132
133 typedef HRESULT (WINAPI* DLLGETVERSIONPROC)(DLLVERSIONINFO *);
134
135 WINSHLWAPI BOOL WINAPI ChrCmpIA(WORD,WORD);
136 WINSHLWAPI BOOL WINAPI ChrCmpIW(WCHAR,WCHAR);
137 #define IntlStrEqNA(pStr1, pStr2, nChar) IntlStrEqWorkerA(TRUE, pStr1, pStr2, nChar);
138 #define IntlStrEqNW(pStr1, pStr2, nChar) IntlStrEqWorkerW(TRUE, pStr1, pStr2, nChar);
139 #define IntlStrEqNIA(pStr1, pStr2, nChar) IntlStrEqWorkerA(FALSE, pStr1, pStr2, nChar);
140 #define IntlStrEqNIW(pStr1, pStr2, nChar) IntlStrEqWorkerW(FALSE, pStr1, pStr2, nChar);
141 WINSHLWAPI BOOL WINAPI IntlStrEqWorkerA(BOOL,LPCSTR,LPCSTR,int);
142 WINSHLWAPI BOOL WINAPI IntlStrEqWorkerW(BOOL,LPCWSTR,LPCWSTR,int);
143 WINSHLWAPI HRESULT WINAPI SHStrDupA(LPCSTR,LPWSTR*);
144 WINSHLWAPI HRESULT WINAPI SHStrDupW(LPCWSTR,LPWSTR*);
145 WINSHLWAPI LPSTR WINAPI StrCatA(LPSTR,LPCSTR);
146 WINSHLWAPI LPWSTR WINAPI StrCatW(LPWSTR,LPCWSTR);
147 WINSHLWAPI LPSTR WINAPI StrCatBuffA(LPSTR,LPCSTR,int);
148 WINSHLWAPI LPWSTR WINAPI StrCatBuffW(LPWSTR,LPCWSTR,int);
149 WINSHLWAPI DWORD WINAPI StrCatChainW(LPWSTR,DWORD,DWORD,LPCWSTR);
150 WINSHLWAPI LPSTR WINAPI StrChrA(LPCSTR,WORD);
151 WINSHLWAPI LPWSTR WINAPI StrChrW(LPCWSTR,WCHAR);
152 WINSHLWAPI LPSTR WINAPI StrChrIA(LPCSTR,WORD);
153 WINSHLWAPI LPWSTR WINAPI StrChrIW(LPCWSTR,WCHAR);
154 #define StrCmpIA lstrcmpiA
155 #define StrCmpA lstrcmpA
156 #define StrCpyA lstrcpyA
157 #define StrCpyNA lstrcpynA
158 WINSHLWAPI int WINAPI StrCmpIW(LPCWSTR,LPCWSTR);
159 WINSHLWAPI int WINAPI StrCmpW(LPCWSTR,LPCWSTR);
160 WINSHLWAPI LPWSTR WINAPI StrCpyW(LPWSTR,LPCWSTR);
161 WINSHLWAPI LPWSTR WINAPI StrCpyNW(LPWSTR,LPCWSTR,int);
162 WINSHLWAPI int WINAPI StrCmpNA(LPCSTR,LPCSTR,int);
163 WINSHLWAPI int WINAPI StrCmpNW(LPCWSTR,LPCWSTR,int);
164 WINSHLWAPI int WINAPI StrCmpNIA(LPCSTR,LPCSTR,int);
165 WINSHLWAPI int WINAPI StrCmpNIW(LPCWSTR,LPCWSTR,int);
166 WINSHLWAPI int WINAPI StrCSpnA(LPCSTR,LPCSTR);
167 WINSHLWAPI int WINAPI StrCSpnW(LPCWSTR,LPCWSTR);
168 WINSHLWAPI int WINAPI StrCSpnIA(LPCSTR,LPCSTR);
169 WINSHLWAPI int WINAPI StrCSpnIW(LPCWSTR,LPCWSTR);
170 WINSHLWAPI LPSTR WINAPI StrDupA(LPCSTR);
171 WINSHLWAPI LPWSTR WINAPI StrDupW(LPCWSTR);
172 WINSHLWAPI LPSTR WINAPI StrFormatByteSize64A(LONGLONG,LPSTR,UINT);
173 WINSHLWAPI LPSTR WINAPI StrFormatByteSizeA(DWORD,LPSTR,UINT);
174 WINSHLWAPI LPWSTR WINAPI StrFormatByteSizeW(LONGLONG,LPWSTR,UINT);
175 WINSHLWAPI LPSTR WINAPI StrFormatKBSizeA(LONGLONG,LPSTR,UINT);
176 WINSHLWAPI LPWSTR WINAPI StrFormatKBSizeW(LONGLONG,LPWSTR,UINT);
177 WINSHLWAPI int WINAPI StrFromTimeIntervalA(LPSTR,UINT,DWORD,int);
178 WINSHLWAPI int WINAPI StrFromTimeIntervalW(LPWSTR,UINT,DWORD,int);
179 WINSHLWAPI BOOL WINAPI StrIsIntlEqualA(BOOL,LPCSTR,LPCSTR,int);
180 WINSHLWAPI BOOL WINAPI StrIsIntlEqualW(BOOL,LPCWSTR,LPCWSTR,int);
181 WINSHLWAPI LPSTR WINAPI StrNCatA(LPSTR,LPCSTR,int);
182 WINSHLWAPI LPWSTR WINAPI StrNCatW(LPWSTR,LPCWSTR,int);
183 WINSHLWAPI LPSTR WINAPI StrPBrkA(LPCSTR,LPCSTR);
184 WINSHLWAPI LPWSTR WINAPI StrPBrkW(LPCWSTR,LPCWSTR);
185 WINSHLWAPI LPSTR WINAPI StrRChrA(LPCSTR,LPCSTR,WORD);
186 WINSHLWAPI LPWSTR WINAPI StrRChrW(LPCWSTR,LPCWSTR,WCHAR);
187 WINSHLWAPI LPSTR WINAPI StrRChrIA(LPCSTR,LPCSTR,WORD);
188 WINSHLWAPI LPWSTR WINAPI StrRChrIW(LPCWSTR,LPCWSTR,WCHAR);
189 #ifndef __OBJC__
190 WINSHLWAPI HRESULT WINAPI StrRetToBufA(LPSTRRET,LPCITEMIDLIST,LPSTR,UINT);
191 WINSHLWAPI HRESULT WINAPI StrRetToBufW(LPSTRRET,LPCITEMIDLIST,LPWSTR,UINT);
192 WINSHLWAPI HRESULT WINAPI StrRetToStrA(LPSTRRET,LPCITEMIDLIST,LPSTR*);
193 WINSHLWAPI HRESULT WINAPI StrRetToStrW(LPSTRRET,LPCITEMIDLIST,LPWSTR*);
194 #endif
195 WINSHLWAPI LPSTR WINAPI StrRStrIA(LPCSTR,LPCSTR,LPCSTR);
196 WINSHLWAPI LPWSTR WINAPI StrRStrIW(LPCWSTR,LPCWSTR,LPCWSTR);
197 WINSHLWAPI int WINAPI StrSpnA(LPCSTR,LPCSTR);
198 WINSHLWAPI int WINAPI StrSpnW(LPCWSTR,LPCWSTR);
199 WINSHLWAPI LPSTR WINAPI StrStrA(LPCSTR, LPCSTR);
200 WINSHLWAPI LPSTR WINAPI StrStrIA(LPCSTR,LPCSTR);
201 WINSHLWAPI LPWSTR WINAPI StrStrIW(LPCWSTR,LPCWSTR);
202 WINSHLWAPI LPWSTR WINAPI StrStrW(LPCWSTR,LPCWSTR);
203 WINSHLWAPI int WINAPI StrToIntA(LPCSTR);
204 WINSHLWAPI int WINAPI StrToIntW(LPCWSTR);
205 WINSHLWAPI BOOL WINAPI StrToIntExA(LPCSTR,DWORD,int*);
206 WINSHLWAPI BOOL WINAPI StrToIntExW(LPCWSTR,DWORD,int*);
207 WINSHLWAPI BOOL WINAPI StrTrimA(LPSTR,LPCSTR);
208 WINSHLWAPI BOOL WINAPI StrTrimW(LPWSTR,LPCWSTR);
209 WINSHLWAPI LPSTR WINAPI PathAddBackslashA(LPSTR);
210 WINSHLWAPI LPWSTR WINAPI PathAddBackslashW(LPWSTR);
211 WINSHLWAPI BOOL WINAPI PathAddExtensionA(LPSTR,LPCSTR);
212 WINSHLWAPI BOOL WINAPI PathAddExtensionW(LPWSTR,LPCWSTR);
213 WINSHLWAPI BOOL WINAPI PathAppendA(LPSTR,LPCSTR);
214 WINSHLWAPI BOOL WINAPI PathAppendW(LPWSTR,LPCWSTR);
215 WINSHLWAPI LPSTR WINAPI PathBuildRootA(LPSTR,int);
216 WINSHLWAPI LPWSTR WINAPI PathBuildRootW(LPWSTR,int);
217 WINSHLWAPI BOOL WINAPI PathCanonicalizeA(LPSTR,LPCSTR);
218 WINSHLWAPI BOOL WINAPI PathCanonicalizeW(LPWSTR,LPCWSTR);
219 WINSHLWAPI LPSTR WINAPI PathCombineA(LPSTR,LPCSTR,LPCSTR);
220 WINSHLWAPI LPWSTR WINAPI PathCombineW(LPWSTR,LPCWSTR,LPCWSTR);
221 WINSHLWAPI int WINAPI PathCommonPrefixA(LPCSTR,LPCSTR,LPSTR);
222 WINSHLWAPI int WINAPI PathCommonPrefixW(LPCWSTR,LPCWSTR,LPWSTR);
223 WINSHLWAPI BOOL WINAPI PathCompactPathA(HDC,LPSTR,UINT);
224 WINSHLWAPI BOOL WINAPI PathCompactPathW(HDC,LPWSTR,UINT);
225 WINSHLWAPI BOOL WINAPI PathCompactPathExA(LPSTR,LPCSTR,UINT,DWORD);
226 WINSHLWAPI BOOL WINAPI PathCompactPathExW(LPWSTR,LPCWSTR,UINT,DWORD);
227 WINSHLWAPI HRESULT WINAPI PathCreateFromUrlA(LPCSTR,LPSTR,LPDWORD,DWORD);
228 WINSHLWAPI HRESULT WINAPI PathCreateFromUrlW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
229 WINSHLWAPI BOOL WINAPI PathFileExistsA(LPCSTR);
230 WINSHLWAPI BOOL WINAPI PathFileExistsW(LPCWSTR);
231 WINSHLWAPI LPSTR WINAPI PathFindExtensionA(LPCSTR);
232 WINSHLWAPI LPWSTR WINAPI PathFindExtensionW(LPCWSTR);
233 WINSHLWAPI LPSTR WINAPI PathFindFileNameA(LPCSTR);
234 WINSHLWAPI LPWSTR WINAPI PathFindFileNameW(LPCWSTR);
235 WINSHLWAPI LPSTR WINAPI PathFindNextComponentA(LPCSTR);
236 WINSHLWAPI LPWSTR WINAPI PathFindNextComponentW(LPCWSTR);
237 WINSHLWAPI BOOL WINAPI PathFindOnPathA(LPSTR,LPCSTR*);
238 WINSHLWAPI BOOL WINAPI PathFindOnPathW(LPWSTR,LPCWSTR*);
239 WINSHLWAPI LPCSTR WINAPI PathFindSuffixArrayA(LPCSTR,LPCSTR*,int);
240 WINSHLWAPI LPCWSTR WINAPI PathFindSuffixArrayW(LPCWSTR,LPCWSTR*,int);
241 WINSHLWAPI LPSTR WINAPI PathGetArgsA(LPCSTR);
242 WINSHLWAPI LPWSTR WINAPI PathGetArgsW(LPCWSTR);
243 WINSHLWAPI UINT WINAPI PathGetCharTypeA(UCHAR);
244 WINSHLWAPI UINT WINAPI PathGetCharTypeW(WCHAR);
245 WINSHLWAPI int WINAPI PathGetDriveNumberA(LPCSTR);
246 WINSHLWAPI int WINAPI PathGetDriveNumberW(LPCWSTR);
247 WINSHLWAPI BOOL WINAPI PathIsContentTypeA(LPCSTR,LPCSTR);
248 WINSHLWAPI BOOL WINAPI PathIsContentTypeW(LPCWSTR,LPCWSTR);
249 WINSHLWAPI BOOL WINAPI PathIsDirectoryA(LPCSTR);
250 WINSHLWAPI BOOL WINAPI PathIsDirectoryEmptyA(LPCSTR);
251 WINSHLWAPI BOOL WINAPI PathIsDirectoryEmptyW(LPCWSTR);
252 WINSHLWAPI BOOL WINAPI PathIsDirectoryW(LPCWSTR);
253 WINSHLWAPI BOOL WINAPI PathIsFileSpecA(LPCSTR);
254 WINSHLWAPI BOOL WINAPI PathIsFileSpecW(LPCWSTR);
255 WINSHLWAPI BOOL WINAPI PathIsLFNFileSpecA(LPCSTR);
256 WINSHLWAPI BOOL WINAPI PathIsLFNFileSpecW(LPCWSTR);
257 WINSHLWAPI BOOL WINAPI PathIsNetworkPathA(LPCSTR);
258 WINSHLWAPI BOOL WINAPI PathIsNetworkPathW(LPCWSTR);
259 WINSHLWAPI BOOL WINAPI PathIsPrefixA(LPCSTR,LPCSTR);
260 WINSHLWAPI BOOL WINAPI PathIsPrefixW(LPCWSTR,LPCWSTR);
261 WINSHLWAPI BOOL WINAPI PathIsRelativeA(LPCSTR);
262 WINSHLWAPI BOOL WINAPI PathIsRelativeW(LPCWSTR);
263 WINSHLWAPI BOOL WINAPI PathIsRootA(LPCSTR);
264 WINSHLWAPI BOOL WINAPI PathIsRootW(LPCWSTR);
265 WINSHLWAPI BOOL WINAPI PathIsSameRootA(LPCSTR,LPCSTR);
266 WINSHLWAPI BOOL WINAPI PathIsSameRootW(LPCWSTR,LPCWSTR);
267 WINSHLWAPI BOOL WINAPI PathIsSystemFolderA(LPCSTR,DWORD);
268 WINSHLWAPI BOOL WINAPI PathIsSystemFolderW(LPCWSTR,DWORD);
269 WINSHLWAPI BOOL WINAPI PathIsUNCA(LPCSTR);
270 WINSHLWAPI BOOL WINAPI PathIsUNCServerA(LPCSTR);
271 WINSHLWAPI BOOL WINAPI PathIsUNCServerShareA(LPCSTR);
272 WINSHLWAPI BOOL WINAPI PathIsUNCServerShareW(LPCWSTR);
273 WINSHLWAPI BOOL WINAPI PathIsUNCServerW(LPCWSTR);
274 WINSHLWAPI BOOL WINAPI PathIsUNCW(LPCWSTR);
275 WINSHLWAPI BOOL WINAPI PathIsURLA(LPCSTR);
276 WINSHLWAPI BOOL WINAPI PathIsURLW(LPCWSTR);
277 WINSHLWAPI BOOL WINAPI PathMakePrettyA(LPSTR);
278 WINSHLWAPI BOOL WINAPI PathMakePrettyW(LPWSTR);
279 WINSHLWAPI BOOL WINAPI PathMakeSystemFolderA(LPCSTR);
280 WINSHLWAPI BOOL WINAPI PathMakeSystemFolderW(LPCWSTR);
281 WINSHLWAPI BOOL WINAPI PathMatchSpecA(LPCSTR,LPCSTR);
282 WINSHLWAPI BOOL WINAPI PathMatchSpecW(LPCWSTR,LPCWSTR);
283 WINSHLWAPI int WINAPI PathParseIconLocationA(LPSTR);
284 WINSHLWAPI int WINAPI PathParseIconLocationW(LPWSTR);
285 WINSHLWAPI void WINAPI PathQuoteSpacesA(LPSTR);
286 WINSHLWAPI void WINAPI PathQuoteSpacesW(LPWSTR);
287 WINSHLWAPI BOOL WINAPI PathRelativePathToA(LPSTR,LPCSTR,DWORD,LPCSTR,DWORD);
288 WINSHLWAPI BOOL WINAPI PathRelativePathToW(LPWSTR,LPCWSTR,DWORD,LPCWSTR,DWORD);
289 WINSHLWAPI void WINAPI PathRemoveArgsA(LPSTR);
290 WINSHLWAPI void WINAPI PathRemoveArgsW(LPWSTR);
291 WINSHLWAPI LPSTR WINAPI PathRemoveBackslashA(LPSTR);
292 WINSHLWAPI LPWSTR WINAPI PathRemoveBackslashW(LPWSTR);
293 WINSHLWAPI void WINAPI PathRemoveBlanksA(LPSTR);
294 WINSHLWAPI void WINAPI PathRemoveBlanksW(LPWSTR);
295 WINSHLWAPI void WINAPI PathRemoveExtensionA(LPSTR);
296 WINSHLWAPI void WINAPI PathRemoveExtensionW(LPWSTR);
297 WINSHLWAPI BOOL WINAPI PathRemoveFileSpecA(LPSTR);
298 WINSHLWAPI BOOL WINAPI PathRemoveFileSpecW(LPWSTR);
299 WINSHLWAPI BOOL WINAPI PathRenameExtensionA(LPSTR,LPCSTR);
300 WINSHLWAPI BOOL WINAPI PathRenameExtensionW(LPWSTR,LPCWSTR);
301 WINSHLWAPI BOOL WINAPI PathSearchAndQualifyA(LPCSTR,LPSTR,UINT);
302 WINSHLWAPI BOOL WINAPI PathSearchAndQualifyW(LPCWSTR,LPWSTR,UINT);
303 WINSHLWAPI void WINAPI PathSetDlgItemPathA(HWND,int,LPCSTR);
304 WINSHLWAPI void WINAPI PathSetDlgItemPathW(HWND,int,LPCWSTR);
305 WINSHLWAPI LPSTR WINAPI PathSkipRootA(LPCSTR);
306 WINSHLWAPI LPWSTR WINAPI PathSkipRootW(LPCWSTR);
307 WINSHLWAPI void WINAPI PathStripPathA(LPSTR);
308 WINSHLWAPI void WINAPI PathStripPathW(LPWSTR);
309 WINSHLWAPI BOOL WINAPI PathStripToRootA(LPSTR);
310 WINSHLWAPI BOOL WINAPI PathStripToRootW(LPWSTR);
311 WINSHLWAPI void WINAPI PathUndecorateA(LPSTR);
312 WINSHLWAPI void WINAPI PathUndecorateW(LPWSTR);
313 WINSHLWAPI BOOL WINAPI PathUnExpandEnvStringsA(LPCSTR,LPSTR,UINT);
314 WINSHLWAPI BOOL WINAPI PathUnExpandEnvStringsW(LPCWSTR,LPWSTR,UINT);
315 WINSHLWAPI BOOL WINAPI PathUnmakeSystemFolderA(LPCSTR);
316 WINSHLWAPI BOOL WINAPI PathUnmakeSystemFolderW(LPCWSTR);
317 WINSHLWAPI void WINAPI PathUnquoteSpacesA(LPSTR);
318 WINSHLWAPI void WINAPI PathUnquoteSpacesW(LPWSTR);
319 WINSHLWAPI HRESULT WINAPI SHAutoComplete(HWND,DWORD);
320 #ifndef __OBJC__
321 WINSHLWAPI HRESULT WINAPI SHCreateStreamOnFileA(LPCSTR,DWORD,struct IStream**);
322 WINSHLWAPI HRESULT WINAPI SHCreateStreamOnFileW(LPCWSTR,DWORD,struct IStream**);
323 WINSHLWAPI struct IStream* WINAPI SHOpenRegStream2A(HKEY,LPCSTR,LPCSTR,DWORD);
324 WINSHLWAPI struct IStream* WINAPI SHOpenRegStream2W(HKEY,LPCWSTR,LPCWSTR,DWORD);
325 WINSHLWAPI struct IStream* WINAPI SHOpenRegStreamA(HKEY,LPCSTR,LPCSTR,DWORD);
326 WINSHLWAPI struct IStream* WINAPI SHOpenRegStreamW(HKEY,LPCWSTR,LPCWSTR,DWORD);
327 #endif
328 WINSHLWAPI BOOL WINAPI SHCreateThread(LPTHREAD_START_ROUTINE,void*,DWORD,LPTHREAD_START_ROUTINE);
329 WINSHLWAPI DWORD WINAPI SHCopyKeyA(HKEY,LPCSTR,HKEY,DWORD);
330 WINSHLWAPI DWORD WINAPI SHCopyKeyW(HKEY,LPCWSTR,HKEY,DWORD);
331 WINSHLWAPI DWORD WINAPI SHDeleteEmptyKeyA(HKEY,LPCSTR);
332 WINSHLWAPI DWORD WINAPI SHDeleteEmptyKeyW(HKEY,LPCWSTR);
333 WINSHLWAPI DWORD WINAPI SHDeleteKeyA(HKEY,LPCSTR);
334 WINSHLWAPI DWORD WINAPI SHDeleteKeyW(HKEY,LPCWSTR);
335 WINSHLWAPI LONG WINAPI SHEnumKeyExA(HKEY,DWORD,LPSTR,LPDWORD);
336 WINSHLWAPI LONG WINAPI SHEnumKeyExW(HKEY,DWORD,LPWSTR,LPDWORD);
337 WINSHLWAPI LONG WINAPI SHQueryInfoKeyA(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
338 WINSHLWAPI LONG WINAPI SHQueryInfoKeyW(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
339 WINSHLWAPI DWORD WINAPI SHQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
340 WINSHLWAPI DWORD WINAPI SHQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
341 #ifndef __OBJC__
342 WINSHLWAPI HRESULT WINAPI SHGetThreadRef(IUnknown**);
343 WINSHLWAPI HRESULT WINAPI SHSetThreadRef(IUnknown*);
344 WINSHLWAPI BOOL WINAPI SHSkipJunction(IBindCtx*,const CLSID*);
345 #endif
346 WINSHLWAPI LONG WINAPI SHEnumValueA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
347 WINSHLWAPI LONG WINAPI SHEnumValueW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
348 WINSHLWAPI DWORD WINAPI SHGetValueA(HKEY,LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD);
349 WINSHLWAPI DWORD WINAPI SHGetValueW(HKEY,LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD);
350 WINSHLWAPI DWORD WINAPI SHSetValueA(HKEY,LPCSTR,LPCSTR,DWORD,LPCVOID,DWORD);
351 WINSHLWAPI DWORD WINAPI SHSetValueW(HKEY,LPCWSTR,LPCWSTR,DWORD,LPCVOID,DWORD);
352 WINSHLWAPI DWORD WINAPI SHDeleteValueA(HKEY,LPCSTR,LPCSTR);
353 WINSHLWAPI DWORD WINAPI SHDeleteValueW(HKEY,LPCWSTR,LPCWSTR);
354 WINSHLWAPI HRESULT WINAPI AssocCreate(CLSID,const IID* const,LPVOID*);
355 WINSHLWAPI HRESULT WINAPI AssocQueryKeyA(ASSOCF,ASSOCKEY,LPCSTR,LPCSTR,HKEY*);
356 WINSHLWAPI HRESULT WINAPI AssocQueryKeyW(ASSOCF,ASSOCKEY,LPCWSTR,LPCWSTR,HKEY*);
357 WINSHLWAPI HRESULT WINAPI AssocQueryStringA(ASSOCF,ASSOCSTR,LPCSTR,LPCSTR,LPSTR,DWORD*);
358 WINSHLWAPI HRESULT WINAPI AssocQueryStringByKeyA(ASSOCF,ASSOCSTR,HKEY,LPCSTR,LPSTR,DWORD*);
359 WINSHLWAPI HRESULT WINAPI AssocQueryStringByKeyW(ASSOCF,ASSOCSTR,HKEY,LPCWSTR,LPWSTR,DWORD*);
360 WINSHLWAPI HRESULT WINAPI AssocQueryStringW(ASSOCF,ASSOCSTR,LPCWSTR,LPCWSTR,LPWSTR,DWORD*);
361
362 WINSHLWAPI HRESULT WINAPI UrlApplySchemeA(LPCSTR,LPSTR,LPDWORD,DWORD);
363 WINSHLWAPI HRESULT WINAPI UrlApplySchemeW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
364 WINSHLWAPI HRESULT WINAPI UrlCanonicalizeA(LPCSTR,LPSTR,LPDWORD,DWORD);
365 WINSHLWAPI HRESULT WINAPI UrlCanonicalizeW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
366 WINSHLWAPI HRESULT WINAPI UrlCombineA(LPCSTR,LPCSTR,LPSTR,LPDWORD,DWORD);
367 WINSHLWAPI HRESULT WINAPI UrlCombineW(LPCWSTR,LPCWSTR,LPWSTR,LPDWORD,DWORD);
368 WINSHLWAPI int WINAPI UrlCompareA(LPCSTR,LPCSTR,BOOL);
369 WINSHLWAPI int WINAPI UrlCompareW(LPCWSTR,LPCWSTR,BOOL);
370 WINSHLWAPI HRESULT WINAPI UrlCreateFromPathA(LPCSTR,LPSTR,LPDWORD,DWORD);
371 WINSHLWAPI HRESULT WINAPI UrlCreateFromPathW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
372 WINSHLWAPI HRESULT WINAPI UrlEscapeA(LPCSTR,LPSTR,LPDWORD,DWORD);
373 WINSHLWAPI HRESULT WINAPI UrlEscapeW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
374 WINSHLWAPI LPCSTR WINAPI UrlGetLocationA(LPCSTR);
375 WINSHLWAPI LPCWSTR WINAPI UrlGetLocationW(LPCWSTR);
376 WINSHLWAPI HRESULT WINAPI UrlGetPartA(LPCSTR,LPSTR,LPDWORD,DWORD,DWORD);
377 WINSHLWAPI HRESULT WINAPI UrlGetPartW(LPCWSTR,LPWSTR,LPDWORD,DWORD,DWORD);
378 WINSHLWAPI HRESULT WINAPI UrlHashA(LPCSTR,LPBYTE,DWORD);
379 WINSHLWAPI HRESULT WINAPI UrlHashW(LPCWSTR,LPBYTE,DWORD);
380 WINSHLWAPI BOOL WINAPI UrlIsA(LPCSTR,URLIS);
381 WINSHLWAPI BOOL WINAPI UrlIsW(LPCWSTR,URLIS);
382 #define UrlIsFileUrlA(pszURL) UrlIsA(pzURL, URLIS_FILEURL)
383 #define UrlIsFileUrlW(pszURL) UrlIsW(pszURL, URLIS_FILEURL)
384 WINSHLWAPI BOOL WINAPI UrlIsNoHistoryA(LPCSTR);
385 WINSHLWAPI BOOL WINAPI UrlIsNoHistoryW(LPCWSTR);
386 WINSHLWAPI BOOL WINAPI UrlIsOpaqueA(LPCSTR);
387 WINSHLWAPI BOOL WINAPI UrlIsOpaqueW(LPCWSTR);
388 WINSHLWAPI HRESULT WINAPI UrlUnescapeA(LPSTR,LPSTR,LPDWORD,DWORD);
389 WINSHLWAPI HRESULT WINAPI UrlUnescapeW(LPWSTR,LPWSTR,LPDWORD,DWORD);
390 #define UrlUnescapeInPlaceA(pszUrl,dwFlags )\
391 UrlUnescapeA(pszUrl, NULL, NULL, dwFlags | URL_UNESCAPE_INPLACE)
392 #define UrlUnescapeInPlaceW(pszUrl,dwFlags )\
393 UrlUnescapeW(pszUrl, NULL, NULL, dwFlags | URL_UNESCAPE_INPLACE)
394 WINSHLWAPI LONG WINAPI SHRegCloseUSKey(HUSKEY);
395 WINSHLWAPI LONG WINAPI SHRegCreateUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,DWORD);
396 WINSHLWAPI LONG WINAPI SHRegCreateUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,DWORD);
397 WINSHLWAPI LONG WINAPI SHRegDeleteEmptyUSKeyA(HUSKEY,LPCSTR,SHREGDEL_FLAGS);
398 WINSHLWAPI LONG WINAPI SHRegDeleteEmptyUSKeyW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS);
399 WINSHLWAPI LONG WINAPI SHRegDeleteUSValueA(HUSKEY,LPCSTR,SHREGDEL_FLAGS);
400 WINSHLWAPI LONG WINAPI SHRegDeleteUSValueW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS);
401 WINSHLWAPI HKEY WINAPI SHRegDuplicateHKey(HKEY);
402 WINSHLWAPI LONG WINAPI SHRegEnumUSKeyA(HUSKEY,DWORD,LPSTR,LPDWORD,SHREGENUM_FLAGS);
403 WINSHLWAPI LONG WINAPI SHRegEnumUSKeyW(HUSKEY,DWORD,LPWSTR,LPDWORD,SHREGENUM_FLAGS);
404 WINSHLWAPI DWORD WINAPI SHRegEnumUSValueA(HUSKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD,SHREGENUM_FLAGS);
405 WINSHLWAPI DWORD WINAPI SHRegEnumUSValueW(HUSKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD,SHREGENUM_FLAGS);
406 WINSHLWAPI BOOL WINAPI SHRegGetBoolUSValueA(LPCSTR,LPCSTR,BOOL,BOOL);
407 WINSHLWAPI BOOL WINAPI SHRegGetBoolUSValueW(LPCWSTR,LPCWSTR,BOOL,BOOL);
408 WINSHLWAPI DWORD WINAPI SHRegGetPathA(HKEY,LPCSTR,LPCSTR,LPSTR,DWORD);
409 WINSHLWAPI DWORD WINAPI SHRegGetPathW(HKEY,LPCWSTR,LPCWSTR,LPWSTR,DWORD);
410 WINSHLWAPI LONG WINAPI SHRegGetUSValueA(LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD);
411 WINSHLWAPI LONG WINAPI SHRegGetUSValueW(LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD);
412 WINSHLWAPI LONG WINAPI SHRegOpenUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,BOOL);
413 WINSHLWAPI LONG WINAPI SHRegOpenUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,BOOL);
414 WINSHLWAPI LONG WINAPI SHRegQueryInfoUSKeyA(HUSKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD,SHREGENUM_FLAGS);
415 WINSHLWAPI LONG WINAPI SHRegQueryInfoUSKeyW(HUSKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD,SHREGENUM_FLAGS);
416 WINSHLWAPI LONG WINAPI SHRegQueryUSValueA(HUSKEY,LPCSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD);
417 WINSHLWAPI LONG WINAPI SHRegQueryUSValueW(HUSKEY,LPCWSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD);
418 WINSHLWAPI DWORD WINAPI SHRegSetPathA(HKEY,LPCSTR,LPCSTR,LPCSTR,DWORD);
419 WINSHLWAPI DWORD WINAPI SHRegSetPathW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR,DWORD);
420 WINSHLWAPI LONG WINAPI SHRegSetUSValueA(LPCSTR,LPCSTR,DWORD,LPVOID,DWORD,DWORD);
421 WINSHLWAPI LONG WINAPI SHRegSetUSValueW(LPCWSTR,LPCWSTR,DWORD,LPVOID,DWORD,DWORD);
422 WINSHLWAPI LONG WINAPI SHRegWriteUSValueA(HUSKEY,LPCSTR,DWORD,LPVOID,DWORD,DWORD);
423 WINSHLWAPI LONG WINAPI SHRegWriteUSValueW(HUSKEY,LPCWSTR,DWORD,LPVOID,DWORD,DWORD);
424 WINSHLWAPI HRESULT WINAPI HashData(LPBYTE,DWORD,LPBYTE,DWORD);
425 WINSHLWAPI HPALETTE WINAPI SHCreateShellPalette(HDC);
426 WINSHLWAPI COLORREF WINAPI ColorHLSToRGB(WORD,WORD,WORD);
427 WINSHLWAPI COLORREF WINAPI ColorAdjustLuma(COLORREF,int,BOOL);
428 WINSHLWAPI void WINAPI ColorRGBToHLS(COLORREF,WORD*,WORD*,WORD*);
429 WINSHLWAPI int __cdecl wnsprintfA(LPSTR,int,LPCSTR,...);
430 WINSHLWAPI int __cdecl wnsprintfW(LPWSTR,int,LPCWSTR,...);
431 WINSHLWAPI int WINAPI wvnsprintfA(LPSTR,int,LPCSTR,va_list);
432 WINSHLWAPI int WINAPI wvnsprintfW(LPWSTR,int,LPCWSTR,va_list);
433
434 HINSTANCE WINAPI MLLoadLibraryA(LPCSTR,HMODULE,DWORD);
435 HINSTANCE WINAPI MLLoadLibraryW(LPCWSTR,HMODULE,DWORD);
436
437 HRESULT WINAPI DllInstall(BOOL,LPCWSTR);
438
439 #ifdef UNICODE
440 #define ChrCmpI ChrCmpIW
441 #define IntlStrEqN IntlStrEqNW
442 #define IntlStrEqNI IntlStrEqNIW
443 #define IntlStrEqWorker IntlStrEqWorkerW
444 #define SHStrDup SHStrDupW
445 #define StrCat StrCatW
446 #define StrCatBuff StrCatBuffW
447 #define StrChr StrChrW
448 #define StrChrI StrChrIW
449 #define StrCmp StrCmpW
450 #define StrCmpI StrCmpIW
451 #define StrCmpNI StrCmpNIW
452 #define StrCmpN StrCmpNW
453 #define StrCpyN StrCpyNW
454 #define StrCpy StrCpyW
455 #define StrCSpnI StrCSpnIW
456 #define StrCSpn StrCSpnW
457 #define StrDup StrDupW
458 #define StrFormatByteSize StrFormatByteSizeW
459 #define StrFormatKBSize StrFormatKBSizeW
460 #define StrFromTimeInterval StrFromTimeIntervalW
461 #define StrIsIntlEqual StrIsIntlEqualW
462 #define StrNCat StrNCatW
463 #define StrPBrk StrPBrkW
464 #define StrRChr StrRChrW
465 #define StrRChrI StrRChrIW
466 #ifndef __OBJC__
467 #define StrRetToBuf StrRetToBufW
468 #define StrRetToStr StrRetToStrW
469 #endif
470 #define StrRStrI StrRStrIW
471 #define StrSpn StrSpnW
472 #define StrStrI StrStrIW
473 #define StrStr StrStrW
474 #define StrToInt StrToIntW
475 #define StrToIntEx StrToIntExW
476 #define StrTrim StrTrimW
477 #define PathAddBackslash PathAddBackslashW
478 #define PathAddExtension PathAddExtensionW
479 #define PathAppend PathAppendW
480 #define PathBuildRoot PathBuildRootW
481 #define PathCanonicalize PathCanonicalizeW
482 #define PathCombine PathCombineW
483 #define PathCommonPrefix PathCommonPrefixW
484 #define PathCompactPath PathCompactPathW
485 #define PathCompactPathEx PathCompactPathExW
486 #define PathCreateFromUrl PathCreateFromUrlW
487 #define PathFileExists PathFileExistsW
488 #define PathFindExtension PathFindExtensionW
489 #define PathFindFileName PathFindFileNameW
490 #define PathFindNextComponent PathFindNextComponentW
491 #define PathFindOnPath PathFindOnPathW
492 #define PathFindSuffixArray PathFindSuffixArrayW
493 #define PathGetArgs PathGetArgsW
494 #define PathGetCharType PathGetCharTypeW
495 #define PathGetDriveNumber PathGetDriveNumberW
496 #define PathIsContentType PathIsContentTypeW
497 #define PathIsDirectoryEmpty PathIsDirectoryEmptyW
498 #define PathIsDirectory PathIsDirectoryW
499 #define PathIsFileSpec PathIsFileSpecW
500 #define PathIsLFNFileSpec PathIsLFNFileSpecW
501 #define PathIsNetworkPath PathIsNetworkPathW
502 #define PathIsPrefix PathIsPrefixW
503 #define PathIsRelative PathIsRelativeW
504 #define PathIsRoot PathIsRootW
505 #define PathIsSameRoot PathIsSameRootW
506 #define PathIsSystemFolder PathIsSystemFolderW
507 #define PathIsUNCServerShare PathIsUNCServerShareW
508 #define PathIsUNCServer PathIsUNCServerW
509 #define PathIsUNC PathIsUNCW
510 #define PathIsURL PathIsURLW
511 #define PathMakePretty PathMakePrettyW
512 #define PathMakeSystemFolder PathMakeSystemFolderW
513 #define PathMatchSpec PathMatchSpecW
514 #define PathParseIconLocation PathParseIconLocationW
515 #define PathQuoteSpaces PathQuoteSpacesW
516 #define PathRelativePathTo PathRelativePathToW
517 #define PathRemoveArgs PathRemoveArgsW
518 #define PathRemoveBackslash PathRemoveBackslashW
519 #define PathRemoveBlanks PathRemoveBlanksW
520 #define PathRemoveExtension PathRemoveExtensionW
521 #define PathRemoveFileSpec PathRemoveFileSpecW
522 #define PathRenameExtension PathRenameExtensionW
523 #define PathSearchAndQualify PathSearchAndQualifyW
524 #define PathSetDlgItemPath PathSetDlgItemPathW
525 #define PathSkipRoot PathSkipRootW
526 #define PathStripPath PathStripPathW
527 #define PathStripToRoot PathStripToRootW
528 #define PathUndecorate PathUndecorateW
529 #define PathUnExpandEnvStrings PathUnExpandEnvStringsW
530 #define PathUnmakeSystemFolder PathUnmakeSystemFolderW
531 #define PathUnquoteSpaces PathUnquoteSpacesW
532 #ifndef __OBJC__
533 #define SHCreateStreamOnFile SHCreateStreamOnFileW
534 #define SHOpenRegStream SHOpenRegStreamW
535 #define SHOpenRegStream2 SHOpenRegStream2W
536 #endif
537 #define SHCopyKey SHCopyKeyW
538 #define SHDeleteEmptyKey SHDeleteEmptyKeyW
539 #define SHDeleteKey SHDeleteKeyW
540 #define SHEnumKeyEx SHEnumKeyExW
541 #define SHQueryInfoKey SHRegQueryInfoKeyW
542 #define SHQueryValueEx SHQueryValueExW
543 #define SHEnumValue SHEnumValueW
544 #define SHGetValue SHGetValueW
545 #define SHSetValue SHSetValueW
546 #define SHDeleteValue SHDeleteValueW
547 #define AssocQueryKey AssocQueryKeyW
548 #define AssocQueryStringByKey AssocQueryStringByKeyW
549 #define AssocQueryString AssocQueryStringW
550 #define UrlApplyScheme UrlApplySchemeW
551 #define UrlCanonicalize UrlCanonicalizeW
552 #define UrlCombine UrlCombineW
553 #define UrlCompare UrlCompareW
554 #define UrlCreateFromPath UrlCreateFromPathW
555 #define UrlEscape UrlEscapeW
556 #define UrlGetLocation UrlGetLocationW
557 #define UrlGetPart UrlGetPartW
558 #define UrlHash UrlHashW
559 #define UrlIs UrlIsW
560 #define UrlIsFileUrl UrlIsFileUrlW
561 #define UrlIsNoHistory UrlIsNoHistoryW
562 #define UrlIsOpaque UrlIsOpaqueW
563 #define UrlUnescape UrlUnescapeW
564 #define UrlUnescapeInPlace UrlUnescapeInPlaceW
565 #define SHRegCreateUSKey SHRegCreateUSKeyW
566 #define SHRegDeleteEmptyUSKey SHRegDeleteEmptyUSKeyW
567 #define SHRegDeleteUSValue SHRegDeleteUSValueW
568 #define SHRegEnumUSKey SHRegEnumUSKeyW
569 #define SHRegEnumUSValue SHRegEnumUSValueW
570 #define SHRegGetBoolUSValue SHRegGetBoolUSValueW
571 #define SHRegGetPath SHRegGetPathW
572 #define SHRegGetUSValue SHRegGetUSValueW
573 #define SHRegOpenUSKey SHRegOpenUSKeyW
574 #define SHRegQueryInfoUSKey SHRegQueryInfoUSKeyW
575 #define SHRegQueryUSValue SHRegQueryUSValueW
576 #define SHRegSetPath SHRegSetPathW
577 #define SHRegSetUSValue SHRegSetUSValueW
578 #define SHRegWriteUSValue SHRegWriteUSValueW
579 #define wnsprintf wnsprintfW
580 #define wvnsprintf wvnsprintfW
581 #else /* UNICODE */
582 #define ChrCmpI ChrCmpIA
583 #define IntlStrEqN IntlStrEqNA
584 #define IntlStrEqNI IntlStrEqNIA
585 #define IntlStrEqWorker IntlStrEqWorkerA
586 #define SHStrDup SHStrDupA
587 #define StrCat lstrcatA
588 #define StrCatBuff StrCatBuffA
589 #define StrChr StrChrA
590 #define StrChrI StrChrIA
591 #define StrCmp lstrcmpA
592 #define StrCmpI lstrcmpiA
593 #define StrCmpNI StrCmpNIA
594 #define StrCmpN StrCmpNA
595 #define StrCpyN lstrcpynA
596 #define StrCpy lstrcpyA
597 #define StrCSpnI StrCSpnIA
598 #define StrCSpn StrCSpnA
599 #define StrDup StrDupA
600 #define StrFormatByteSize StrFormatByteSizeA
601 #define StrFormatKBSize StrFormatKBSizeA
602 #define StrFromTimeInterval StrFromTimeIntervalA
603 #define StrIsIntlEqual StrIsIntlEqualA
604 #define StrNCat StrNCatA
605 #define StrPBrk StrPBrkA
606 #define StrRChr StrRChrA
607 #define StrRChrI StrRChrIA
608 #ifndef __OBJC__
609 #define StrRetToBuf StrRetToBufA
610 #define StrRetToStr StrRetToStrA
611 #endif
612 #define StrRStrI StrRStrIA
613 #define StrSpn StrSpnA
614 #define StrStrI StrStrIA
615 #define StrStr StrStrA
616 #define StrToInt StrToIntA
617 #define StrToIntEx StrToIntExA
618 #define StrTrim StrTrimA
619 #define PathAddBackslash PathAddBackslashA
620 #define PathAddExtension PathAddExtensionA
621 #define PathAppend PathAppendA
622 #define PathBuildRoot PathBuildRootA
623 #define PathCanonicalize PathCanonicalizeA
624 #define PathCombine PathCombineA
625 #define PathCommonPrefix PathCommonPrefixA
626 #define PathCompactPath PathCompactPathA
627 #define PathCompactPathEx PathCompactPathExA
628 #define PathCreateFromUrl PathCreateFromUrlA
629 #define PathFileExists PathFileExistsA
630 #define PathFindExtension PathFindExtensionA
631 #define PathFindFileName PathFindFileNameA
632 #define PathFindNextComponent PathFindNextComponentA
633 #define PathFindOnPath PathFindOnPathA
634 #define PathFindSuffixArray PathFindSuffixArrayA
635 #define PathGetArgs PathGetArgsA
636 #define PathGetCharType PathGetCharTypeA
637 #define PathGetDriveNumber PathGetDriveNumberA
638 #define PathIsContentType PathIsContentTypeA
639 #define PathIsDirectoryEmpty PathIsDirectoryEmptyA
640 #define PathIsDirectory PathIsDirectoryA
641 #define PathIsFileSpec PathIsFileSpecA
642 #define PathIsLFNFileSpec PathIsLFNFileSpecA
643 #define PathIsNetworkPath PathIsNetworkPathA
644 #define PathIsPrefix PathIsPrefixA
645 #define PathIsRelative PathIsRelativeA
646 #define PathIsRoot PathIsRootA
647 #define PathIsSameRoot PathIsSameRootA
648 #define PathIsSystemFolder PathIsSystemFolderA
649 #define PathIsUNCServerShare PathIsUNCServerShareA
650 #define PathIsUNCServer PathIsUNCServerA
651 #define PathIsUNC PathIsUNCA
652 #define PathIsURL PathIsURLA
653 #define PathMakePretty PathMakePrettyA
654 #define PathMakeSystemFolder PathMakeSystemFolderA
655 #define PathMatchSpec PathMatchSpecA
656 #define PathParseIconLocation PathParseIconLocationA
657 #define PathQuoteSpaces PathQuoteSpacesA
658 #define PathRelativePathTo PathRelativePathToA
659 #define PathRemoveArgs PathRemoveArgsA
660 #define PathRemoveBackslash PathRemoveBackslashA
661 #define PathRemoveBlanks PathRemoveBlanksA
662 #define PathRemoveExtension PathRemoveExtensionA
663 #define PathRemoveFileSpec PathRemoveFileSpecA
664 #define PathRenameExtension PathRenameExtensionA
665 #define PathSearchAndQualify PathSearchAndQualifyA
666 #define PathSetDlgItemPath PathSetDlgItemPathA
667 #define PathSkipRoot PathSkipRootA
668 #define PathStripPath PathStripPathA
669 #define PathStripToRoot PathStripToRootA
670 #define PathUndecorate PathUndecorateA
671 #define PathUnExpandEnvStrings PathUnExpandEnvStringsA
672 #define PathUnmakeSystemFolder PathUnmakeSystemFolderA
673 #define PathUnquoteSpaces PathUnquoteSpacesA
674 #ifndef __OBJC__
675 #define SHCreateStreamOnFile SHCreateStreamOnFileA
676 #define SHOpenRegStream SHOpenRegStreamA
677 #define SHOpenRegStream2 SHOpenRegStream2A
678 #endif
679 #define SHCopyKey SHCopyKeyA
680 #define SHDeleteEmptyKey SHDeleteEmptyKeyA
681 #define SHDeleteKey SHDeleteKeyA
682 #define SHEnumKeyEx SHEnumKeyExA
683 #define SHQueryInfoKey SHRegQueryInfoKeyA
684 #define SHQueryValueEx SHQueryValueExA
685 #define SHEnumValue SHEnumValueA
686 #define SHGetValue SHGetValueA
687 #define SHSetValue SHSetValueA
688 #define SHDeleteValue SHDeleteValueA
689 #define AssocQueryKey AssocQueryKeyA
690 #define AssocQueryStringByKey AssocQueryStringByKeyA
691 #define AssocQueryString AssocQueryStringA
692 #define UrlApplyScheme UrlApplySchemeA
693 #define UrlCanonicalize UrlCanonicalizeA
694 #define UrlCombine UrlCombineA
695 #define UrlCompare UrlCompareA
696 #define UrlCreateFromPath UrlCreateFromPathA
697 #define UrlEscape UrlEscapeA
698 #define UrlGetLocation UrlGetLocationA
699 #define UrlGetPart UrlGetPartA
700 #define UrlHash UrlHashA
701 #define UrlIs UrlIsA
702 #define UrlIsFileUrl UrlIsFileUrl
703 #define UrlIsNoHistory UrlIsNoHistoryA
704 #define UrlIsOpaque UrlIsOpaqueA
705 #define UrlUnescape UrlUnescapeA
706 #define UrlUnescapeInPlace UrlUnescapeInPlaceA
707 #define SHRegCreateUSKey SHRegCreateUSKeyA
708 #define SHRegDeleteEmptyUSKey SHRegDeleteEmptyUSKeyA
709 #define SHRegDeleteUSValue SHRegDeleteUSValueA
710 #define SHRegEnumUSKey SHRegEnumUSKeyA
711 #define SHRegEnumUSValue SHRegEnumUSValueA
712 #define SHRegGetBoolUSValue SHRegGetBoolUSValueA
713 #define SHRegGetPath SHRegGetPathA
714 #define SHRegGetUSValue SHRegGetUSValueA
715 #define SHRegOpenUSKey SHRegOpenUSKeyA
716 #define SHRegQueryInfoUSKey SHRegQueryInfoUSKeyA
717 #define SHRegQueryUSValue SHRegQueryUSValueA
718 #define SHRegSetPath SHRegSetPathA
719 #define SHRegSetUSValue SHRegSetUSValueA
720 #define SHRegWriteUSValue SHRegWriteUSValueA
721 #define wnsprintf wnsprintfA
722 #define wvnsprintf wvnsprintfA
723 #endif /* UNICODE */
724
725 #define StrToLong StrToInt
726
727 #endif /* !RC_INVOKED */
728
729 #ifdef __cplusplus
730 }
731 #endif
732
733 /* Second part: entries copied from Wine */
734
735 #define SHREGSET_HKCU 0x1 /* Apply to HKCU if empty */
736 #define SHREGSET_FORCE_HKCU 0x2 /* Always apply to HKCU */
737 #define SHREGSET_HKLM 0x4 /* Apply to HKLM if empty */
738 #define SHREGSET_FORCE_HKLM 0x8 /* Always apply to HKLM */
739 #define SHREGSET_DEFAULT (SHREGSET_FORCE_HKCU | SHREGSET_HKLM)
740
741 /* These are used by UrlGetPart routine */
742 typedef enum {
743 URL_PART_NONE = 0,
744 URL_PART_SCHEME = 1,
745 URL_PART_HOSTNAME,
746 URL_PART_USERNAME,
747 URL_PART_PASSWORD,
748 URL_PART_PORT,
749 URL_PART_QUERY
750 } URL_PART;
751
752 /* This is used by the UrlApplyScheme... routines */
753 #define URL_APPLY_FORCEAPPLY 0x00000008
754 #define URL_APPLY_GUESSFILE 0x00000004
755 #define URL_APPLY_GUESSSCHEME 0x00000002
756 #define URL_APPLY_DEFAULT 0x00000001
757
758 #define URL_DONT_UNESCAPE_EXTRA_INFO URL_DONT_ESCAPE_EXTRA_INFO
759
760 /* StrToIntEx flags */
761 #define STIF_DEFAULT 0x0L
762 #define STIF_SUPPORT_HEX 0x1L
763
764 /* SHCreateThread flags */
765 #define CTF_INSIST 0x01 /* Allways call */
766 #define CTF_THREAD_REF 0x02 /* Hold thread ref */
767 #define CTF_PROCESS_REF 0x04 /* Hold process ref */
768 #define CTF_COINIT 0x08 /* Startup COM first */
769 #define CTF_FREELIBANDEXIT 0x10 /* Hold DLL ref */
770 #define CTF_REF_COUNTED 0x20 /* Thread is ref counted */
771 #define CTF_WAIT_ALLOWCOM 0x40 /* Allow marshalling */
772
773 /* GetPathCharType return flags */
774 #define GCT_INVALID 0x0
775 #define GCT_LFNCHAR 0x1
776 #define GCT_SHORTCHAR 0x2
777 #define GCT_WILD 0x4
778 #define GCT_SEPARATOR 0x8
779
780 enum
781 {
782 ASSOCF_INIT_NOREMAPCLSID = 0x001, /* Don't map clsid->progid */
783 ASSOCF_INIT_BYEXENAME = 0x002, /* .exe name given */
784 ASSOCF_OPEN_BYEXENAME = 0x002, /* Synonym */
785 ASSOCF_INIT_DEFAULTTOSTAR = 0x004, /* Use * as base */
786 ASSOCF_INIT_DEFAULTTOFOLDER = 0x008, /* Use folder as base */
787 ASSOCF_NOUSERSETTINGS = 0x010, /* No HKCU reads */
788 ASSOCF_NOTRUNCATE = 0x020, /* Don't truncate return */
789 ASSOCF_VERIFY = 0x040, /* Verify data */
790 ASSOCF_REMAPRUNDLL = 0x080, /* Get rundll args */
791 ASSOCF_NOFIXUPS = 0x100, /* Don't fixup errors */
792 ASSOCF_IGNOREBASECLASS = 0x200, /* Dont read baseclass */
793 };
794
795 typedef enum
796 {
797 ASSOCENUM_NONE
798 } ASSOCENUM;
799
800 typedef struct IQueryAssociations IQueryAssociations,*LPQUERYASSOCIATIONS;
801
802 #define INTERFACE IQueryAssociations
803 #define IQueryAssociations_METHODS \
804 IUnknown_METHODS \
805 STDMETHOD(Init)(THIS_ ASSOCF flags, LPCWSTR pszAssoc, HKEY hkProgid, HWND hwnd) PURE; \
806 STDMETHOD(GetString)(THIS_ ASSOCF flags, ASSOCSTR str, LPCWSTR pszExtra, LPWSTR pszOut, DWORD * pcchOut) PURE; \
807 STDMETHOD(GetKey)(THIS_ ASSOCF flags, ASSOCKEY key, LPCWSTR pszExtra, HKEY * phkeyOut) PURE; \
808 STDMETHOD(GetData)(THIS_ ASSOCF flags, ASSOCDATA data, LPCWSTR pszExtra, LPVOID pvOut, DWORD * pcbOut) PURE; \
809 STDMETHOD(GetEnum)(THIS_ ASSOCF flags, ASSOCENUM assocenum, LPCWSTR pszExtra, REFIID riid, LPVOID * ppvOut) PURE;
810 ICOM_DEFINE(IQueryAssociations,IUnknown)
811 #undef INTERFACE
812
813 #ifdef COBJMACROS
814 #define IQueryAssociations_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
815 #define IQueryAssociations_AddRef(p) (p)->lpVtbl->AddRef(p)
816 #define IQueryAssociations_Release(p) (p)->lpVtbl->Release(p)
817 #define IQueryAssociations_Init(p,a,b,c,d) (p)->lpVtbl->Init(p,a,b,c,d)
818 #define IQueryAssociations_GetString(p,a,b,c,d,e) (p)->lpVtbl->GetString(p,a,b,c,d,e)
819 #define IQueryAssociations_GetKey(p,a,b,c,d) (p)->lpVtbl->GetKey(p,a,b,c,d)
820 #define IQueryAssociations_GetData(p,a,b,c,d,e) (p)->lpVtbl->GetData(p,a,b,c,d,e)
821 #define IQueryAssociations_GetEnum(p,a,b,c,d,e) (p)->lpVtbl->GetEnum(p,a,b,c,d,e)
822 #endif
823
824 #endif /* __WINE_SHLWAPI_H */