source: trunk/include/win/shlwapi.h@ 21512

Last change on this file since 21512 was 21512, checked in by dmik, 15 years ago

Aligned the STRRET definition and made it available through shlwapi.h and shlobj.h for compatibility with Win32.

File size: 24.2 KB
Line 
1/*
2 * SHLWAPI.DLL functions
3 */
4#ifndef __WINE_SHLWAPI_H
5#define __WINE_SHLWAPI_H
6
7#include <stdarg.h>
8#include <wingdi.h>
9#include <winuser.h>
10#include <shell.h>
11#include <shtypes.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif /* defined(__cplusplus) */
16
17#ifndef NO_SHLWAPI_REG
18
19/* Registry functions */
20
21DWORD WINAPI SHDeleteEmptyKeyA(HKEY,LPCSTR);
22DWORD WINAPI SHDeleteEmptyKeyW(HKEY,LPCWSTR);
23#define SHDeleteEmptyKey WINELIB_NAME_AW(SHDeleteEmptyKey)
24
25DWORD WINAPI SHDeleteKeyA(HKEY,LPCSTR);
26DWORD WINAPI SHDeleteKeyW(HKEY,LPCWSTR);
27#define SHDeleteKey WINELIB_NAME_AW(SHDeleteKey)
28
29DWORD WINAPI SHDeleteValueA(HKEY,LPCSTR,LPCSTR);
30DWORD WINAPI SHDeleteValueW(HKEY,LPCWSTR,LPCWSTR);
31#define SHDeleteValue WINELIB_NAME_AW(SHDeleteValue)
32
33DWORD WINAPI SHGetValueA(HKEY,LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD);
34DWORD WINAPI SHGetValueW(HKEY,LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD);
35#define SHGetValue WINELIB_NAME_AW(SHGetValue)
36
37DWORD WINAPI SHSetValueA(HKEY,LPCSTR,LPCSTR,DWORD,LPCVOID,DWORD);
38DWORD WINAPI SHSetValueW(HKEY,LPCWSTR,LPCWSTR,DWORD,LPCVOID,DWORD);
39#define SHSetValue WINELIB_NAME_AW(SHSetValue)
40
41DWORD WINAPI SHQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
42DWORD WINAPI SHQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
43#define SHQueryValueEx WINELIB_NAME_AW(SHQueryValueEx)
44
45LONG WINAPI SHEnumKeyExA(HKEY,DWORD,LPSTR,LPDWORD);
46LONG WINAPI SHEnumKeyExW(HKEY,DWORD,LPWSTR,LPDWORD);
47#define SHEnumKeyEx WINELIB_NAME_AW(SHEnumKeyEx)
48
49LONG WINAPI SHEnumValueA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
50LONG WINAPI SHEnumValueW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
51#define SHEnumValue WINELIB_NAME_AW(SHEnumValue)
52
53LONG WINAPI SHQueryInfoKeyA(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
54LONG WINAPI SHQueryInfoKeyW(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
55#define SHQueryInfoKey WINELIB_NAME_AW(SHQueryInfoKey)
56
57DWORD WINAPI SHRegGetPathA(HKEY,LPCSTR,LPCSTR,LPSTR,DWORD);
58DWORD WINAPI SHRegGetPathW(HKEY,LPCWSTR,LPCWSTR,LPWSTR,DWORD);
59#define SHRegGetPath WINELIB_NAME_AW(SHRegGetPath)
60
61DWORD WINAPI SHRegSetPathA(HKEY,LPCSTR,LPCSTR,LPCSTR,DWORD);
62DWORD WINAPI SHRegSetPathW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR,DWORD);
63#define SHRegSetPath WINELIB_NAME_AW(SHRegSetPath)
64
65DWORD WINAPI SHCopyKeyA(HKEY,LPCSTR,HKEY,DWORD);
66DWORD WINAPI SHCopyKeyW(HKEY,LPCWSTR,HKEY,DWORD);
67#define SHCopyKey WINELIB_NAME_AW(SHCopyKey)
68
69/* Undocumented registry functions */
70
71HKEY WINAPI SHRegDuplicateHKey(HKEY hKey);
72
73/* FIXME: SHDeleteOrphanKey */
74
75
76/* User registry functions */
77
78typedef enum
79{
80 SHREGDEL_DEFAULT = 0,
81 SHREGDEL_HKCU = 0x1,
82 SHREGDEL_HKLM = 0x10,
83 SHREGDEL_BOTH = SHREGDEL_HKLM | SHREGDEL_HKCU
84} SHREGDEL_FLAGS;
85
86typedef enum
87{
88 SHREGENUM_DEFAULT = 0,
89 SHREGENUM_HKCU = 0x1,
90 SHREGENUM_HKLM = 0x10,
91 SHREGENUM_BOTH = SHREGENUM_HKLM | SHREGENUM_HKCU
92} SHREGENUM_FLAGS;
93
94#define SHREGSET_HKCU 0x1 /* Apply to HKCU if empty */
95#define SHREGSET_FORCE_HKCU 0x2 /* Always apply to HKCU */
96#define SHREGSET_HKLM 0x4 /* Apply to HKLM if empty */
97#define SHREGSET_FORCE_HKLM 0x8 /* Always apply to HKLM */
98#define SHREGSET_DEFAULT (SHREGSET_FORCE_HKCU | SHREGSET_HKLM)
99
100typedef HANDLE HUSKEY;
101typedef HUSKEY *PHUSKEY;
102
103LONG WINAPI SHRegCreateUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,DWORD);
104LONG WINAPI SHRegCreateUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,DWORD);
105#define SHRegCreateUSKey WINELIB_NAME_AW(SHRegCreateUSKey)
106
107LONG WINAPI SHRegOpenUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,BOOL);
108LONG WINAPI SHRegOpenUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,BOOL);
109#define SHRegOpenUSKey WINELIB_NAME_AW(SHRegOpenUSKey)
110
111LONG WINAPI SHRegQueryUSValueA(HUSKEY,LPCSTR,LPDWORD,LPVOID,LPDWORD,
112 BOOL,LPVOID,DWORD);
113LONG WINAPI SHRegQueryUSValueW(HUSKEY,LPCWSTR,LPDWORD,LPVOID,LPDWORD,
114 BOOL,LPVOID,DWORD);
115#define SHRegQueryUSValue WINELIB_NAME_AW(SHRegQueryUSValue)
116
117LONG WINAPI SHRegWriteUSValueA(HUSKEY,LPCSTR,DWORD,LPVOID,DWORD,DWORD);
118LONG WINAPI SHRegWriteUSValueW(HUSKEY,LPCWSTR,DWORD,LPVOID,DWORD,DWORD);
119#define SHRegWriteUSValue WINELIB_NAME_AW(SHRegWriteUSValue)
120
121LONG WINAPI SHRegDeleteUSValueA(HUSKEY,LPCSTR,SHREGDEL_FLAGS);
122LONG WINAPI SHRegDeleteUSValueW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS);
123#define SHRegDeleteUSValue WINELIB_NAME_AW(SHRegDeleteUSValue)
124
125LONG WINAPI SHRegDeleteEmptyUSKeyA(HUSKEY,LPCSTR,SHREGDEL_FLAGS);
126LONG WINAPI SHRegDeleteEmptyUSKeyW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS);
127#define SHRegDeleteEmptyUSKey WINELIB_NAME_AW(SHRegDeleteEmptyUSKey)
128
129LONG WINAPI SHRegEnumUSKeyA(HUSKEY,DWORD,LPSTR,LPDWORD,SHREGENUM_FLAGS);
130LONG WINAPI SHRegEnumUSKeyW(HUSKEY,DWORD,LPWSTR,LPDWORD,SHREGENUM_FLAGS);
131#define SHRegEnumUSKey WINELIB_NAME_AW(SHRegEnumUSKey)
132
133LONG WINAPI SHRegEnumUSValueA(HUSKEY,DWORD,LPSTR,LPDWORD,LPDWORD,
134 LPVOID,LPDWORD,SHREGENUM_FLAGS);
135LONG WINAPI SHRegEnumUSValueW(HUSKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,
136 LPVOID,LPDWORD,SHREGENUM_FLAGS);
137#define SHRegEnumUSValue WINELIB_NAME_AW(SHRegEnumUSValue)
138
139LONG WINAPI SHRegQueryInfoUSKeyA(HUSKEY,LPDWORD,LPDWORD,LPDWORD,
140 LPDWORD,SHREGENUM_FLAGS);
141LONG WINAPI SHRegQueryInfoUSKeyW(HUSKEY,LPDWORD,LPDWORD,LPDWORD,
142 LPDWORD,SHREGENUM_FLAGS);
143#define SHRegQueryInfoUSKey WINELIB_NAME_AW(SHRegQueryInfoUSKey)
144
145LONG WINAPI SHRegCloseUSKey(HUSKEY);
146
147LONG WINAPI SHRegGetUSValueA(LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD,
148 BOOL,LPVOID,DWORD);
149LONG WINAPI SHRegGetUSValueW(LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD,
150 BOOL,LPVOID,DWORD);
151#define SHRegGetUSValue WINELIB_NAME_AW(SHRegGetUSValue)
152
153LONG WINAPI SHRegSetUSValueA(LPCSTR,LPCSTR,DWORD,LPVOID,DWORD,DWORD);
154LONG WINAPI SHRegSetUSValueW(LPCWSTR,LPCWSTR,DWORD,LPVOID,DWORD,DWORD);
155#define SHRegSetUSValue WINELIB_NAME_AW(SHRegSetUSValue)
156
157BOOL WINAPI SHRegGetBoolUSValueA(LPCSTR,LPCSTR,BOOL,BOOL);
158BOOL WINAPI SHRegGetBoolUSValueW(LPCWSTR,LPCWSTR,BOOL,BOOL);
159#define SHRegGetBoolUSValue WINELIB_NAME_AW(SHRegGetBoolUSValue)
160
161#endif /* NO_SHLWAPI_REG */
162
163
164/* Path functions */
165#ifndef NO_SHLWAPI_PATH
166
167/* GetPathCharType return flags */
168#define GCT_INVALID 0x0
169#define GCT_LFNCHAR 0x1
170#define GCT_SHORTCHAR 0x2
171#define GCT_WILD 0x4
172#define GCT_SEPARATOR 0x8
173
174LPSTR WINAPI PathAddBackslashA(LPSTR);
175LPWSTR WINAPI PathAddBackslashW(LPWSTR);
176#define PathAddBackslash WINELIB_NAME_AW(PathAddBackslash)
177
178BOOL WINAPI PathAddExtensionA(LPSTR,LPCSTR);
179BOOL WINAPI PathAddExtensionW(LPWSTR,LPCWSTR);
180#define PathAddExtension WINELIB_NAME_AW(PathAddExtension)
181
182BOOL WINAPI PathAppendA(LPSTR,LPCSTR);
183BOOL WINAPI PathAppendW(LPWSTR,LPCWSTR);
184#define PathAppend WINELIB_NAME_AW(PathAppend)
185
186LPSTR WINAPI PathBuildRootA(LPSTR,int);
187LPWSTR WINAPI PathBuildRootW(LPWSTR,int);
188#define PathBuildRoot WINELIB_NAME_AW(PathBuiltRoot)
189
190BOOL WINAPI PathCanonicalizeA(LPSTR,LPCSTR);
191BOOL WINAPI PathCanonicalizeW(LPWSTR,LPCWSTR);
192#define PathCanonicalize WINELIB_NAME_AW(PathCanonicalize)
193
194LPSTR WINAPI PathCombineA(LPSTR,LPCSTR,LPCSTR);
195LPWSTR WINAPI PathCombineW(LPWSTR,LPCWSTR,LPCWSTR);
196#define PathCombine WINELIB_NAME_AW(PathCombine)
197
198BOOL WINAPI PathCompactPathA(HDC,LPSTR,UINT);
199BOOL WINAPI PathCompactPathW(HDC,LPWSTR,UINT);
200#define PathCompactPath WINELIB_NAME_AW(PathCompactPath)
201
202BOOL WINAPI PathCompactPathExA(LPSTR,LPCSTR,UINT,DWORD);
203BOOL WINAPI PathCompactPathExW(LPWSTR,LPCWSTR,UINT,DWORD);
204#define PathCompactPathEx WINELIB_NAME_AW(PathCompactPathEx)
205
206int WINAPI PathCommonPrefixA(LPCSTR,LPCSTR,LPSTR);
207int WINAPI PathCommonPrefixW(LPCWSTR,LPCWSTR,LPWSTR);
208#define PathCommonPrefix WINELIB_NAME_AW(PathCommonPrefix)
209
210BOOL WINAPI PathFileExistsA(LPCSTR);
211BOOL WINAPI PathFileExistsW(LPCWSTR);
212#define PathFileExists WINELIB_NAME_AW(PathFileExists)
213
214LPSTR WINAPI PathFindExtensionA(LPCSTR);
215LPWSTR WINAPI PathFindExtensionW(LPCWSTR);
216#define PathFindExtension WINELIB_NAME_AW(PathFindExtension)
217
218LPSTR WINAPI PathFindFileNameA(LPCSTR);
219LPWSTR WINAPI PathFindFileNameW(LPCWSTR);
220#define PathFindFileName WINELIB_NAME_AW(PathFindFileName)
221
222LPSTR WINAPI PathFindNextComponentA(LPCSTR);
223LPWSTR WINAPI PathFindNextComponentW(LPCWSTR);
224#define PathFindNextComponent WINELIB_NAME_AW(PathFindNextComponent)
225
226BOOL WINAPI PathFindOnPathA(LPSTR,LPCSTR*);
227BOOL WINAPI PathFindOnPathW(LPWSTR,LPCWSTR*);
228#define PathFindOnPath WINELIB_NAME_AW(PathFindOnPath)
229
230LPSTR WINAPI PathGetArgsA(LPCSTR);
231LPWSTR WINAPI PathGetArgsW(LPCWSTR);
232#define PathGetArgs WINELIB_NAME_AW(PathGetArgs)
233
234UINT WINAPI PathGetCharTypeA(UCHAR);
235UINT WINAPI PathGetCharTypeW(WCHAR);
236#define PathGetCharType WINELIB_NAME_AW(PathGetCharType)
237
238int WINAPI PathGetDriveNumberA(LPCSTR);
239int WINAPI PathGetDriveNumberW(LPCWSTR);
240#define PathGetDriveNumber WINELIB_NAME_AW(PathGetDriveNumber)
241
242BOOL WINAPI PathIsDirectoryA(LPCSTR);
243BOOL WINAPI PathIsDirectoryW(LPCWSTR);
244#define PathIsDirectory WINELIB_NAME_AW(PathIsDirectory)
245
246BOOL WINAPI PathIsDirectoryEmptyA(LPCSTR);
247BOOL WINAPI PathIsDirectoryEmptyW(LPCWSTR);
248#define PathIsDirectoryEmpty WINELIB_NAME_AW(PathIsDirectoryEmpty)
249
250BOOL WINAPI PathIsFileSpecA(LPCSTR);
251BOOL WINAPI PathIsFileSpecW(LPCWSTR);
252#define PathIsFileSpec WINELIB_NAME_AW(PathIsFileSpec);
253
254BOOL WINAPI PathIsPrefixA(LPCSTR,LPCSTR);
255BOOL WINAPI PathIsPrefixW(LPCWSTR,LPCWSTR);
256#define PathIsPrefix WINELIB_NAME_AW(PathIsPrefix)
257
258BOOL WINAPI PathIsRelativeA(LPCSTR);
259BOOL WINAPI PathIsRelativeW(LPCWSTR);
260#define PathIsRelative WINELIB_NAME_AW(PathIsRelative)
261
262BOOL WINAPI PathIsRootA(LPCSTR);
263BOOL WINAPI PathIsRootW(LPCWSTR);
264#define PathIsRoot WINELIB_NAME_AW(PathIsRoot)
265
266BOOL WINAPI PathIsSameRootA(LPCSTR,LPCSTR);
267BOOL WINAPI PathIsSameRootW(LPCWSTR,LPCWSTR);
268#define PathIsSameRoot WINELIB_NAME_AW(PathIsSameRoot)
269
270BOOL WINAPI PathIsUNCA(LPCSTR);
271BOOL WINAPI PathIsUNCW(LPCWSTR);
272#define PathIsUNC WINELIB_NAME_AW(PathIsUNC)
273
274BOOL WINAPI PathIsUNCServerA(LPCSTR);
275BOOL WINAPI PathIsUNCServerW(LPCWSTR);
276#define PathIsUNCServer WINELIB_NAME_AW(PathIsUNCServer)
277
278BOOL WINAPI PathIsUNCServerShareA(LPCSTR);
279BOOL WINAPI PathIsUNCServerShareW(LPCWSTR);
280#define PathIsUNCServerShare WINELIB_NAME_AW(PathIsUNCServerShare)
281
282BOOL WINAPI PathIsContentTypeA(LPCSTR,LPCSTR);
283BOOL WINAPI PathIsContentTypeW(LPCWSTR,LPCWSTR);
284#define PathIsContentType WINELIB_NAME_AW(PathIsContentType)
285
286BOOL WINAPI PathIsURLA(LPCSTR);
287BOOL WINAPI PathIsURLW(LPCWSTR);
288#define PathIsURL WINELIB_NAME_AW(PathIsURL)
289
290BOOL WINAPI PathMakePrettyA(LPSTR);
291BOOL WINAPI PathMakePrettyW(LPWSTR);
292#define PathMakePretty WINELIB_NAME_AW(PathMakePretty)
293
294BOOL WINAPI PathMatchSpecA(LPCSTR,LPCSTR);
295BOOL WINAPI PathMatchSpecW(LPCWSTR,LPCWSTR);
296#define PathMatchSpec WINELIB_NAME_AW(PathMatchSpec)
297
298int WINAPI PathParseIconLocationA(LPSTR);
299int WINAPI PathParseIconLocationW(LPWSTR);
300#define PathParseIconLocation WINELIB_NAME_AW(PathParseIconLocation)
301
302VOID WINAPI PathQuoteSpacesA(LPSTR);
303VOID WINAPI PathQuoteSpacesW(LPWSTR);
304#define PathQuoteSpaces WINELIB_NAME_AW(PathQuoteSpaces)
305
306BOOL WINAPI PathRelativePathToA(LPSTR,LPCSTR,DWORD,LPCSTR,DWORD);
307BOOL WINAPI PathRelativePathToW(LPWSTR,LPCWSTR,DWORD,LPCWSTR,DWORD);
308#define PathRelativePathTo WINELIB_NAME_AW(PathRelativePathTo)
309
310VOID WINAPI PathRemoveArgsA(LPSTR);
311VOID WINAPI PathRemoveArgsW(LPWSTR);
312#define PathRemoveArgs WINELIB_NAME_AW(PathRemoveArgs)
313
314LPSTR WINAPI PathRemoveBackslashA(LPSTR);
315LPWSTR WINAPI PathRemoveBackslashW(LPWSTR);
316#define PathRemoveBackslash WINELIB_NAME_AW(PathRemoveBackslash)
317
318VOID WINAPI PathRemoveBlanksA(LPSTR);
319VOID WINAPI PathRemoveBlanksW(LPWSTR);
320#define PathRemoveBlanks WINELIB_NAME_AW(PathRemoveBlanks)
321
322VOID WINAPI PathRemoveExtensionA(LPSTR);
323VOID WINAPI PathRemoveExtensionW(LPWSTR);
324#define PathRemoveExtension WINELIB_NAME_AW(PathRemoveExtension)
325
326BOOL WINAPI PathRemoveFileSpecA(LPSTR);
327BOOL WINAPI PathRemoveFileSpecW(LPWSTR);
328#define PathRemoveFileSpec WINELIB_NAME_AW(PathRemoveFileSpec)
329
330BOOL WINAPI PathRenameExtensionA(LPSTR,LPCSTR);
331BOOL WINAPI PathRenameExtensionW(LPWSTR,LPCWSTR);
332#define PathRenameExtension WINELIB_NAME_AW(PathRenameExtension)
333
334BOOL WINAPI PathSearchAndQualifyA(LPCSTR,LPSTR,UINT);
335BOOL WINAPI PathSearchAndQualifyW(LPCWSTR,LPWSTR,UINT);
336#define PathSearchAndQualify WINELIB_NAME_AW(PathSearchAndQualify)
337
338VOID WINAPI PathSetDlgItemPathA(HWND,int,LPCSTR);
339VOID WINAPI PathSetDlgItemPathW(HWND,int,LPCWSTR);
340#define PathSetDlgItemPath WINELIB_NAME_AW(PathSetDlgItemPath)
341
342LPSTR WINAPI PathSkipRootA(LPCSTR);
343LPWSTR WINAPI PathSkipRootW(LPCWSTR);
344#define PathSkipRoot WINELIB_NAME_AW(PathSkipRoot)
345
346VOID WINAPI PathStripPathA(LPSTR);
347VOID WINAPI PathStripPathW(LPWSTR);
348#define PathStripPath WINELIB_NAME_AW(PathStripPath)
349
350BOOL WINAPI PathStripToRootA(LPSTR);
351BOOL WINAPI PathStripToRootW(LPWSTR);
352#define PathStripToRoot WINELIB_NAME_AW(PathStripToRoot)
353
354VOID WINAPI PathUnquoteSpacesA(LPSTR);
355VOID WINAPI PathUnquoteSpacesW(LPWSTR);
356#define PathUnquoteSpaces WINELIB_NAME_AW(PathUnquoteSpaces)
357
358BOOL WINAPI PathMakeSystemFolderA(LPCSTR);
359BOOL WINAPI PathMakeSystemFolderW(LPCWSTR);
360#define PathMakeSystemFolder WINELIB_NAME_AW(PathMakeSystemFolder)
361
362BOOL WINAPI PathUnmakeSystemFolderA(LPCSTR);
363BOOL WINAPI PathUnmakeSystemFolderW(LPCWSTR);
364#define PathUnmakeSystemFolder WINELIB_NAME_AW(PathUnmakeSystemFolder)
365
366BOOL WINAPI PathIsSystemFolderA(LPCSTR,DWORD);
367BOOL WINAPI PathIsSystemFolderW(LPCWSTR,DWORD);
368#define PathIsSystemFolder WINELIB_NAME_AW(PathIsSystemFolder)
369
370BOOL WINAPI PathIsNetworkPathA(LPCSTR);
371BOOL WINAPI PathIsNetworkPathW(LPCWSTR);
372#define PathIsNetworkPath WINELIB_NAME_AW(PathIsNetworkPath)
373
374BOOL WINAPI PathIsLFNFileSpecA(LPCSTR);
375BOOL WINAPI PathIsLFNFileSpecW(LPCWSTR);
376#define PathIsLFNFileSpec WINELIB_NAME_AW(PathIsLFNFileSpec)
377
378int WINAPI PathFindSuffixArrayA(LPCSTR,LPCSTR *,int);
379int WINAPI PathFindSuffixArrayW(LPCWSTR,LPCWSTR *,int);
380#define PathFindSuffixArray WINELIB_NAME_AW(PathFindSuffixArray)
381
382VOID WINAPI PathUndecorateA(LPSTR);
383VOID WINAPI PathUndecorateW(LPWSTR);
384#define PathUndecorate WINELIB_NAME_AW(PathUndecorate)
385
386BOOL WINAPI PathUnExpandEnvStringsA(LPCSTR,LPSTR,UINT);
387BOOL WINAPI PathUnExpandEnvStringsW(LPCWSTR,LPWSTR,UINT);
388#define PathUnExpandEnvStrings WINELIB_NAME_AW(PathUnExpandEnvStrings)
389
390/* Url functions */
391
392/* These are used by UrlGetPart routine */
393typedef enum {
394 URL_PART_NONE = 0,
395 URL_PART_SCHEME = 1,
396 URL_PART_HOSTNAME,
397 URL_PART_USERNAME,
398 URL_PART_PASSWORD,
399 URL_PART_PORT,
400 URL_PART_QUERY
401} URL_PART;
402
403#define URL_PARTFLAG_KEEPSCHEME 0x00000001
404
405/* These are used by the UrlIs... routines */
406typedef enum {
407 URLIS_URL,
408 URLIS_OPAQUE,
409 URLIS_NOHISTORY,
410 URLIS_FILEURL,
411 URLIS_APPLIABLE,
412 URLIS_DIRECTORY,
413 URLIS_HASQUERY
414} URLIS;
415
416/* This is used by the UrlApplyScheme... routines */
417#define URL_APPLY_FORCEAPPLY 0x00000008
418#define URL_APPLY_GUESSFILE 0x00000004
419#define URL_APPLY_GUESSSCHEME 0x00000002
420#define URL_APPLY_DEFAULT 0x00000001
421
422/* The following are used by UrlEscape..., UrlUnEscape...,
423 * UrlCanonicalize..., and UrlCombine... routines
424 */
425#define URL_WININET_COMPATIBILITY 0x80000000
426#define URL_PLUGGABLE_PROTOCOL 0x40000000
427#define URL_ESCAPE_UNSAFE 0x20000000
428#define URL_UNESCAPE 0x10000000
429
430#define URL_DONT_SIMPLIFY 0x08000000
431#define URL_NO_META URL_DONT_SIMPLIFY
432#define URL_ESCAPE_SPACES_ONLY 0x04000000
433#define URL_DONT_ESCAPE_EXTRA_INFO 0x02000000
434#define URL_DONT_UNESCAPE_EXTRA_INFO URL_DONT_ESCAPE_EXTRA_INFO
435#define URL_BROWSER_MODE URL_DONT_ESCAPE_EXTRA_INFO
436
437#define URL_INTERNAL_PATH 0x00800000 /* Will escape #'s in paths */
438#define URL_UNESCAPE_HIGH_ANSI_ONLY 0x00400000
439#define URL_CONVERT_IF_DOSPATH 0x00200000
440#define URL_UNESCAPE_INPLACE 0x00100000
441
442#define URL_FILE_USE_PATHURL 0x00010000
443
444#define URL_ESCAPE_SEGMENT_ONLY 0x00002000
445#define URL_ESCAPE_PERCENT 0x00001000
446
447HRESULT WINAPI UrlApplySchemeA(LPCSTR,LPSTR,LPDWORD,DWORD);
448HRESULT WINAPI UrlApplySchemeW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
449#define UrlApplyScheme WINELIB_NAME_AW(UrlApplyScheme)
450
451HRESULT WINAPI UrlCanonicalizeA(LPCSTR,LPSTR,LPDWORD,DWORD);
452HRESULT WINAPI UrlCanonicalizeW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
453#define UrlCanonicalize WINELIB_NAME_AW(UrlCanoncalize)
454
455HRESULT WINAPI UrlCombineA(LPCSTR,LPCSTR,LPSTR,LPDWORD,DWORD);
456HRESULT WINAPI UrlCombineW(LPCWSTR,LPCWSTR,LPWSTR,LPDWORD,DWORD);
457#define UrlCombine WINELIB_NAME_AW(UrlCombine)
458
459INT WINAPI UrlCompareA(LPCSTR,LPCSTR,BOOL);
460INT WINAPI UrlCompareW(LPCWSTR,LPCWSTR,BOOL);
461#define UrlCompare WINELIB_NAME_AW(UrlCompare)
462
463HRESULT WINAPI UrlEscapeA(LPCSTR,LPSTR,LPDWORD,DWORD);
464HRESULT WINAPI UrlEscapeW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
465#define UrlEscape WINELIB_NAME_AW(UrlEscape)
466
467#define UrlEscapeSpacesA(x,y,z) UrlCanonicalizeA(x, y, z, \
468 URL_DONT_ESCAPE_EXTRA_INFO|URL_ESCAPE_SPACES_ONLY)
469#define UrlEscapeSpacesW(x,y,z) UrlCanonicalizeW(x, y, z, \
470 URL_DONT_ESCAPE_EXTRA_INFO|URL_ESCAPE_SPACES_ONLY)
471#define UrlEscapeSpaces WINELIB_NAME_AW(UrlEscapeSpaces)
472
473LPCSTR WINAPI UrlGetLocationA(LPCSTR);
474LPCWSTR WINAPI UrlGetLocationW(LPCWSTR);
475#define UrlGetLocation WINELIB_NAME_AW(UrlGetLocation)
476
477HRESULT WINAPI UrlGetPartA(LPCSTR,LPSTR,LPDWORD,DWORD,DWORD);
478HRESULT WINAPI UrlGetPartW(LPCWSTR,LPWSTR,LPDWORD,DWORD,DWORD);
479#define UrlGetPart WINELIB_NAME_AW(UrlGetPart)
480
481BOOL WINAPI HashData(const unsigned char *,INT,unsigned char *lpDest,INT);
482
483HRESULT WINAPI UrlHashA(LPCSTR,unsigned char *,INT);
484HRESULT WINAPI UrlHashW(LPCWSTR,unsigned char *,INT);
485#define UrlHash WINELIB_NAME_AW(UrlHash)
486
487BOOL WINAPI UrlIsA(LPCSTR,URLIS);
488BOOL WINAPI UrlIsW(LPCWSTR,URLIS);
489#define UrlIs WINELIB_NAME_AW(UrlIs)
490
491BOOL WINAPI UrlIsNoHistoryA(LPCSTR);
492BOOL WINAPI UrlIsNoHistoryW(LPCWSTR);
493#define UrlIsNoHistory WINELIB_NAME_AW(UrlIsNoHistory)
494
495BOOL WINAPI UrlIsOpaqueA(LPCSTR);
496BOOL WINAPI UrlIsOpaqueW(LPCWSTR);
497#define UrlIsOpaque WINELIB_NAME_AW(UrlIsOpaque)
498
499#define UrlIsFileUrlA(x) UrlIsA(x, URLIS_FILEURL)
500#define UrlIsFileUrlW(y) UrlIsW(x, URLIS_FILEURL)
501#define UrlIsFileUrl WINELIB_NAME_AW(UrlIsFileUrl)
502
503HRESULT WINAPI UrlUnescapeA(LPCSTR,LPSTR,LPDWORD,DWORD);
504HRESULT WINAPI UrlUnescapeW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
505#define UrlUnescape WINELIB_AW_NAME(UrlUnescape)
506
507#define UrlUnescapeInPlaceA(x,y) UrlUnescapeA(x, NULL, NULL, \
508 y | URL_UNESCAPE_INPLACE)
509#define UrlUnescapeInPlaceW(x,y) UrlUnescapeW(x, NULL, NULL, \
510 y | URL_UNESCAPE_INPLACE)
511#define UrlUnescapeInPlace WINELIB_AW_NAME(UrlUnescapeInPlace)
512
513HRESULT WINAPI UrlCreateFromPathA(LPCSTR,LPSTR,LPDWORD,DWORD);
514HRESULT WINAPI UrlCreateFromPathW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
515#define UrlCreateFromPath WINELIB_AW_NAME(UrlCreateFromPath)
516
517#endif /* NO_SHLWAPI_PATH */
518
519
520/* String functions */
521#ifndef NO_SHLWAPI_STRFCNS
522
523/* StrToIntEx flags */
524#define STIF_DEFAULT 0x0L
525#define STIF_SUPPORT_HEX 0x1L
526
527BOOL WINAPI ChrCmpIA (WORD w1, WORD w2);
528BOOL WINAPI ChrCmpIW (WCHAR w1, WCHAR w2);
529#define ChrCmpI WINELIB_NAME_AW(ChrCmpI)
530
531INT WINAPI StrCSpnA(LPCSTR,LPCSTR);
532INT WINAPI StrCSpnW(LPCWSTR,LPCWSTR);
533#define StrCSpn WINELIB_NAME_AW(StrCSpn)
534
535INT WINAPI StrCSpnIA(LPCSTR,LPCSTR);
536INT WINAPI StrCSpnIW(LPCWSTR,LPCWSTR);
537#define StrCSpnI WINELIB_NAME_AW(StrCSpnI)
538
539#define StrCatA lstrcatA
540LPWSTR WINAPI StrCatW(LPWSTR,LPCWSTR);
541#define StrCat WINELIB_NAME_AW(StrCat)
542
543LPSTR WINAPI StrCatBuffA(LPSTR,LPCSTR,INT);
544LPWSTR WINAPI StrCatBuffW(LPWSTR,LPCWSTR,INT);
545#define StrCatBuff WINELIB_NAME_AW(StrCatBuff)
546
547LPSTR WINAPI StrChrA(LPCSTR,WORD);
548LPWSTR WINAPI StrChrW(LPCWSTR,WCHAR);
549#define StrChr WINELIB_NAME_AW(StrChr)
550
551LPSTR WINAPI StrChrIA(LPCSTR,CHAR);
552LPWSTR WINAPI StrChrIW(LPCWSTR,WCHAR);
553#define StrChrI WINELIB_NAME_AW(StrChrI)
554
555#define StrCmpA lstrcmpA
556int WINAPI StrCmpW(LPCWSTR,LPCWSTR);
557#define StrCmp WINELIB_NAME_AW(StrCmp)
558
559#define StrCmpIA lstrcmpiA
560int WINAPI StrCmpIW(LPCWSTR,LPCWSTR);
561#define StrCmpI WINELIB_NAME_AW(StrCmpI)
562
563#define StrCpyA lstrcpyA
564LPWSTR WINAPI StrCpyW(LPWSTR,LPCWSTR);
565#define StrCpy WINELIB_NAME_AW(StrCpy)
566
567#define StrCpyNA lstrcpynA
568LPWSTR WINAPI StrCpyNW(LPWSTR,LPCWSTR,int);
569#define StrCpyN WINELIB_NAME_AW(StrCpyN)
570#define StrNCpy WINELIB_NAME_AW(StrCpyN)
571
572INT WINAPI StrCmpNA(LPCSTR,LPCSTR,INT);
573INT WINAPI StrCmpNW(LPCWSTR,LPCWSTR,INT);
574#define StrCmpN WINELIB_NAME_AW(StrCmpN)
575#define StrNCmp WINELIB_NAME_AW(StrCmpN)
576
577INT WINAPI StrCmpNIA(LPCSTR,LPCSTR,INT);
578INT WINAPI StrCmpNIW(LPCWSTR,LPCWSTR,INT);
579#define StrCmpNI WINELIB_NAME_AW(StrCmpNI)
580#define StrNCmpI WINELIB_NAME_AW(StrCmpNI)
581
582LPSTR WINAPI StrDupA(LPCSTR);
583LPWSTR WINAPI StrDupW(LPCWSTR);
584#define StrDup WINELIB_NAME_AW(StrDup)
585
586LPSTR WINAPI StrFormatByteSizeA (DWORD,LPSTR,UINT);
587LPWSTR WINAPI StrFormatByteSizeW (DWORD,LPWSTR,UINT);
588#define StrFormatByteSize WINELIB_NAME_AW(StrFormatByteSize)
589
590int WINAPI StrFromTimeIntervalA(LPSTR,UINT,DWORD,int);
591int WINAPI StrFromTimeIntervalW(LPWSTR,UINT,DWORD,int);
592#define StrFromTimeInterval WINELIB_NAME_AW(StrFromTimeInterval)
593
594BOOL WINAPI StrIsIntlEqualA(BOOL,LPCSTR,LPCSTR,int);
595BOOL WINAPI StrIsIntlEqualW(BOOL,LPCWSTR,LPCWSTR,int);
596#define StrIsIntlEqual WINELIB_NAME_AW(StrIsIntlEqual)
597
598#define StrIntlEqNA(a,b,c) StrIsIntlEqualA(TRUE,a,b,c)
599#define StrIntlEqNW(a,b,c) StrIsIntlEqualW(TRUE,a,b,c)
600
601#define StrIntlEqNIA(a,b,c) StrIsIntlEqualA(FALSE,a,b,c)
602#define StrIntlEqNIW(a,b,c) StrIsIntlEqualW(FALSE,a,b,c)
603
604LPSTR WINAPI StrNCatA(LPSTR,LPCSTR,int);
605LPWSTR WINAPI StrNCatW(LPWSTR,LPCWSTR,int);
606#define StrNCat WINELIB_NAME_AW(StrNCat)
607#define StrCatN WINELIB_NAME_AW(StrNCat)
608
609LPSTR WINAPI StrPBrkA(LPCSTR,LPCSTR);
610LPWSTR WINAPI StrPBrkW(LPCWSTR,LPCWSTR);
611#define StrPBrk WINELIB_NAME_AW(StrPBrk)
612
613LPSTR WINAPI StrRChrA(LPCSTR,LPCSTR,WORD);
614LPWSTR WINAPI StrRChrW(LPCWSTR,LPCWSTR,WORD);
615#define StrRChr WINELIB_NAME_AW(StrRChr)
616
617LPSTR WINAPI StrRChrIA(LPCSTR,LPCSTR,WORD);
618LPWSTR WINAPI StrRChrIW(LPCWSTR,LPCWSTR,WORD);
619#define StrRChrI WINELIB_NAME_AW(StrRChrI)
620
621LPSTR WINAPI StrRStrIA(LPCSTR,LPCSTR,LPCSTR);
622LPWSTR WINAPI StrRStrIW(LPCWSTR,LPCWSTR,LPCWSTR);
623#define StrRStrI WINELIB_NAME_AW(StrRStrI)
624
625int WINAPI StrSpnA(LPCSTR,LPCSTR);
626int WINAPI StrSpnW(LPCWSTR,LPCWSTR);
627#define StrSpn WINELIB_NAME_AW(StrSpn)
628
629LPSTR WINAPI StrStrA(LPCSTR,LPCSTR);
630LPWSTR WINAPI StrStrW(LPCWSTR,LPCWSTR);
631#define StrStr WINELIB_NAME_AW(StrStr)
632
633LPSTR WINAPI StrStrIA(LPCSTR,LPCSTR);
634LPWSTR WINAPI StrStrIW(LPCWSTR,LPCWSTR);
635#define StrStrI WINELIB_NAME_AW(StrStrI)
636
637int WINAPI StrToIntA(LPCSTR);
638int WINAPI StrToIntW(LPCWSTR);
639#define StrToInt WINELIB_NAME_AW(StrToInt)
640#define StrToLong WINELIB_NAME_AW(StrToInt)
641
642BOOL WINAPI StrToIntExA(LPCSTR,DWORD,int*);
643BOOL WINAPI StrToIntExW(LPCWSTR,DWORD,int*);
644#define StrToIntEx WINELIB_NAME_AW(StrToIntEx)
645
646BOOL WINAPI StrTrimA(LPSTR,LPCSTR);
647BOOL WINAPI StrTrimW(LPWSTR,LPCWSTR);
648#define StrTrim WINELIB_NAME_AW(StrTrim)
649
650INT WINAPI wvnsprintfA(LPSTR lpOut, INT cchLimitIn, LPCSTR lpFmt, va_list arglist);
651INT WINAPI wvnsprintfW(LPWSTR lpOut, INT cchLimitIn, LPCWSTR lpFmt, va_list arglist);
652#define wvnsprintf WINELIB_NAME_AW(wvnsprintf)
653
654INT WINAPIV wnsprintfA(LPSTR lpOut, INT cchLimitIn, LPCSTR lpFmt, ...);
655INT WINAPIV wnsprintfW(LPWSTR lpOut, INT cchLimitIn, LPCWSTR lpFmt, ...);
656#define wnsprintf WINELIB_NAME_AW(wnsprintf)
657
658/* Undocumented */
659HRESULT WINAPI StrRetToBufA (LPSTRRET src, const ITEMIDLIST *pidl, LPSTR dest, DWORD len);
660HRESULT WINAPI StrRetToBufW (LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, DWORD len);
661#define StrRetToBuf WINELIB_NAME_AW(StrRetToBuf)
662
663#endif /* NO_SHLWAPI_STRFCNS */
664
665
666/* GDI functions */
667#ifndef NO_SHLWAPI_GDI
668
669HPALETTE WINAPI SHCreateShellPalette(HDC);
670
671COLORREF WINAPI ColorHLSToRGB(WORD,WORD,WORD);
672
673COLORREF WINAPI ColorAdjustLuma(COLORREF,int,BOOL);
674
675VOID WINAPI ColorRGBToHLS(COLORREF,LPWORD,LPWORD,LPWORD);
676
677#endif /* NO_SHLWAPI_GDI */
678
679
680/* Stream functions */
681#ifdef SHLWAPI_STREAM
682
683IStream * WINAPI SHOpenRegStreamA(HKEY,LPCSTR,LPCSTR,DWORD);
684IStream * WINAPI SHOpenRegStreamW(HKEY,LPCWSTR,LPCWSTR,DWORD);
685#define SHOpenRegStream WINELIB_NAME_AW(SHOpenRegStream)
686
687IStream * WINAPI SHOpenRegStream2A(HKEY,LPCSTR,LPCSTR,DWORD);
688IStream * WINAPI SHOpenRegStream2W(HKEY,LPCWSTR,LPCWSTR,DWORD);
689#define SHOpenRegStream2 WINELIB_NAME_AW(SHOpenRegStream2)
690
691#endif /* SHLWAPI_STREAM */
692
693
694/* Version Information */
695#ifndef __WIN32OS2__
696typedef struct _DllVersionInfo {
697 DWORD cbSize;
698 DWORD dwMajorVersion;
699 DWORD dwMinorVersion;
700 DWORD dwBuildNumber;
701 DWORD dwPlatformID;
702} DLLVERSIONINFO;
703#endif
704
705#define DLLVER_PLATFORM_WINDOWS 0x01 /* Win9x */
706#define DLLVER_PLATFORM_NT 0x02 /* WinNT */
707
708typedef HRESULT (* CALLBACK DLLGETVERSIONPROC)(DLLVERSIONINFO *);
709
710#ifdef __cplusplus
711} /* extern "C" */
712#endif /* defined(__cplusplus) */
713
714#endif /* __WINE_SHLWAPI_H */
Note: See TracBrowser for help on using the repository browser.