Commit | Line | Data |
---|---|---|
603f20fc JG |
1 | /* |
2 | * SHLWAPI.DLL functions | |
0799c1a7 AJ |
3 | * |
4 | * Copyright (C) 2000 Juergen Schmied | |
5 | * | |
6 | * This library is free software; you can redistribute it and/or | |
7 | * modify it under the terms of the GNU Lesser General Public | |
8 | * License as published by the Free Software Foundation; either | |
9 | * version 2.1 of the License, or (at your option) any later version. | |
10 | * | |
11 | * This library is distributed in the hope that it will be useful, | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | * Lesser General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU Lesser General Public | |
17 | * License along with this library; if not, write to the Free Software | |
360a3f91 | 18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
603f20fc | 19 | */ |
0799c1a7 | 20 | |
51c74d82 JS |
21 | #ifndef __WINE_SHLWAPI_H |
22 | #define __WINE_SHLWAPI_H | |
23 | ||
ad09fd49 | 24 | /* FIXME: #include <specstrings.h> */ |
53f9c21f | 25 | #include <objbase.h> |
d015d3b9 | 26 | #include <shtypes.h> |
5cdda82a | 27 | |
51c74d82 JS |
28 | #ifdef __cplusplus |
29 | extern "C" { | |
30 | #endif /* defined(__cplusplus) */ | |
31 | ||
96a5c442 | 32 | #include <pshpack8.h> |
ced69a9c | 33 | |
603f20fc JG |
34 | #ifndef NO_SHLWAPI_REG |
35 | ||
36 | /* Registry functions */ | |
37 | ||
38 | DWORD WINAPI SHDeleteEmptyKeyA(HKEY,LPCSTR); | |
39 | DWORD WINAPI SHDeleteEmptyKeyW(HKEY,LPCWSTR); | |
40 | #define SHDeleteEmptyKey WINELIB_NAME_AW(SHDeleteEmptyKey) | |
41 | ||
42 | DWORD WINAPI SHDeleteKeyA(HKEY,LPCSTR); | |
43 | DWORD WINAPI SHDeleteKeyW(HKEY,LPCWSTR); | |
44 | #define SHDeleteKey WINELIB_NAME_AW(SHDeleteKey) | |
45 | ||
46 | DWORD WINAPI SHDeleteValueA(HKEY,LPCSTR,LPCSTR); | |
47 | DWORD WINAPI SHDeleteValueW(HKEY,LPCWSTR,LPCWSTR); | |
48 | #define SHDeleteValue WINELIB_NAME_AW(SHDeleteValue) | |
49 | ||
50 | DWORD WINAPI SHGetValueA(HKEY,LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD); | |
51 | DWORD WINAPI SHGetValueW(HKEY,LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD); | |
52 | #define SHGetValue WINELIB_NAME_AW(SHGetValue) | |
53 | ||
54 | DWORD WINAPI SHSetValueA(HKEY,LPCSTR,LPCSTR,DWORD,LPCVOID,DWORD); | |
55 | DWORD WINAPI SHSetValueW(HKEY,LPCWSTR,LPCWSTR,DWORD,LPCVOID,DWORD); | |
56 | #define SHSetValue WINELIB_NAME_AW(SHSetValue) | |
57 | ||
de51f615 JG |
58 | DWORD WINAPI SHQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); |
59 | DWORD WINAPI SHQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); | |
603f20fc JG |
60 | #define SHQueryValueEx WINELIB_NAME_AW(SHQueryValueEx) |
61 | ||
62 | LONG WINAPI SHEnumKeyExA(HKEY,DWORD,LPSTR,LPDWORD); | |
63 | LONG WINAPI SHEnumKeyExW(HKEY,DWORD,LPWSTR,LPDWORD); | |
64 | #define SHEnumKeyEx WINELIB_NAME_AW(SHEnumKeyEx) | |
65 | ||
66 | LONG WINAPI SHEnumValueA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); | |
67 | LONG WINAPI SHEnumValueW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); | |
68 | #define SHEnumValue WINELIB_NAME_AW(SHEnumValue) | |
69 | ||
70 | LONG WINAPI SHQueryInfoKeyA(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD); | |
71 | LONG WINAPI SHQueryInfoKeyW(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD); | |
72 | #define SHQueryInfoKey WINELIB_NAME_AW(SHQueryInfoKey) | |
73 | ||
74 | DWORD WINAPI SHRegGetPathA(HKEY,LPCSTR,LPCSTR,LPSTR,DWORD); | |
75 | DWORD WINAPI SHRegGetPathW(HKEY,LPCWSTR,LPCWSTR,LPWSTR,DWORD); | |
76 | #define SHRegGetPath WINELIB_NAME_AW(SHRegGetPath) | |
77 | ||
78 | DWORD WINAPI SHRegSetPathA(HKEY,LPCSTR,LPCSTR,LPCSTR,DWORD); | |
79 | DWORD WINAPI SHRegSetPathW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR,DWORD); | |
80 | #define SHRegSetPath WINELIB_NAME_AW(SHRegSetPath) | |
81 | ||
82 | DWORD WINAPI SHCopyKeyA(HKEY,LPCSTR,HKEY,DWORD); | |
83 | DWORD WINAPI SHCopyKeyW(HKEY,LPCWSTR,HKEY,DWORD); | |
84 | #define SHCopyKey WINELIB_NAME_AW(SHCopyKey) | |
85 | ||
ab9bb9c1 | 86 | HKEY WINAPI SHRegDuplicateHKey(HKEY); |
603f20fc | 87 | |
dfe53522 PC |
88 | /* SHRegGetValue flags */ |
89 | typedef INT SRRF; | |
90 | ||
91 | #define SRRF_RT_REG_NONE 0x1 | |
92 | #define SRRF_RT_REG_SZ 0x2 | |
93 | #define SRRF_RT_REG_EXPAND_SZ 0x4 | |
94 | #define SRRF_RT_REG_BINARY 0x8 | |
95 | #define SRRF_RT_REG_DWORD 0x10 | |
96 | #define SRRF_RT_REG_MULTI_SZ 0x20 | |
97 | #define SRRF_RT_REG_QWORD 0x40 | |
98 | ||
99 | #define SRRF_RT_DWORD (SRRF_RT_REG_BINARY|SRRF_RT_REG_DWORD) | |
100 | #define SRRF_RT_QWORD (SRRF_RT_REG_BINARY|SRRF_RT_REG_QWORD) | |
101 | #define SRRF_RT_ANY 0xffff | |
102 | ||
103 | #define SRRF_RM_ANY 0 | |
104 | #define SRRF_RM_NORMAL 0x10000 | |
105 | #define SRRF_RM_SAFE 0x20000 | |
106 | #define SRRF_RM_SAFENETWORK 0x40000 | |
107 | ||
108 | #define SRRF_NOEXPAND 0x10000000 | |
109 | #define SRRF_ZEROONFAILURE 0x20000000 | |
110 | #define SRRF_NOVIRT 0x40000000 | |
111 | ||
112 | LSTATUS WINAPI SHRegGetValueA(HKEY,LPCSTR,LPCSTR,SRRF,LPDWORD,LPVOID,LPDWORD); | |
113 | LSTATUS WINAPI SHRegGetValueW(HKEY,LPCWSTR,LPCWSTR,SRRF,LPDWORD,LPVOID,LPDWORD); | |
114 | #define SHRegGetValue WINELIB_NAME_AW(SHRegGetValue) | |
115 | ||
74c5d175 BJ |
116 | /* Undocumented registry functions */ |
117 | ||
ab9bb9c1 JG |
118 | DWORD WINAPI SHDeleteOrphanKeyA(HKEY,LPCSTR); |
119 | DWORD WINAPI SHDeleteOrphanKeyW(HKEY,LPCWSTR); | |
120 | #define SHDeleteOrphanKey WINELIB_NAME_AW(SHDeleteOrphanKey) | |
603f20fc JG |
121 | |
122 | ||
123 | /* User registry functions */ | |
124 | ||
125 | typedef enum | |
126 | { | |
127 | SHREGDEL_DEFAULT = 0, | |
128 | SHREGDEL_HKCU = 0x1, | |
129 | SHREGDEL_HKLM = 0x10, | |
5837e8b1 | 130 | SHREGDEL_BOTH = SHREGDEL_HKLM | SHREGDEL_HKCU |
603f20fc JG |
131 | } SHREGDEL_FLAGS; |
132 | ||
133 | typedef enum | |
134 | { | |
135 | SHREGENUM_DEFAULT = 0, | |
136 | SHREGENUM_HKCU = 0x1, | |
137 | SHREGENUM_HKLM = 0x10, | |
5837e8b1 | 138 | SHREGENUM_BOTH = SHREGENUM_HKLM | SHREGENUM_HKCU |
603f20fc JG |
139 | } SHREGENUM_FLAGS; |
140 | ||
141 | #define SHREGSET_HKCU 0x1 /* Apply to HKCU if empty */ | |
142 | #define SHREGSET_FORCE_HKCU 0x2 /* Always apply to HKCU */ | |
143 | #define SHREGSET_HKLM 0x4 /* Apply to HKLM if empty */ | |
144 | #define SHREGSET_FORCE_HKLM 0x8 /* Always apply to HKLM */ | |
145 | #define SHREGSET_DEFAULT (SHREGSET_FORCE_HKCU | SHREGSET_HKLM) | |
146 | ||
147 | typedef HANDLE HUSKEY; | |
148 | typedef HUSKEY *PHUSKEY; | |
149 | ||
150 | LONG WINAPI SHRegCreateUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,DWORD); | |
151 | LONG WINAPI SHRegCreateUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,DWORD); | |
152 | #define SHRegCreateUSKey WINELIB_NAME_AW(SHRegCreateUSKey) | |
153 | ||
154 | LONG WINAPI SHRegOpenUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,BOOL); | |
155 | LONG WINAPI SHRegOpenUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,BOOL); | |
156 | #define SHRegOpenUSKey WINELIB_NAME_AW(SHRegOpenUSKey) | |
157 | ||
158 | LONG WINAPI SHRegQueryUSValueA(HUSKEY,LPCSTR,LPDWORD,LPVOID,LPDWORD, | |
159 | BOOL,LPVOID,DWORD); | |
160 | LONG WINAPI SHRegQueryUSValueW(HUSKEY,LPCWSTR,LPDWORD,LPVOID,LPDWORD, | |
161 | BOOL,LPVOID,DWORD); | |
162 | #define SHRegQueryUSValue WINELIB_NAME_AW(SHRegQueryUSValue) | |
163 | ||
164 | LONG WINAPI SHRegWriteUSValueA(HUSKEY,LPCSTR,DWORD,LPVOID,DWORD,DWORD); | |
165 | LONG WINAPI SHRegWriteUSValueW(HUSKEY,LPCWSTR,DWORD,LPVOID,DWORD,DWORD); | |
166 | #define SHRegWriteUSValue WINELIB_NAME_AW(SHRegWriteUSValue) | |
167 | ||
168 | LONG WINAPI SHRegDeleteUSValueA(HUSKEY,LPCSTR,SHREGDEL_FLAGS); | |
169 | LONG WINAPI SHRegDeleteUSValueW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS); | |
170 | #define SHRegDeleteUSValue WINELIB_NAME_AW(SHRegDeleteUSValue) | |
171 | ||
172 | LONG WINAPI SHRegDeleteEmptyUSKeyA(HUSKEY,LPCSTR,SHREGDEL_FLAGS); | |
173 | LONG WINAPI SHRegDeleteEmptyUSKeyW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS); | |
174 | #define SHRegDeleteEmptyUSKey WINELIB_NAME_AW(SHRegDeleteEmptyUSKey) | |
175 | ||
176 | LONG WINAPI SHRegEnumUSKeyA(HUSKEY,DWORD,LPSTR,LPDWORD,SHREGENUM_FLAGS); | |
177 | LONG WINAPI SHRegEnumUSKeyW(HUSKEY,DWORD,LPWSTR,LPDWORD,SHREGENUM_FLAGS); | |
178 | #define SHRegEnumUSKey WINELIB_NAME_AW(SHRegEnumUSKey) | |
179 | ||
180 | LONG WINAPI SHRegEnumUSValueA(HUSKEY,DWORD,LPSTR,LPDWORD,LPDWORD, | |
181 | LPVOID,LPDWORD,SHREGENUM_FLAGS); | |
182 | LONG WINAPI SHRegEnumUSValueW(HUSKEY,DWORD,LPWSTR,LPDWORD,LPDWORD, | |
183 | LPVOID,LPDWORD,SHREGENUM_FLAGS); | |
184 | #define SHRegEnumUSValue WINELIB_NAME_AW(SHRegEnumUSValue) | |
185 | ||
186 | LONG WINAPI SHRegQueryInfoUSKeyA(HUSKEY,LPDWORD,LPDWORD,LPDWORD, | |
187 | LPDWORD,SHREGENUM_FLAGS); | |
188 | LONG WINAPI SHRegQueryInfoUSKeyW(HUSKEY,LPDWORD,LPDWORD,LPDWORD, | |
189 | LPDWORD,SHREGENUM_FLAGS); | |
190 | #define SHRegQueryInfoUSKey WINELIB_NAME_AW(SHRegQueryInfoUSKey) | |
191 | ||
192 | LONG WINAPI SHRegCloseUSKey(HUSKEY); | |
193 | ||
194 | LONG WINAPI SHRegGetUSValueA(LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD, | |
195 | BOOL,LPVOID,DWORD); | |
196 | LONG WINAPI SHRegGetUSValueW(LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD, | |
197 | BOOL,LPVOID,DWORD); | |
198 | #define SHRegGetUSValue WINELIB_NAME_AW(SHRegGetUSValue) | |
199 | ||
200 | LONG WINAPI SHRegSetUSValueA(LPCSTR,LPCSTR,DWORD,LPVOID,DWORD,DWORD); | |
201 | LONG WINAPI SHRegSetUSValueW(LPCWSTR,LPCWSTR,DWORD,LPVOID,DWORD,DWORD); | |
202 | #define SHRegSetUSValue WINELIB_NAME_AW(SHRegSetUSValue) | |
203 | ||
204 | BOOL WINAPI SHRegGetBoolUSValueA(LPCSTR,LPCSTR,BOOL,BOOL); | |
205 | BOOL WINAPI SHRegGetBoolUSValueW(LPCWSTR,LPCWSTR,BOOL,BOOL); | |
206 | #define SHRegGetBoolUSValue WINELIB_NAME_AW(SHRegGetBoolUSValue) | |
207 | ||
b8a70d89 JG |
208 | int WINAPI SHRegGetIntW(HKEY,LPCWSTR,int); |
209 | ||
210 | /* IQueryAssociation and helpers */ | |
211 | enum | |
212 | { | |
213 | ASSOCF_INIT_NOREMAPCLSID = 0x001, /* Don't map clsid->progid */ | |
214 | ASSOCF_INIT_BYEXENAME = 0x002, /* .exe name given */ | |
215 | ASSOCF_OPEN_BYEXENAME = 0x002, /* Synonym */ | |
216 | ASSOCF_INIT_DEFAULTTOSTAR = 0x004, /* Use * as base */ | |
217 | ASSOCF_INIT_DEFAULTTOFOLDER = 0x008, /* Use folder as base */ | |
218 | ASSOCF_NOUSERSETTINGS = 0x010, /* No HKCU reads */ | |
219 | ASSOCF_NOTRUNCATE = 0x020, /* Don't truncate return */ | |
220 | ASSOCF_VERIFY = 0x040, /* Verify data */ | |
221 | ASSOCF_REMAPRUNDLL = 0x080, /* Get rundll args */ | |
222 | ASSOCF_NOFIXUPS = 0x100, /* Don't fixup errors */ | |
640cc3f3 | 223 | ASSOCF_IGNOREBASECLASS = 0x200, /* Don't read baseclass */ |
0c568c2a | 224 | ASSOCF_INIT_IGNOREUNKNOWN = 0x400, /* Fail for unknown progid */ |
b8a70d89 JG |
225 | }; |
226 | ||
227 | typedef DWORD ASSOCF; | |
228 | ||
229 | typedef enum | |
230 | { | |
231 | ASSOCSTR_COMMAND = 1, /* Verb command */ | |
232 | ASSOCSTR_EXECUTABLE, /* .exe from command string */ | |
233 | ASSOCSTR_FRIENDLYDOCNAME, /* Friendly doc type name */ | |
234 | ASSOCSTR_FRIENDLYAPPNAME, /* Friendly .exe name */ | |
235 | ASSOCSTR_NOOPEN, /* noopen value */ | |
236 | ASSOCSTR_SHELLNEWVALUE, /* Use shellnew key */ | |
237 | ASSOCSTR_DDECOMMAND, /* DDE command template */ | |
238 | ASSOCSTR_DDEIFEXEC, /* DDE command for process create */ | |
239 | ASSOCSTR_DDEAPPLICATION, /* DDE app name */ | |
240 | ASSOCSTR_DDETOPIC, /* DDE topic */ | |
241 | ASSOCSTR_INFOTIP, /* Infotip */ | |
242 | ASSOCSTR_QUICKTIP, /* Quick infotip */ | |
243 | ASSOCSTR_TILEINFO, /* Properties for tileview */ | |
244 | ASSOCSTR_CONTENTTYPE, /* Mimetype */ | |
245 | ASSOCSTR_DEFAULTICON, /* Icon */ | |
246 | ASSOCSTR_SHELLEXTENSION, /* GUID for shell extension handler */ | |
247 | ASSOCSTR_MAX | |
248 | } ASSOCSTR; | |
249 | ||
250 | typedef enum | |
251 | { | |
252 | ASSOCKEY_SHELLEXECCLASS = 1, /* Key for ShellExec */ | |
253 | ASSOCKEY_APP, /* Application */ | |
254 | ASSOCKEY_CLASS, /* Progid or class */ | |
255 | ASSOCKEY_BASECLASS, /* Base class */ | |
256 | ASSOCKEY_MAX | |
257 | } ASSOCKEY; | |
258 | ||
259 | typedef enum | |
260 | { | |
261 | ASSOCDATA_MSIDESCRIPTOR = 1, /* Component descriptor */ | |
262 | ASSOCDATA_NOACTIVATEHANDLER, /* Don't activate */ | |
263 | ASSOCDATA_QUERYCLASSSTORE, /* Look in Class Store */ | |
264 | ASSOCDATA_HASPERUSERASSOC, /* Use user association */ | |
265 | ASSOCDATA_EDITFLAGS, /* Edit flags */ | |
266 | ASSOCDATA_VALUE, /* pszExtra is value */ | |
267 | ASSOCDATA_MAX | |
268 | } ASSOCDATA; | |
269 | ||
270 | typedef enum | |
271 | { | |
272 | ASSOCENUM_NONE | |
273 | } ASSOCENUM; | |
274 | ||
b8d3075d | 275 | typedef struct IQueryAssociations *LPQUERYASSOCIATIONS; |
5cdda82a | 276 | |
f00c46f0 | 277 | #define INTERFACE IQueryAssociations |
5d0160ea AJ |
278 | DECLARE_INTERFACE_(IQueryAssociations,IUnknown) |
279 | { | |
280 | /*** IUnknown methods ***/ | |
281 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; | |
282 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
283 | STDMETHOD_(ULONG,Release)(THIS) PURE; | |
284 | /*** IQueryAssociations methods ***/ | |
285 | STDMETHOD(Init)(THIS_ ASSOCF flags, LPCWSTR pszAssoc, HKEY hkProgid, HWND hwnd) PURE; | |
286 | STDMETHOD(GetString)(THIS_ ASSOCF flags, ASSOCSTR str, LPCWSTR pszExtra, LPWSTR pszOut, DWORD * pcchOut) PURE; | |
287 | STDMETHOD(GetKey)(THIS_ ASSOCF flags, ASSOCKEY key, LPCWSTR pszExtra, HKEY * phkeyOut) PURE; | |
288 | STDMETHOD(GetData)(THIS_ ASSOCF flags, ASSOCDATA data, LPCWSTR pszExtra, LPVOID pvOut, DWORD * pcbOut) PURE; | |
f00c46f0 | 289 | STDMETHOD(GetEnum)(THIS_ ASSOCF flags, ASSOCENUM assocenum, LPCWSTR pszExtra, REFIID riid, LPVOID * ppvOut) PURE; |
5d0160ea | 290 | }; |
f00c46f0 | 291 | #undef INTERFACE |
5cdda82a | 292 | |
52ecbf73 | 293 | #if !defined(__cplusplus) || defined(CINTERFACE) |
55379110 AJ |
294 | #define IQueryAssociations_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) |
295 | #define IQueryAssociations_AddRef(p) (p)->lpVtbl->AddRef(p) | |
296 | #define IQueryAssociations_Release(p) (p)->lpVtbl->Release(p) | |
297 | #define IQueryAssociations_Init(p,a,b,c,d) (p)->lpVtbl->Init(p,a,b,c,d) | |
298 | #define IQueryAssociations_GetString(p,a,b,c,d,e) (p)->lpVtbl->GetString(p,a,b,c,d,e) | |
299 | #define IQueryAssociations_GetKey(p,a,b,c,d) (p)->lpVtbl->GetKey(p,a,b,c,d) | |
300 | #define IQueryAssociations_GetData(p,a,b,c,d,e) (p)->lpVtbl->GetData(p,a,b,c,d,e) | |
301 | #define IQueryAssociations_GetEnum(p,a,b,c,d,e) (p)->lpVtbl->GetEnum(p,a,b,c,d,e) | |
302 | #endif | |
5cdda82a | 303 | |
b8a70d89 JG |
304 | HRESULT WINAPI AssocCreate(CLSID,REFIID,LPVOID*); |
305 | ||
306 | HRESULT WINAPI AssocQueryStringA(ASSOCF,ASSOCSTR,LPCSTR,LPCSTR,LPSTR,LPDWORD); | |
307 | HRESULT WINAPI AssocQueryStringW(ASSOCF,ASSOCSTR,LPCWSTR,LPCWSTR,LPWSTR,LPDWORD); | |
308 | #define AssocQueryString WINELIB_NAME_AW(AssocQueryString) | |
309 | ||
310 | HRESULT WINAPI AssocQueryStringByKeyA(ASSOCF,ASSOCSTR,HKEY,LPCSTR,LPSTR,LPDWORD); | |
311 | HRESULT WINAPI AssocQueryStringByKeyW(ASSOCF,ASSOCSTR,HKEY,LPCWSTR,LPWSTR,LPDWORD); | |
312 | #define AssocQueryStringByKey WINELIB_NAME_AW(AssocQueryStringByKey) | |
313 | ||
314 | HRESULT WINAPI AssocQueryKeyA(ASSOCF,ASSOCKEY,LPCSTR,LPCSTR,PHKEY); | |
315 | HRESULT WINAPI AssocQueryKeyW(ASSOCF,ASSOCKEY,LPCWSTR,LPCWSTR,PHKEY); | |
316 | #define AssocQueryKey WINELIB_NAME_AW(AssocQueryKey) | |
317 | ||
d015d3b9 JG |
318 | BOOL WINAPI AssocIsDangerous(LPCWSTR); |
319 | ||
603f20fc JG |
320 | #endif /* NO_SHLWAPI_REG */ |
321 | ||
a93f54bb DH |
322 | void WINAPI IUnknown_Set(IUnknown **ppunk, IUnknown *punk); |
323 | void WINAPI IUnknown_AtomicRelease(IUnknown **punk); | |
324 | HRESULT WINAPI IUnknown_GetWindow(IUnknown *punk, HWND *phwnd); | |
325 | HRESULT WINAPI IUnknown_SetSite(IUnknown *punk, IUnknown *punkSite); | |
326 | HRESULT WINAPI IUnknown_GetSite(IUnknown *punk, REFIID riid, void **ppv); | |
327 | HRESULT WINAPI IUnknown_QueryService(IUnknown *punk, REFGUID guidService, REFIID riid, void **ppvOut); | |
603f20fc JG |
328 | |
329 | /* Path functions */ | |
330 | #ifndef NO_SHLWAPI_PATH | |
331 | ||
332 | /* GetPathCharType return flags */ | |
333 | #define GCT_INVALID 0x0 | |
334 | #define GCT_LFNCHAR 0x1 | |
335 | #define GCT_SHORTCHAR 0x2 | |
336 | #define GCT_WILD 0x4 | |
337 | #define GCT_SEPARATOR 0x8 | |
338 | ||
339 | LPSTR WINAPI PathAddBackslashA(LPSTR); | |
340 | LPWSTR WINAPI PathAddBackslashW(LPWSTR); | |
341 | #define PathAddBackslash WINELIB_NAME_AW(PathAddBackslash) | |
342 | ||
343 | BOOL WINAPI PathAddExtensionA(LPSTR,LPCSTR); | |
344 | BOOL WINAPI PathAddExtensionW(LPWSTR,LPCWSTR); | |
345 | #define PathAddExtension WINELIB_NAME_AW(PathAddExtension) | |
346 | ||
347 | BOOL WINAPI PathAppendA(LPSTR,LPCSTR); | |
348 | BOOL WINAPI PathAppendW(LPWSTR,LPCWSTR); | |
349 | #define PathAppend WINELIB_NAME_AW(PathAppend) | |
350 | ||
351 | LPSTR WINAPI PathBuildRootA(LPSTR,int); | |
352 | LPWSTR WINAPI PathBuildRootW(LPWSTR,int); | |
353 | #define PathBuildRoot WINELIB_NAME_AW(PathBuiltRoot) | |
354 | ||
355 | BOOL WINAPI PathCanonicalizeA(LPSTR,LPCSTR); | |
356 | BOOL WINAPI PathCanonicalizeW(LPWSTR,LPCWSTR); | |
357 | #define PathCanonicalize WINELIB_NAME_AW(PathCanonicalize) | |
358 | ||
359 | LPSTR WINAPI PathCombineA(LPSTR,LPCSTR,LPCSTR); | |
360 | LPWSTR WINAPI PathCombineW(LPWSTR,LPCWSTR,LPCWSTR); | |
361 | #define PathCombine WINELIB_NAME_AW(PathCombine) | |
f6c7222f | 362 | |
603f20fc JG |
363 | BOOL WINAPI PathCompactPathA(HDC,LPSTR,UINT); |
364 | BOOL WINAPI PathCompactPathW(HDC,LPWSTR,UINT); | |
365 | #define PathCompactPath WINELIB_NAME_AW(PathCompactPath) | |
784fd59e | 366 | |
603f20fc JG |
367 | BOOL WINAPI PathCompactPathExA(LPSTR,LPCSTR,UINT,DWORD); |
368 | BOOL WINAPI PathCompactPathExW(LPWSTR,LPCWSTR,UINT,DWORD); | |
369 | #define PathCompactPathEx WINELIB_NAME_AW(PathCompactPathEx) | |
370 | ||
371 | int WINAPI PathCommonPrefixA(LPCSTR,LPCSTR,LPSTR); | |
372 | int WINAPI PathCommonPrefixW(LPCWSTR,LPCWSTR,LPWSTR); | |
373 | #define PathCommonPrefix WINELIB_NAME_AW(PathCommonPrefix) | |
374 | ||
58c77f61 FG |
375 | HRESULT WINAPI PathCreateFromUrlA(LPCSTR,LPSTR,LPDWORD,DWORD); |
376 | HRESULT WINAPI PathCreateFromUrlW(LPCWSTR,LPWSTR,LPDWORD,DWORD); | |
2618bd1a | 377 | #define PathCreateFromUrl WINELIB_NAME_AW(PathCreateFromUrl) |
1685e8c6 | 378 | |
58c77f61 FG |
379 | HRESULT WINAPI PathCreateFromUrlAlloc(LPCWSTR,LPWSTR*,DWORD); |
380 | ||
603f20fc JG |
381 | BOOL WINAPI PathFileExistsA(LPCSTR); |
382 | BOOL WINAPI PathFileExistsW(LPCWSTR); | |
383 | #define PathFileExists WINELIB_NAME_AW(PathFileExists) | |
384 | ||
58c77f61 FG |
385 | BOOL WINAPI PathFileExistsAndAttributesA(LPCSTR,DWORD*); |
386 | BOOL WINAPI PathFileExistsAndAttributesW(LPCWSTR,DWORD*); | |
ed325359 RK |
387 | #define PathFileExistsAndAttributes WINELIB_NAME_AW(PathFileExistsAndAttributes) |
388 | ||
603f20fc JG |
389 | LPSTR WINAPI PathFindExtensionA(LPCSTR); |
390 | LPWSTR WINAPI PathFindExtensionW(LPCWSTR); | |
391 | #define PathFindExtension WINELIB_NAME_AW(PathFindExtension) | |
392 | ||
393 | LPSTR WINAPI PathFindFileNameA(LPCSTR); | |
394 | LPWSTR WINAPI PathFindFileNameW(LPCWSTR); | |
395 | #define PathFindFileName WINELIB_NAME_AW(PathFindFileName) | |
396 | ||
397 | LPSTR WINAPI PathFindNextComponentA(LPCSTR); | |
398 | LPWSTR WINAPI PathFindNextComponentW(LPCWSTR); | |
399 | #define PathFindNextComponent WINELIB_NAME_AW(PathFindNextComponent) | |
400 | ||
401 | BOOL WINAPI PathFindOnPathA(LPSTR,LPCSTR*); | |
402 | BOOL WINAPI PathFindOnPathW(LPWSTR,LPCWSTR*); | |
403 | #define PathFindOnPath WINELIB_NAME_AW(PathFindOnPath) | |
404 | ||
405 | LPSTR WINAPI PathGetArgsA(LPCSTR); | |
406 | LPWSTR WINAPI PathGetArgsW(LPCWSTR); | |
407 | #define PathGetArgs WINELIB_NAME_AW(PathGetArgs) | |
408 | ||
409 | UINT WINAPI PathGetCharTypeA(UCHAR); | |
410 | UINT WINAPI PathGetCharTypeW(WCHAR); | |
411 | #define PathGetCharType WINELIB_NAME_AW(PathGetCharType) | |
412 | ||
413 | int WINAPI PathGetDriveNumberA(LPCSTR); | |
414 | int WINAPI PathGetDriveNumberW(LPCWSTR); | |
415 | #define PathGetDriveNumber WINELIB_NAME_AW(PathGetDriveNumber) | |
416 | ||
417 | BOOL WINAPI PathIsDirectoryA(LPCSTR); | |
418 | BOOL WINAPI PathIsDirectoryW(LPCWSTR); | |
419 | #define PathIsDirectory WINELIB_NAME_AW(PathIsDirectory) | |
420 | ||
421 | BOOL WINAPI PathIsDirectoryEmptyA(LPCSTR); | |
422 | BOOL WINAPI PathIsDirectoryEmptyW(LPCWSTR); | |
423 | #define PathIsDirectoryEmpty WINELIB_NAME_AW(PathIsDirectoryEmpty) | |
424 | ||
425 | BOOL WINAPI PathIsFileSpecA(LPCSTR); | |
426 | BOOL WINAPI PathIsFileSpecW(LPCWSTR); | |
427 | #define PathIsFileSpec WINELIB_NAME_AW(PathIsFileSpec); | |
428 | ||
429 | BOOL WINAPI PathIsPrefixA(LPCSTR,LPCSTR); | |
430 | BOOL WINAPI PathIsPrefixW(LPCWSTR,LPCWSTR); | |
431 | #define PathIsPrefix WINELIB_NAME_AW(PathIsPrefix) | |
432 | ||
433 | BOOL WINAPI PathIsRelativeA(LPCSTR); | |
434 | BOOL WINAPI PathIsRelativeW(LPCWSTR); | |
435 | #define PathIsRelative WINELIB_NAME_AW(PathIsRelative) | |
436 | ||
437 | BOOL WINAPI PathIsRootA(LPCSTR); | |
438 | BOOL WINAPI PathIsRootW(LPCWSTR); | |
439 | #define PathIsRoot WINELIB_NAME_AW(PathIsRoot) | |
440 | ||
441 | BOOL WINAPI PathIsSameRootA(LPCSTR,LPCSTR); | |
442 | BOOL WINAPI PathIsSameRootW(LPCWSTR,LPCWSTR); | |
443 | #define PathIsSameRoot WINELIB_NAME_AW(PathIsSameRoot) | |
444 | ||
445 | BOOL WINAPI PathIsUNCA(LPCSTR); | |
446 | BOOL WINAPI PathIsUNCW(LPCWSTR); | |
447 | #define PathIsUNC WINELIB_NAME_AW(PathIsUNC) | |
448 | ||
449 | BOOL WINAPI PathIsUNCServerA(LPCSTR); | |
450 | BOOL WINAPI PathIsUNCServerW(LPCWSTR); | |
451 | #define PathIsUNCServer WINELIB_NAME_AW(PathIsUNCServer) | |
452 | ||
453 | BOOL WINAPI PathIsUNCServerShareA(LPCSTR); | |
454 | BOOL WINAPI PathIsUNCServerShareW(LPCWSTR); | |
455 | #define PathIsUNCServerShare WINELIB_NAME_AW(PathIsUNCServerShare) | |
456 | ||
457 | BOOL WINAPI PathIsContentTypeA(LPCSTR,LPCSTR); | |
458 | BOOL WINAPI PathIsContentTypeW(LPCWSTR,LPCWSTR); | |
459 | #define PathIsContentType WINELIB_NAME_AW(PathIsContentType) | |
460 | ||
461 | BOOL WINAPI PathIsURLA(LPCSTR); | |
462 | BOOL WINAPI PathIsURLW(LPCWSTR); | |
463 | #define PathIsURL WINELIB_NAME_AW(PathIsURL) | |
464 | ||
465 | BOOL WINAPI PathMakePrettyA(LPSTR); | |
466 | BOOL WINAPI PathMakePrettyW(LPWSTR); | |
467 | #define PathMakePretty WINELIB_NAME_AW(PathMakePretty) | |
468 | ||
469 | BOOL WINAPI PathMatchSpecA(LPCSTR,LPCSTR); | |
470 | BOOL WINAPI PathMatchSpecW(LPCWSTR,LPCWSTR); | |
471 | #define PathMatchSpec WINELIB_NAME_AW(PathMatchSpec) | |
472 | ||
473 | int WINAPI PathParseIconLocationA(LPSTR); | |
474 | int WINAPI PathParseIconLocationW(LPWSTR); | |
475 | #define PathParseIconLocation WINELIB_NAME_AW(PathParseIconLocation) | |
476 | ||
4e75d124 JG |
477 | VOID WINAPI PathQuoteSpacesA(LPSTR); |
478 | VOID WINAPI PathQuoteSpacesW(LPWSTR); | |
603f20fc JG |
479 | #define PathQuoteSpaces WINELIB_NAME_AW(PathQuoteSpaces) |
480 | ||
481 | BOOL WINAPI PathRelativePathToA(LPSTR,LPCSTR,DWORD,LPCSTR,DWORD); | |
482 | BOOL WINAPI PathRelativePathToW(LPWSTR,LPCWSTR,DWORD,LPCWSTR,DWORD); | |
483 | #define PathRelativePathTo WINELIB_NAME_AW(PathRelativePathTo) | |
484 | ||
485 | VOID WINAPI PathRemoveArgsA(LPSTR); | |
486 | VOID WINAPI PathRemoveArgsW(LPWSTR); | |
487 | #define PathRemoveArgs WINELIB_NAME_AW(PathRemoveArgs) | |
488 | ||
489 | LPSTR WINAPI PathRemoveBackslashA(LPSTR); | |
490 | LPWSTR WINAPI PathRemoveBackslashW(LPWSTR); | |
491 | #define PathRemoveBackslash WINELIB_NAME_AW(PathRemoveBackslash) | |
492 | ||
493 | VOID WINAPI PathRemoveBlanksA(LPSTR); | |
494 | VOID WINAPI PathRemoveBlanksW(LPWSTR); | |
495 | #define PathRemoveBlanks WINELIB_NAME_AW(PathRemoveBlanks) | |
496 | ||
497 | VOID WINAPI PathRemoveExtensionA(LPSTR); | |
498 | VOID WINAPI PathRemoveExtensionW(LPWSTR); | |
499 | #define PathRemoveExtension WINELIB_NAME_AW(PathRemoveExtension) | |
500 | ||
501 | BOOL WINAPI PathRemoveFileSpecA(LPSTR); | |
502 | BOOL WINAPI PathRemoveFileSpecW(LPWSTR); | |
503 | #define PathRemoveFileSpec WINELIB_NAME_AW(PathRemoveFileSpec) | |
504 | ||
505 | BOOL WINAPI PathRenameExtensionA(LPSTR,LPCSTR); | |
506 | BOOL WINAPI PathRenameExtensionW(LPWSTR,LPCWSTR); | |
507 | #define PathRenameExtension WINELIB_NAME_AW(PathRenameExtension) | |
508 | ||
509 | BOOL WINAPI PathSearchAndQualifyA(LPCSTR,LPSTR,UINT); | |
510 | BOOL WINAPI PathSearchAndQualifyW(LPCWSTR,LPWSTR,UINT); | |
511 | #define PathSearchAndQualify WINELIB_NAME_AW(PathSearchAndQualify) | |
512 | ||
4e75d124 JG |
513 | VOID WINAPI PathSetDlgItemPathA(HWND,int,LPCSTR); |
514 | VOID WINAPI PathSetDlgItemPathW(HWND,int,LPCWSTR); | |
603f20fc JG |
515 | #define PathSetDlgItemPath WINELIB_NAME_AW(PathSetDlgItemPath) |
516 | ||
517 | LPSTR WINAPI PathSkipRootA(LPCSTR); | |
518 | LPWSTR WINAPI PathSkipRootW(LPCWSTR); | |
519 | #define PathSkipRoot WINELIB_NAME_AW(PathSkipRoot) | |
520 | ||
521 | VOID WINAPI PathStripPathA(LPSTR); | |
522 | VOID WINAPI PathStripPathW(LPWSTR); | |
523 | #define PathStripPath WINELIB_NAME_AW(PathStripPath) | |
524 | ||
525 | BOOL WINAPI PathStripToRootA(LPSTR); | |
526 | BOOL WINAPI PathStripToRootW(LPWSTR); | |
527 | #define PathStripToRoot WINELIB_NAME_AW(PathStripToRoot) | |
528 | ||
529 | VOID WINAPI PathUnquoteSpacesA(LPSTR); | |
530 | VOID WINAPI PathUnquoteSpacesW(LPWSTR); | |
531 | #define PathUnquoteSpaces WINELIB_NAME_AW(PathUnquoteSpaces) | |
532 | ||
533 | BOOL WINAPI PathMakeSystemFolderA(LPCSTR); | |
534 | BOOL WINAPI PathMakeSystemFolderW(LPCWSTR); | |
535 | #define PathMakeSystemFolder WINELIB_NAME_AW(PathMakeSystemFolder) | |
536 | ||
537 | BOOL WINAPI PathUnmakeSystemFolderA(LPCSTR); | |
538 | BOOL WINAPI PathUnmakeSystemFolderW(LPCWSTR); | |
539 | #define PathUnmakeSystemFolder WINELIB_NAME_AW(PathUnmakeSystemFolder) | |
540 | ||
541 | BOOL WINAPI PathIsSystemFolderA(LPCSTR,DWORD); | |
542 | BOOL WINAPI PathIsSystemFolderW(LPCWSTR,DWORD); | |
543 | #define PathIsSystemFolder WINELIB_NAME_AW(PathIsSystemFolder) | |
544 | ||
545 | BOOL WINAPI PathIsNetworkPathA(LPCSTR); | |
546 | BOOL WINAPI PathIsNetworkPathW(LPCWSTR); | |
547 | #define PathIsNetworkPath WINELIB_NAME_AW(PathIsNetworkPath) | |
548 | ||
549 | BOOL WINAPI PathIsLFNFileSpecA(LPCSTR); | |
550 | BOOL WINAPI PathIsLFNFileSpecW(LPCWSTR); | |
551 | #define PathIsLFNFileSpec WINELIB_NAME_AW(PathIsLFNFileSpec) | |
552 | ||
100e1130 GG |
553 | LPCSTR WINAPI PathFindSuffixArrayA(LPCSTR,LPCSTR *,int); |
554 | LPCWSTR WINAPI PathFindSuffixArrayW(LPCWSTR,LPCWSTR *,int); | |
603f20fc JG |
555 | #define PathFindSuffixArray WINELIB_NAME_AW(PathFindSuffixArray) |
556 | ||
557 | VOID WINAPI PathUndecorateA(LPSTR); | |
558 | VOID WINAPI PathUndecorateW(LPWSTR); | |
559 | #define PathUndecorate WINELIB_NAME_AW(PathUndecorate) | |
560 | ||
561 | BOOL WINAPI PathUnExpandEnvStringsA(LPCSTR,LPSTR,UINT); | |
562 | BOOL WINAPI PathUnExpandEnvStringsW(LPCWSTR,LPWSTR,UINT); | |
563 | #define PathUnExpandEnvStrings WINELIB_NAME_AW(PathUnExpandEnvStrings) | |
564 | ||
565 | /* Url functions */ | |
76e00d62 SE |
566 | typedef enum { |
567 | URL_SCHEME_INVALID = -1, | |
568 | URL_SCHEME_UNKNOWN = 0, | |
569 | URL_SCHEME_FTP, | |
570 | URL_SCHEME_HTTP, | |
571 | URL_SCHEME_GOPHER, | |
572 | URL_SCHEME_MAILTO, | |
573 | URL_SCHEME_NEWS, | |
574 | URL_SCHEME_NNTP, | |
575 | URL_SCHEME_TELNET, | |
576 | URL_SCHEME_WAIS, | |
577 | URL_SCHEME_FILE, | |
578 | URL_SCHEME_MK, | |
579 | URL_SCHEME_HTTPS, | |
580 | URL_SCHEME_SHELL, | |
581 | URL_SCHEME_SNEWS, | |
582 | URL_SCHEME_LOCAL, | |
583 | URL_SCHEME_JAVASCRIPT, | |
584 | URL_SCHEME_VBSCRIPT, | |
585 | URL_SCHEME_ABOUT, | |
586 | URL_SCHEME_RES, | |
587 | URL_SCHEME_MSSHELLROOTED, | |
588 | URL_SCHEME_MSSHELLIDLIST, | |
589 | URL_SCHEME_MSHELP, | |
53ee717d TM |
590 | URL_SCHEME_MSSHELLDEVICE, |
591 | URL_SCHEME_WILDCARD, | |
592 | URL_SCHEME_SEARCH_MS, | |
593 | URL_SCHEME_SEARCH, | |
594 | URL_SCHEME_KNOWNFOLDER, | |
76e00d62 SE |
595 | URL_SCHEME_MAXVALUE |
596 | } URL_SCHEME; | |
ad381592 GA |
597 | |
598 | /* These are used by UrlGetPart routine */ | |
599 | typedef enum { | |
600 | URL_PART_NONE = 0, | |
601 | URL_PART_SCHEME = 1, | |
602 | URL_PART_HOSTNAME, | |
603 | URL_PART_USERNAME, | |
604 | URL_PART_PASSWORD, | |
605 | URL_PART_PORT, | |
5837e8b1 | 606 | URL_PART_QUERY |
ad381592 | 607 | } URL_PART; |
603f20fc | 608 | |
ad381592 GA |
609 | #define URL_PARTFLAG_KEEPSCHEME 0x00000001 |
610 | ||
611 | /* These are used by the UrlIs... routines */ | |
612 | typedef enum { | |
613 | URLIS_URL, | |
614 | URLIS_OPAQUE, | |
615 | URLIS_NOHISTORY, | |
616 | URLIS_FILEURL, | |
617 | URLIS_APPLIABLE, | |
618 | URLIS_DIRECTORY, | |
5837e8b1 | 619 | URLIS_HASQUERY |
ad381592 GA |
620 | } URLIS; |
621 | ||
905f04a9 GA |
622 | /* This is used by the UrlApplyScheme... routines */ |
623 | #define URL_APPLY_FORCEAPPLY 0x00000008 | |
624 | #define URL_APPLY_GUESSFILE 0x00000004 | |
625 | #define URL_APPLY_GUESSSCHEME 0x00000002 | |
626 | #define URL_APPLY_DEFAULT 0x00000001 | |
627 | ||
905f04a9 GA |
628 | /* The following are used by UrlEscape..., UrlUnEscape..., |
629 | * UrlCanonicalize..., and UrlCombine... routines | |
630 | */ | |
aafec988 GA |
631 | #define URL_WININET_COMPATIBILITY 0x80000000 |
632 | #define URL_PLUGGABLE_PROTOCOL 0x40000000 | |
633 | #define URL_ESCAPE_UNSAFE 0x20000000 | |
634 | #define URL_UNESCAPE 0x10000000 | |
f6c7222f | 635 | |
aafec988 GA |
636 | #define URL_DONT_SIMPLIFY 0x08000000 |
637 | #define URL_NO_META URL_DONT_SIMPLIFY | |
f6c7222f | 638 | #define URL_ESCAPE_SPACES_ONLY 0x04000000 |
aafec988 GA |
639 | #define URL_DONT_ESCAPE_EXTRA_INFO 0x02000000 |
640 | #define URL_DONT_UNESCAPE_EXTRA_INFO URL_DONT_ESCAPE_EXTRA_INFO | |
641 | #define URL_BROWSER_MODE URL_DONT_ESCAPE_EXTRA_INFO | |
f6c7222f | 642 | |
aafec988 GA |
643 | #define URL_INTERNAL_PATH 0x00800000 /* Will escape #'s in paths */ |
644 | #define URL_UNESCAPE_HIGH_ANSI_ONLY 0x00400000 | |
645 | #define URL_CONVERT_IF_DOSPATH 0x00200000 | |
646 | #define URL_UNESCAPE_INPLACE 0x00100000 | |
647 | ||
648 | #define URL_FILE_USE_PATHURL 0x00010000 | |
649 | ||
650 | #define URL_ESCAPE_SEGMENT_ONLY 0x00002000 | |
651 | #define URL_ESCAPE_PERCENT 0x00001000 | |
f6c7222f | 652 | |
603f20fc JG |
653 | HRESULT WINAPI UrlApplySchemeA(LPCSTR,LPSTR,LPDWORD,DWORD); |
654 | HRESULT WINAPI UrlApplySchemeW(LPCWSTR,LPWSTR,LPDWORD,DWORD); | |
655 | #define UrlApplyScheme WINELIB_NAME_AW(UrlApplyScheme) | |
51c74d82 | 656 | |
603f20fc JG |
657 | HRESULT WINAPI UrlCanonicalizeA(LPCSTR,LPSTR,LPDWORD,DWORD); |
658 | HRESULT WINAPI UrlCanonicalizeW(LPCWSTR,LPWSTR,LPDWORD,DWORD); | |
f4f9b1ac | 659 | #define UrlCanonicalize WINELIB_NAME_AW(UrlCanonicalize) |
51c74d82 | 660 | |
603f20fc JG |
661 | HRESULT WINAPI UrlCombineA(LPCSTR,LPCSTR,LPSTR,LPDWORD,DWORD); |
662 | HRESULT WINAPI UrlCombineW(LPCWSTR,LPCWSTR,LPWSTR,LPDWORD,DWORD); | |
663 | #define UrlCombine WINELIB_NAME_AW(UrlCombine) | |
62519abb | 664 | |
603f20fc JG |
665 | INT WINAPI UrlCompareA(LPCSTR,LPCSTR,BOOL); |
666 | INT WINAPI UrlCompareW(LPCWSTR,LPCWSTR,BOOL); | |
667 | #define UrlCompare WINELIB_NAME_AW(UrlCompare) | |
62519abb | 668 | |
603f20fc JG |
669 | HRESULT WINAPI UrlEscapeA(LPCSTR,LPSTR,LPDWORD,DWORD); |
670 | HRESULT WINAPI UrlEscapeW(LPCWSTR,LPWSTR,LPDWORD,DWORD); | |
671 | #define UrlEscape WINELIB_NAME_AW(UrlEscape) | |
62519abb | 672 | |
603f20fc JG |
673 | #define UrlEscapeSpacesA(x,y,z) UrlCanonicalizeA(x, y, z, \ |
674 | URL_DONT_ESCAPE_EXTRA_INFO|URL_ESCAPE_SPACES_ONLY) | |
675 | #define UrlEscapeSpacesW(x,y,z) UrlCanonicalizeW(x, y, z, \ | |
676 | URL_DONT_ESCAPE_EXTRA_INFO|URL_ESCAPE_SPACES_ONLY) | |
677 | #define UrlEscapeSpaces WINELIB_NAME_AW(UrlEscapeSpaces) | |
51c74d82 | 678 | |
603f20fc JG |
679 | LPCSTR WINAPI UrlGetLocationA(LPCSTR); |
680 | LPCWSTR WINAPI UrlGetLocationW(LPCWSTR); | |
681 | #define UrlGetLocation WINELIB_NAME_AW(UrlGetLocation) | |
51c74d82 | 682 | |
603f20fc JG |
683 | HRESULT WINAPI UrlGetPartA(LPCSTR,LPSTR,LPDWORD,DWORD,DWORD); |
684 | HRESULT WINAPI UrlGetPartW(LPCWSTR,LPWSTR,LPDWORD,DWORD,DWORD); | |
685 | #define UrlGetPart WINELIB_NAME_AW(UrlGetPart) | |
62519abb | 686 | |
100e1130 | 687 | HRESULT WINAPI HashData(const unsigned char *,DWORD,unsigned char *lpDest,DWORD); |
62519abb | 688 | |
100e1130 GG |
689 | HRESULT WINAPI UrlHashA(LPCSTR,unsigned char *,DWORD); |
690 | HRESULT WINAPI UrlHashW(LPCWSTR,unsigned char *,DWORD); | |
603f20fc | 691 | #define UrlHash WINELIB_NAME_AW(UrlHash) |
62519abb | 692 | |
603f20fc JG |
693 | BOOL WINAPI UrlIsA(LPCSTR,URLIS); |
694 | BOOL WINAPI UrlIsW(LPCWSTR,URLIS); | |
695 | #define UrlIs WINELIB_NAME_AW(UrlIs) | |
62519abb | 696 | |
603f20fc JG |
697 | BOOL WINAPI UrlIsNoHistoryA(LPCSTR); |
698 | BOOL WINAPI UrlIsNoHistoryW(LPCWSTR); | |
699 | #define UrlIsNoHistory WINELIB_NAME_AW(UrlIsNoHistory) | |
62519abb | 700 | |
603f20fc JG |
701 | BOOL WINAPI UrlIsOpaqueA(LPCSTR); |
702 | BOOL WINAPI UrlIsOpaqueW(LPCWSTR); | |
703 | #define UrlIsOpaque WINELIB_NAME_AW(UrlIsOpaque) | |
62519abb | 704 | |
603f20fc | 705 | #define UrlIsFileUrlA(x) UrlIsA(x, URLIS_FILEURL) |
340dee86 | 706 | #define UrlIsFileUrlW(x) UrlIsW(x, URLIS_FILEURL) |
603f20fc | 707 | #define UrlIsFileUrl WINELIB_NAME_AW(UrlIsFileUrl) |
62519abb | 708 | |
100e1130 GG |
709 | HRESULT WINAPI UrlUnescapeA(LPSTR,LPSTR,LPDWORD,DWORD); |
710 | HRESULT WINAPI UrlUnescapeW(LPWSTR,LPWSTR,LPDWORD,DWORD); | |
2618bd1a | 711 | #define UrlUnescape WINELIB_NAME_AW(UrlUnescape) |
62519abb | 712 | |
603f20fc JG |
713 | #define UrlUnescapeInPlaceA(x,y) UrlUnescapeA(x, NULL, NULL, \ |
714 | y | URL_UNESCAPE_INPLACE) | |
715 | #define UrlUnescapeInPlaceW(x,y) UrlUnescapeW(x, NULL, NULL, \ | |
716 | y | URL_UNESCAPE_INPLACE) | |
2618bd1a | 717 | #define UrlUnescapeInPlace WINELIB_NAME_AW(UrlUnescapeInPlace) |
905f04a9 | 718 | |
603f20fc JG |
719 | HRESULT WINAPI UrlCreateFromPathA(LPCSTR,LPSTR,LPDWORD,DWORD); |
720 | HRESULT WINAPI UrlCreateFromPathW(LPCWSTR,LPWSTR,LPDWORD,DWORD); | |
2618bd1a | 721 | #define UrlCreateFromPath WINELIB_NAME_AW(UrlCreateFromPath) |
62519abb | 722 | |
57cb25c0 HD |
723 | typedef struct tagPARSEDURLA { |
724 | DWORD cbSize; | |
725 | LPCSTR pszProtocol; | |
726 | UINT cchProtocol; | |
727 | LPCSTR pszSuffix; | |
728 | UINT cchSuffix; | |
729 | UINT nScheme; | |
730 | } PARSEDURLA, *PPARSEDURLA; | |
731 | ||
732 | typedef struct tagPARSEDURLW { | |
733 | DWORD cbSize; | |
734 | LPCWSTR pszProtocol; | |
735 | UINT cchProtocol; | |
736 | LPCWSTR pszSuffix; | |
737 | UINT cchSuffix; | |
738 | UINT nScheme; | |
739 | } PARSEDURLW, *PPARSEDURLW; | |
740 | ||
741 | HRESULT WINAPI ParseURLA(LPCSTR pszUrl, PARSEDURLA *ppu); | |
742 | HRESULT WINAPI ParseURLW(LPCWSTR pszUrl, PARSEDURLW *ppu); | |
2618bd1a | 743 | #define ParseURL WINELIB_NAME_AW(ParseUrl) |
57cb25c0 | 744 | |
603f20fc | 745 | #endif /* NO_SHLWAPI_PATH */ |
0d18aad1 | 746 | |
0d18aad1 | 747 | |
603f20fc JG |
748 | /* String functions */ |
749 | #ifndef NO_SHLWAPI_STRFCNS | |
62519abb | 750 | |
603f20fc | 751 | /* StrToIntEx flags */ |
3e1ee5b8 MS |
752 | #define STIF_DEFAULT __MSABI_LONG(0x0) |
753 | #define STIF_SUPPORT_HEX __MSABI_LONG(0x1) | |
62519abb | 754 | |
b8a70d89 JG |
755 | BOOL WINAPI ChrCmpIA (WORD,WORD); |
756 | BOOL WINAPI ChrCmpIW (WCHAR,WCHAR); | |
905f04a9 GA |
757 | #define ChrCmpI WINELIB_NAME_AW(ChrCmpI) |
758 | ||
603f20fc JG |
759 | INT WINAPI StrCSpnA(LPCSTR,LPCSTR); |
760 | INT WINAPI StrCSpnW(LPCWSTR,LPCWSTR); | |
52b2d2cf HD |
761 | #define StrCSpn WINELIB_NAME_AW(StrCSpn) |
762 | ||
603f20fc JG |
763 | INT WINAPI StrCSpnIA(LPCSTR,LPCSTR); |
764 | INT WINAPI StrCSpnIW(LPCWSTR,LPCWSTR); | |
52b2d2cf HD |
765 | #define StrCSpnI WINELIB_NAME_AW(StrCSpnI) |
766 | ||
767 | #define StrCatA lstrcatA | |
603f20fc | 768 | LPWSTR WINAPI StrCatW(LPWSTR,LPCWSTR); |
52b2d2cf HD |
769 | #define StrCat WINELIB_NAME_AW(StrCat) |
770 | ||
603f20fc JG |
771 | LPSTR WINAPI StrCatBuffA(LPSTR,LPCSTR,INT); |
772 | LPWSTR WINAPI StrCatBuffW(LPWSTR,LPCWSTR,INT); | |
52b2d2cf HD |
773 | #define StrCatBuff WINELIB_NAME_AW(StrCatBuff) |
774 | ||
b8a70d89 JG |
775 | DWORD WINAPI StrCatChainW(LPWSTR,DWORD,DWORD,LPCWSTR); |
776 | ||
603f20fc JG |
777 | LPSTR WINAPI StrChrA(LPCSTR,WORD); |
778 | LPWSTR WINAPI StrChrW(LPCWSTR,WCHAR); | |
13d74c5f JS |
779 | #define StrChr WINELIB_NAME_AW(StrChr) |
780 | ||
18176e3c | 781 | LPSTR WINAPI StrChrIA(LPCSTR,WORD); |
603f20fc | 782 | LPWSTR WINAPI StrChrIW(LPCWSTR,WCHAR); |
52b2d2cf HD |
783 | #define StrChrI WINELIB_NAME_AW(StrChrI) |
784 | ||
603f20fc JG |
785 | #define StrCmpA lstrcmpA |
786 | int WINAPI StrCmpW(LPCWSTR,LPCWSTR); | |
787 | #define StrCmp WINELIB_NAME_AW(StrCmp) | |
ad381592 | 788 | |
603f20fc JG |
789 | #define StrCmpIA lstrcmpiA |
790 | int WINAPI StrCmpIW(LPCWSTR,LPCWSTR); | |
791 | #define StrCmpI WINELIB_NAME_AW(StrCmpI) | |
52b2d2cf | 792 | |
603f20fc JG |
793 | #define StrCpyA lstrcpyA |
794 | LPWSTR WINAPI StrCpyW(LPWSTR,LPCWSTR); | |
795 | #define StrCpy WINELIB_NAME_AW(StrCpy) | |
52b2d2cf | 796 | |
603f20fc JG |
797 | #define StrCpyNA lstrcpynA |
798 | LPWSTR WINAPI StrCpyNW(LPWSTR,LPCWSTR,int); | |
799 | #define StrCpyN WINELIB_NAME_AW(StrCpyN) | |
800 | #define StrNCpy WINELIB_NAME_AW(StrCpyN) | |
ad381592 | 801 | |
b8a70d89 JG |
802 | INT WINAPI StrCmpLogicalW(LPCWSTR,LPCWSTR); |
803 | ||
603f20fc JG |
804 | INT WINAPI StrCmpNA(LPCSTR,LPCSTR,INT); |
805 | INT WINAPI StrCmpNW(LPCWSTR,LPCWSTR,INT); | |
806 | #define StrCmpN WINELIB_NAME_AW(StrCmpN) | |
807 | #define StrNCmp WINELIB_NAME_AW(StrCmpN) | |
ad381592 | 808 | |
603f20fc JG |
809 | INT WINAPI StrCmpNIA(LPCSTR,LPCSTR,INT); |
810 | INT WINAPI StrCmpNIW(LPCWSTR,LPCWSTR,INT); | |
811 | #define StrCmpNI WINELIB_NAME_AW(StrCmpNI) | |
812 | #define StrNCmpI WINELIB_NAME_AW(StrCmpNI) | |
ad381592 | 813 | |
603f20fc JG |
814 | LPSTR WINAPI StrDupA(LPCSTR); |
815 | LPWSTR WINAPI StrDupW(LPCWSTR); | |
52b2d2cf HD |
816 | #define StrDup WINELIB_NAME_AW(StrDup) |
817 | ||
b8a70d89 JG |
818 | HRESULT WINAPI SHStrDupA(LPCSTR,WCHAR**); |
819 | HRESULT WINAPI SHStrDupW(LPCWSTR,WCHAR**); | |
820 | #define SHStrDup WINELIB_NAME_AW(SHStrDup) | |
821 | ||
603f20fc | 822 | LPSTR WINAPI StrFormatByteSizeA (DWORD,LPSTR,UINT); |
91ec8e14 JG |
823 | |
824 | /* A/W Pairing is broken for this function */ | |
825 | LPSTR WINAPI StrFormatByteSize64A (LONGLONG,LPSTR,UINT); | |
826 | LPWSTR WINAPI StrFormatByteSizeW (LONGLONG,LPWSTR,UINT); | |
a2ba7dcf | 827 | #ifndef WINE_NO_UNICODE_MACROS |
91ec8e14 JG |
828 | #ifdef UNICODE |
829 | #define StrFormatByteSize StrFormatByteSizeW | |
830 | #else | |
831 | #define StrFormatByteSize StrFormatByteSize64A | |
832 | #endif | |
833 | #endif | |
fc049ecd JG |
834 | |
835 | LPSTR WINAPI StrFormatKBSizeA(LONGLONG,LPSTR,UINT); | |
836 | LPWSTR WINAPI StrFormatKBSizeW(LONGLONG,LPWSTR,UINT); | |
837 | #define StrFormatKBSize WINELIB_NAME_AW(StrFormatKBSize) | |
62519abb | 838 | |
603f20fc JG |
839 | int WINAPI StrFromTimeIntervalA(LPSTR,UINT,DWORD,int); |
840 | int WINAPI StrFromTimeIntervalW(LPWSTR,UINT,DWORD,int); | |
841 | #define StrFromTimeInterval WINELIB_NAME_AW(StrFromTimeInterval) | |
842 | ||
843 | BOOL WINAPI StrIsIntlEqualA(BOOL,LPCSTR,LPCSTR,int); | |
844 | BOOL WINAPI StrIsIntlEqualW(BOOL,LPCWSTR,LPCWSTR,int); | |
845 | #define StrIsIntlEqual WINELIB_NAME_AW(StrIsIntlEqual) | |
846 | ||
847 | #define StrIntlEqNA(a,b,c) StrIsIntlEqualA(TRUE,a,b,c) | |
848 | #define StrIntlEqNW(a,b,c) StrIsIntlEqualW(TRUE,a,b,c) | |
849 | ||
850 | #define StrIntlEqNIA(a,b,c) StrIsIntlEqualA(FALSE,a,b,c) | |
851 | #define StrIntlEqNIW(a,b,c) StrIsIntlEqualW(FALSE,a,b,c) | |
852 | ||
853 | LPSTR WINAPI StrNCatA(LPSTR,LPCSTR,int); | |
854 | LPWSTR WINAPI StrNCatW(LPWSTR,LPCWSTR,int); | |
ad381592 | 855 | #define StrNCat WINELIB_NAME_AW(StrNCat) |
603f20fc | 856 | #define StrCatN WINELIB_NAME_AW(StrNCat) |
ad381592 | 857 | |
603f20fc JG |
858 | LPSTR WINAPI StrPBrkA(LPCSTR,LPCSTR); |
859 | LPWSTR WINAPI StrPBrkW(LPCWSTR,LPCWSTR); | |
860 | #define StrPBrk WINELIB_NAME_AW(StrPBrk) | |
861 | ||
862 | LPSTR WINAPI StrRChrA(LPCSTR,LPCSTR,WORD); | |
863 | LPWSTR WINAPI StrRChrW(LPCWSTR,LPCWSTR,WORD); | |
ad381592 GA |
864 | #define StrRChr WINELIB_NAME_AW(StrRChr) |
865 | ||
603f20fc JG |
866 | LPSTR WINAPI StrRChrIA(LPCSTR,LPCSTR,WORD); |
867 | LPWSTR WINAPI StrRChrIW(LPCWSTR,LPCWSTR,WORD); | |
ad381592 GA |
868 | #define StrRChrI WINELIB_NAME_AW(StrRChrI) |
869 | ||
603f20fc JG |
870 | LPSTR WINAPI StrRStrIA(LPCSTR,LPCSTR,LPCSTR); |
871 | LPWSTR WINAPI StrRStrIW(LPCWSTR,LPCWSTR,LPCWSTR); | |
872 | #define StrRStrI WINELIB_NAME_AW(StrRStrI) | |
873 | ||
874 | int WINAPI StrSpnA(LPCSTR,LPCSTR); | |
875 | int WINAPI StrSpnW(LPCWSTR,LPCWSTR); | |
876 | #define StrSpn WINELIB_NAME_AW(StrSpn) | |
877 | ||
878 | LPSTR WINAPI StrStrA(LPCSTR,LPCSTR); | |
879 | LPWSTR WINAPI StrStrW(LPCWSTR,LPCWSTR); | |
ad381592 GA |
880 | #define StrStr WINELIB_NAME_AW(StrStr) |
881 | ||
603f20fc JG |
882 | LPSTR WINAPI StrStrIA(LPCSTR,LPCSTR); |
883 | LPWSTR WINAPI StrStrIW(LPCWSTR,LPCWSTR); | |
ad381592 GA |
884 | #define StrStrI WINELIB_NAME_AW(StrStrI) |
885 | ||
9bd13c93 | 886 | LPWSTR WINAPI StrStrNW(LPCWSTR,LPCWSTR,UINT); |
15c6057c | 887 | LPWSTR WINAPI StrStrNIW(LPCWSTR,LPCWSTR,UINT); |
9bd13c93 | 888 | |
603f20fc JG |
889 | int WINAPI StrToIntA(LPCSTR); |
890 | int WINAPI StrToIntW(LPCWSTR); | |
ad381592 | 891 | #define StrToInt WINELIB_NAME_AW(StrToInt) |
603f20fc | 892 | #define StrToLong WINELIB_NAME_AW(StrToInt) |
ad381592 | 893 | |
603f20fc JG |
894 | BOOL WINAPI StrToIntExA(LPCSTR,DWORD,int*); |
895 | BOOL WINAPI StrToIntExW(LPCWSTR,DWORD,int*); | |
ad381592 GA |
896 | #define StrToIntEx WINELIB_NAME_AW(StrToIntEx) |
897 | ||
b8a70d89 JG |
898 | BOOL WINAPI StrToInt64ExA(LPCSTR,DWORD,LONGLONG*); |
899 | BOOL WINAPI StrToInt64ExW(LPCWSTR,DWORD,LONGLONG*); | |
900 | #define StrToIntEx64 WINELIB_NAME_AW(StrToIntEx64) | |
901 | ||
603f20fc JG |
902 | BOOL WINAPI StrTrimA(LPSTR,LPCSTR); |
903 | BOOL WINAPI StrTrimW(LPWSTR,LPCWSTR); | |
ad381592 GA |
904 | #define StrTrim WINELIB_NAME_AW(StrTrim) |
905 | ||
b9f0ee96 AJ |
906 | INT WINAPI wvnsprintfA(LPSTR,INT,LPCSTR,__ms_va_list); |
907 | INT WINAPI wvnsprintfW(LPWSTR,INT,LPCWSTR,__ms_va_list); | |
d50a5b3f PH |
908 | #define wvnsprintf WINELIB_NAME_AW(wvnsprintf) |
909 | ||
b8a70d89 JG |
910 | INT WINAPIV wnsprintfA(LPSTR,INT,LPCSTR, ...); |
911 | INT WINAPIV wnsprintfW(LPWSTR,INT,LPCWSTR, ...); | |
d50a5b3f | 912 | #define wnsprintf WINELIB_NAME_AW(wnsprintf) |
62519abb | 913 | |
b8a70d89 JG |
914 | HRESULT WINAPI SHLoadIndirectString(LPCWSTR,LPWSTR,UINT,PVOID*); |
915 | ||
1415a110 AJ |
916 | BOOL WINAPI IntlStrEqWorkerA(BOOL,LPCSTR,LPCSTR,int); |
917 | BOOL WINAPI IntlStrEqWorkerW(BOOL,LPCWSTR,LPCWSTR,int); | |
b8a70d89 JG |
918 | #define IntlStrEqWorker WINELIB_NAME_AW(IntlStrEqWorker) |
919 | ||
920 | #define IntlStrEqNA(s1,s2,n) IntlStrEqWorkerA(TRUE,s1,s2,n) | |
921 | #define IntlStrEqNW(s1,s2,n) IntlStrEqWorkerW(TRUE,s1,s2,n) | |
922 | #define IntlStrEqN WINELIB_NAME_AW(IntlStrEqN) | |
923 | ||
924 | #define IntlStrEqNIA(s1,s2,n) IntlStrEqWorkerA(FALSE,s1,s2,n) | |
925 | #define IntlStrEqNIW(s1,s2,n) IntlStrEqWorkerW(FALSE,s1,s2,n) | |
926 | #define IntlStrEqNI WINELIB_NAME_AW(IntlStrEqNI) | |
927 | ||
d015d3b9 JG |
928 | HRESULT WINAPI StrRetToStrA(STRRET*,LPCITEMIDLIST,LPSTR*); |
929 | HRESULT WINAPI StrRetToStrW(STRRET*,LPCITEMIDLIST,LPWSTR*); | |
b8a70d89 JG |
930 | #define StrRetToStr WINELIB_NAME_AW(StrRetToStr) |
931 | ||
d015d3b9 JG |
932 | HRESULT WINAPI StrRetToBufA(STRRET*,LPCITEMIDLIST,LPSTR,UINT); |
933 | HRESULT WINAPI StrRetToBufW(STRRET*,LPCITEMIDLIST,LPWSTR,UINT); | |
52b2d2cf HD |
934 | #define StrRetToBuf WINELIB_NAME_AW(StrRetToBuf) |
935 | ||
d015d3b9 JG |
936 | HRESULT WINAPI StrRetToBSTR(STRRET*,LPCITEMIDLIST,BSTR*); |
937 | ||
16cc2b87 NS |
938 | BOOL WINAPI IsCharSpaceA(CHAR); |
939 | BOOL WINAPI IsCharSpaceW(WCHAR); | |
940 | #define IsCharSpace WINELIB_NAME_AW(IsCharSpace) | |
941 | ||
603f20fc | 942 | #endif /* NO_SHLWAPI_STRFCNS */ |
06fb2139 | 943 | |
aafec988 | 944 | |
603f20fc JG |
945 | /* GDI functions */ |
946 | #ifndef NO_SHLWAPI_GDI | |
905f04a9 | 947 | |
603f20fc | 948 | HPALETTE WINAPI SHCreateShellPalette(HDC); |
aafec988 | 949 | |
603f20fc | 950 | COLORREF WINAPI ColorHLSToRGB(WORD,WORD,WORD); |
aafec988 | 951 | |
603f20fc | 952 | COLORREF WINAPI ColorAdjustLuma(COLORREF,int,BOOL); |
aafec988 | 953 | |
603f20fc | 954 | VOID WINAPI ColorRGBToHLS(COLORREF,LPWORD,LPWORD,LPWORD); |
aafec988 | 955 | |
603f20fc | 956 | #endif /* NO_SHLWAPI_GDI */ |
06fb2139 | 957 | |
b8f072e9 AE |
958 | /* Security functions */ |
959 | BOOL WINAPI IsInternetESCEnabled(void); | |
06fb2139 | 960 | |
603f20fc | 961 | /* Stream functions */ |
5d0160ea | 962 | #ifndef NO_SHLWAPI_STREAM |
06fb2139 | 963 | |
5d0160ea AJ |
964 | struct IStream * WINAPI SHOpenRegStreamA(HKEY,LPCSTR,LPCSTR,DWORD); |
965 | struct IStream * WINAPI SHOpenRegStreamW(HKEY,LPCWSTR,LPCWSTR,DWORD); | |
b8a70d89 | 966 | #define SHOpenRegStream WINELIB_NAME_AW(SHOpenRegStream2) /* Uses version 2 */ |
aafec988 | 967 | |
5d0160ea AJ |
968 | struct IStream * WINAPI SHOpenRegStream2A(HKEY,LPCSTR,LPCSTR,DWORD); |
969 | struct IStream * WINAPI SHOpenRegStream2W(HKEY,LPCWSTR,LPCWSTR,DWORD); | |
603f20fc | 970 | #define SHOpenRegStream2 WINELIB_NAME_AW(SHOpenRegStream2) |
aafec988 | 971 | |
5d0160ea AJ |
972 | HRESULT WINAPI SHCreateStreamOnFileA(LPCSTR,DWORD,struct IStream**); |
973 | HRESULT WINAPI SHCreateStreamOnFileW(LPCWSTR,DWORD,struct IStream**); | |
b8a70d89 JG |
974 | #define SHCreateStreamOnFile WINELIB_NAME_AW(SHCreateStreamOnFile) |
975 | ||
5d0160ea | 976 | HRESULT WINAPI SHCreateStreamOnFileEx(LPCWSTR,DWORD,DWORD,BOOL,struct IStream*,struct IStream**); |
b8a70d89 | 977 | |
5d0160ea | 978 | HRESULT WINAPI SHCreateStreamWrapper(LPBYTE,DWORD,DWORD,struct IStream**); |
ab9bb9c1 | 979 | |
603f20fc | 980 | #endif /* NO_SHLWAPI_STREAM */ |
aafec988 | 981 | |
b8a70d89 JG |
982 | /* SHAutoComplete flags */ |
983 | #define SHACF_DEFAULT 0x00000000 | |
984 | #define SHACF_FILESYSTEM 0x00000001 | |
985 | #define SHACF_URLHISTORY 0x00000002 | |
986 | #define SHACF_URLMRU 0x00000004 | |
987 | #define SHACF_URLALL (SHACF_URLHISTORY|SHACF_URLMRU) | |
988 | #define SHACF_USETAB 0x00000008 | |
989 | #define SHACF_FILESYS_ONLY 0x00000010 | |
990 | #define SHACF_FILESYS_DIRS 0x00000020 | |
991 | #define SHACF_AUTOSUGGEST_FORCE_ON 0x10000000 | |
992 | #define SHACF_AUTOSUGGEST_FORCE_OFF 0x20000000 | |
993 | #define SHACF_AUTOAPPEND_FORCE_ON 0x40000000 | |
994 | #define SHACF_AUTOAPPEND_FORCE_OFF 0x80000000 | |
995 | ||
996 | HRESULT WINAPI SHAutoComplete(HWND,DWORD); | |
997 | ||
998 | /* Threads */ | |
bb1ca6e0 | 999 | HRESULT WINAPI SHCreateThreadRef(LONG*, IUnknown**); |
b8a70d89 JG |
1000 | HRESULT WINAPI SHGetThreadRef(IUnknown**); |
1001 | HRESULT WINAPI SHSetThreadRef(IUnknown*); | |
4056d7ef | 1002 | HRESULT WINAPI SHReleaseThreadRef(void); |
b8a70d89 JG |
1003 | |
1004 | /* SHCreateThread flags */ | |
ca942f16 | 1005 | #define CTF_INSIST 0x01 /* Always call */ |
b8a70d89 JG |
1006 | #define CTF_THREAD_REF 0x02 /* Hold thread ref */ |
1007 | #define CTF_PROCESS_REF 0x04 /* Hold process ref */ | |
1008 | #define CTF_COINIT 0x08 /* Startup COM first */ | |
1009 | #define CTF_FREELIBANDEXIT 0x10 /* Hold DLL ref */ | |
1010 | #define CTF_REF_COUNTED 0x20 /* Thread is ref counted */ | |
1011 | #define CTF_WAIT_ALLOWCOM 0x40 /* Allow marshalling */ | |
1012 | ||
1013 | BOOL WINAPI SHCreateThread(LPTHREAD_START_ROUTINE,void*,DWORD,LPTHREAD_START_ROUTINE); | |
1014 | ||
5d0160ea | 1015 | BOOL WINAPI SHSkipJunction(struct IBindCtx*,const CLSID*); |
aafec988 | 1016 | |
603f20fc | 1017 | /* Version Information */ |
f6c7222f | 1018 | |
8aa79fbe FG |
1019 | typedef struct _DllVersionInfo { |
1020 | DWORD cbSize; | |
1021 | DWORD dwMajorVersion; | |
1022 | DWORD dwMinorVersion; | |
1023 | DWORD dwBuildNumber; | |
1024 | DWORD dwPlatformID; | |
1025 | } DLLVERSIONINFO; | |
1026 | ||
603f20fc JG |
1027 | #define DLLVER_PLATFORM_WINDOWS 0x01 /* Win9x */ |
1028 | #define DLLVER_PLATFORM_NT 0x02 /* WinNT */ | |
8aa79fbe | 1029 | |
f94462fb | 1030 | typedef HRESULT (CALLBACK *DLLGETVERSIONPROC)(DLLVERSIONINFO *); |
8aa79fbe | 1031 | |
5f4cdfcd AJ |
1032 | #ifdef __WINESRC__ |
1033 | /* shouldn't be here, but is nice for type checking */ | |
9936feef | 1034 | HRESULT WINAPI DllGetVersion(DLLVERSIONINFO *) DECLSPEC_HIDDEN; |
5f4cdfcd AJ |
1035 | #endif |
1036 | ||
b8a70d89 JG |
1037 | typedef struct _DLLVERSIONINFO2 { |
1038 | DLLVERSIONINFO info1; | |
1039 | DWORD dwFlags; /* Reserved */ | |
96a5c442 | 1040 | ULONGLONG DECLSPEC_ALIGN(8) ullVersion; /* 16 bits each for Major, Minor, Build, QFE */ |
b8a70d89 JG |
1041 | } DLLVERSIONINFO2; |
1042 | ||
1043 | #define DLLVER_MAJOR_MASK 0xFFFF000000000000 | |
1044 | #define DLLVER_MINOR_MASK 0x0000FFFF00000000 | |
1045 | #define DLLVER_BUILD_MASK 0x00000000FFFF0000 | |
1046 | #define DLLVER_QFE_MASK 0x000000000000FFFF | |
1047 | ||
1048 | #define MAKEDLLVERULL(mjr, mnr, bld, qfe) (((ULONGLONG)(mjr)<< 48)| \ | |
1049 | ((ULONGLONG)(mnr)<< 32) | ((ULONGLONG)(bld)<< 16) | (ULONGLONG)(qfe)) | |
1050 | ||
9936feef | 1051 | HRESULT WINAPI DllInstall(BOOL,LPCWSTR) DECLSPEC_HIDDEN; |
b8a70d89 | 1052 | |
edd49c78 JC |
1053 | |
1054 | /* IsOS definitions */ | |
1055 | ||
1056 | #define OS_WIN32SORGREATER 0x00 | |
1057 | #define OS_NT 0x01 | |
1058 | #define OS_WIN95ORGREATER 0x02 | |
1059 | #define OS_NT4ORGREATER 0x03 | |
1060 | #define OS_WIN2000ORGREATER_ALT 0x04 | |
1061 | #define OS_WIN98ORGREATER 0x05 | |
1062 | #define OS_WIN98_GOLD 0x06 | |
1063 | #define OS_WIN2000ORGREATER 0x07 | |
1064 | #define OS_WIN2000PRO 0x08 | |
1065 | #define OS_WIN2000SERVER 0x09 | |
1066 | #define OS_WIN2000ADVSERVER 0x0A | |
1067 | #define OS_WIN2000DATACENTER 0x0B | |
1068 | #define OS_WIN2000TERMINAL 0x0C | |
1069 | #define OS_EMBEDDED 0x0D | |
1070 | #define OS_TERMINALCLIENT 0x0E | |
1071 | #define OS_TERMINALREMOTEADMIN 0x0F | |
1072 | #define OS_WIN95_GOLD 0x10 | |
1073 | #define OS_MEORGREATER 0x11 | |
1074 | #define OS_XPORGREATER 0x12 | |
1075 | #define OS_HOME 0x13 | |
1076 | #define OS_PROFESSIONAL 0x14 | |
1077 | #define OS_DATACENTER 0x15 | |
1078 | #define OS_ADVSERVER 0x16 | |
1079 | #define OS_SERVER 0x17 | |
1080 | #define OS_TERMINALSERVER 0x18 | |
1081 | #define OS_PERSONALTERMINALSERVER 0x19 | |
1082 | #define OS_FASTUSERSWITCHING 0x1A | |
1083 | #define OS_WELCOMELOGONUI 0x1B | |
1084 | #define OS_DOMAINMEMBER 0x1C | |
1085 | #define OS_ANYSERVER 0x1D | |
1086 | #define OS_WOW6432 0x1E | |
1087 | #define OS_WEBSERVER 0x1F | |
1088 | #define OS_SMALLBUSINESSSERVER 0x20 | |
1089 | #define OS_TABLETPC 0x21 | |
1090 | #define OS_SERVERADMINUI 0x22 | |
1091 | #define OS_MEDIACENTER 0x23 | |
1092 | #define OS_APPLIANCE 0x24 | |
1093 | ||
1094 | BOOL WINAPI IsOS(DWORD); | |
1095 | ||
ddbb3179 NL |
1096 | /* SHSetTimerQueueTimer definitions */ |
1097 | #define TPS_EXECUTEIO 0x00000001 | |
1098 | #define TPS_LONGEXECTIME 0x00000008 | |
1099 | ||
cf663d17 NS |
1100 | /* SHFormatDateTimeA/SHFormatDateTimeW flags */ |
1101 | #define FDTF_SHORTTIME 0x00000001 | |
1102 | #define FDTF_SHORTDATE 0x00000002 | |
1103 | #define FDTF_DEFAULT (FDTF_SHORTDATE | FDTF_SHORTTIME) | |
1104 | #define FDTF_LONGDATE 0x00000004 | |
1105 | #define FDTF_LONGTIME 0x00000008 | |
1106 | #define FDTF_RELATIVE 0x00000010 | |
1107 | #define FDTF_LTRDATE 0x00000100 | |
1108 | #define FDTF_RTLDATE 0x00000200 | |
1109 | #define FDTF_NOAUTOREADINGORDER 0x00000400 | |
1110 | ||
1372806e NS |
1111 | |
1112 | typedef struct | |
1113 | { | |
1114 | const IID *piid; | |
1115 | int dwOffset; | |
1116 | } QITAB, *LPQITAB; | |
1117 | ||
1118 | HRESULT WINAPI QISearch(void* base, const QITAB *pqit, REFIID riid, void **ppv); | |
1119 | ||
53f9c21f | 1120 | #include <poppack.h> |
ced69a9c | 1121 | |
51c74d82 JS |
1122 | #ifdef __cplusplus |
1123 | } /* extern "C" */ | |
1124 | #endif /* defined(__cplusplus) */ | |
1125 | ||
1126 | #endif /* __WINE_SHLWAPI_H */ |