]> git.ipfire.org Git - thirdparty/gcc.git/blame - libphobos/libdruntime/core/sys/windows/shlwapi.d
Merge remote-tracking branch 'origin/master' into devel/c++-contracts
[thirdparty/gcc.git] / libphobos / libdruntime / core / sys / windows / shlwapi.d
CommitLineData
b4c522fa
IB
1/**
2 * Windows API header module
3 *
4 * Translated from MinGW Windows headers
5 *
6 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
0fb57034 7 * Source: $(DRUNTIMESRC core/sys/windows/_shlwapi.d)
b4c522fa
IB
8 */
9module core.sys.windows.shlwapi;
10version (Windows):
11
12version (ANSI) {} else version = Unicode;
13pragma(lib, "shlwapi");
14
15/* Changes compared to MinGW:
16wnsprintf functions are not included.
17// Macros unneeded for D
18#define StrCmpIA lstrcmpiA;
19#define StrCmpA lstrcmpA;
20#define StrCpyA lstrcpyA;
21#define StrCpyNA lstrcpynA;
22#define MAKEDLLVERULL(major, minor, build, qfe) \
23 (((ULONGLONG)(major) << 48) | \
24 ((ULONGLONG)(minor) << 32) | \
25 ((ULONGLONG)(build) << 16) | \
26 ((ULONGLONG)( qfe) << 0))
27*/
28
29import core.sys.windows.objbase, core.sys.windows.shlobj;
92dd3e71 30import core.sys.windows.basetyps, core.sys.windows.objidl, core.sys.windows.unknwn, core.sys.windows.windef,
b4c522fa
IB
31 core.sys.windows.winbase, core.sys.windows.winreg;
32
33enum DLLVER_PLATFORM_WINDOWS = 0x00000001;
34enum DLLVER_PLATFORM_NT = 0x00000002;
35
36enum URL_DONT_ESCAPE_EXTRA_INFO = 0x02000000;
37enum URL_DONT_SIMPLIFY = 0x08000000;
38enum URL_ESCAPE_PERCENT = 0x00001000;
39enum URL_ESCAPE_SEGMENT_ONLY = 0x00002000;
40enum URL_ESCAPE_SPACES_ONLY = 0x04000000;
41enum URL_ESCAPE_UNSAFE = 0x20000000;
42enum URL_INTERNAL_PATH = 0x00800000;
43enum URL_PARTFLAG_KEEPSCHEME = 0x00000001;
44enum URL_PLUGGABLE_PROTOCOL = 0x40000000;
45enum URL_UNESCAPE = 0x10000000;
46enum URL_UNESCAPE_HIGH_ANSI_ONLY = 0x00400000;
47enum URL_UNESCAPE_INPLACE = 0x00100000;
48
49align(1):
50struct DLLVERSIONINFO
51{
52 DWORD cbSize = this.sizeof;
53 DWORD dwMajorVersion;
54 DWORD dwMinorVersion;
55 DWORD dwBuildNumber;
56 DWORD dwPlatformID;
57}
58
59struct DLLVERSIONINFO2
60{
61 DLLVERSIONINFO info1;
62 DWORD dwFlags;
63 ULONGLONG ullVersion;
64}
65
66enum ASSOCSTR {
67 ASSOCSTR_COMMAND,
68 ASSOCSTR_EXECUTABLE,
69 ASSOCSTR_FRIENDLYDOCNAME,
70 ASSOCSTR_FRIENDLYAPPNAME,
71 ASSOCSTR_NOOPEN,
72 ASSOCSTR_SHELLNEWVALUE,
73 ASSOCSTR_DDECOMMAND,
74 ASSOCSTR_DDEIFEXEC,
75 ASSOCSTR_DDEAPPLICATION,
76 ASSOCSTR_DDETOPIC
77}
78
79enum ASSOCKEY
80{
81 ASSOCKEY_SHELLEXECCLASS = 1,
82 ASSOCKEY_APP,
83 ASSOCKEY_CLASS,
84 ASSOCKEY_BASECLASS
85}
86
87enum ASSOCDATA
88{
89 ASSOCDATA_MSIDESCRIPTOR = 1,
90 ASSOCDATA_NOACTIVATEHANDLER,
91 ASSOCDATA_QUERYCLASSSTORE
92}
93
94alias DWORD ASSOCF;
95
96enum SHREGDEL_FLAGS
97{
98 SHREGDEL_DEFAULT = 0x00000000,
99 SHREGDEL_HKCU = 0x00000001,
100 SHREGDEL_HKLM = 0x00000010,
101 SHREGDEL_BOTH = 0x00000011
102}
103
104enum SHREGENUM_FLAGS
105{
106 SHREGENUM_DEFAULT = 0x00000000,
107 SHREGENUM_HKCU = 0x00000001,
108 SHREGENUM_HKLM = 0x00000010,
109 SHREGENUM_BOTH = 0x00000011
110}
111
112enum URLIS
113{
114 URLIS_URL,
115 URLIS_OPAQUE,
116 URLIS_NOHISTORY,
117 URLIS_FILEURL,
118 URLIS_APPLIABLE,
119 URLIS_DIRECTORY,
120 URLIS_HASQUERY
121}
122
123mixin DECLARE_HANDLE!("HUSKEY");
124alias HUSKEY* PHUSKEY;
125
126extern (Windows)
127{
128 alias HRESULT function (DLLVERSIONINFO *) DLLGETVERSIONPROC;
129}
130
131
132BOOL IntlStrEqNA(LPCSTR pStr1, LPCSTR pStr2, int nChar)
133{
134 return IntlStrEqWorkerA(TRUE, pStr1, pStr2, nChar);
135}
136
137BOOL IntlStrEqNW(LPCWSTR pStr1, LPCWSTR pStr2, int nChar)
138{
139 return IntlStrEqWorkerW(TRUE, pStr1, pStr2, nChar);
140}
141
142BOOL IntlStrEqNIA(LPCSTR pStr1, LPCSTR pStr2, int nChar)
143{
144 return IntlStrEqWorkerA(FALSE, pStr1, pStr2, nChar);
145}
146
147BOOL IntlStrEqNIW(LPCWSTR pStr1, LPCWSTR pStr2, int nChar)
148{
149 return IntlStrEqWorkerW(FALSE, pStr1, pStr2, nChar);
150}
151
152BOOL UrlIsFileUrlA(LPCSTR pszURL)
153{
154 return UrlIsA(pszURL, URLIS.URLIS_FILEURL);
155}
156
157BOOL UrlIsFileUrlW(LPCWSTR pszURL)
158{
159 return UrlIsW(pszURL, URLIS.URLIS_FILEURL);
160}
161
162HRESULT UrlUnescapeInPlaceA(LPSTR pszUrl, DWORD dwFlags)
163{
164 return UrlUnescapeA(pszUrl, null, null, dwFlags | URL_UNESCAPE_INPLACE);
165}
166HRESULT UrlUnescapeInPlaceW(LPWSTR pszUrl, DWORD dwFlags)
167{
168 return UrlUnescapeW(pszUrl, null, null, dwFlags | URL_UNESCAPE_INPLACE);
169}
170
171extern (Windows):
172BOOL ChrCmpIA(WORD, WORD);
173BOOL ChrCmpIW(WCHAR, WCHAR);
174BOOL IntlStrEqWorkerA(BOOL, LPCSTR, LPCSTR, int);
175BOOL IntlStrEqWorkerW(BOOL, LPCWSTR, LPCWSTR, int);
176HRESULT SHStrDupA(LPCSTR, LPWSTR*);
177HRESULT SHStrDupW(LPCWSTR, LPWSTR*);
178LPSTR StrCatA(LPSTR, LPCSTR);
179LPWSTR StrCatW(LPWSTR, LPCWSTR);
180LPSTR StrCatBuffA(LPSTR, LPCSTR, int);
181LPWSTR StrCatBuffW(LPWSTR, LPCWSTR, int);
182DWORD StrCatChainW(LPWSTR, DWORD, DWORD, LPCWSTR);
183LPSTR StrChrA(LPCSTR, WORD);
184LPWSTR StrChrW(LPCWSTR, WCHAR);
185LPSTR StrChrIA(LPCSTR, WORD);
186LPWSTR StrChrIW(LPCWSTR, WCHAR);
187int StrCmpIW(LPCWSTR, LPCWSTR);
188int StrCmpW(LPCWSTR, LPCWSTR);
189LPWSTR StrCpyW(LPWSTR, LPCWSTR);
190LPWSTR StrCpyNW(LPWSTR, LPCWSTR, int);
191int StrCmpNA(LPCSTR, LPCSTR, int);
192int StrCmpNW(LPCWSTR, LPCWSTR, int);
193int StrCmpNIA(LPCSTR, LPCSTR, int);
194int StrCmpNIW(LPCWSTR, LPCWSTR, int);
195int StrCSpnA(LPCSTR, LPCSTR);
196int StrCSpnW(LPCWSTR, LPCWSTR);
197int StrCSpnIA(LPCSTR, LPCSTR);
198int StrCSpnIW(LPCWSTR, LPCWSTR);
199LPSTR StrDupA(LPCSTR);
200LPWSTR StrDupW(LPCWSTR);
201LPSTR StrFormatByteSize64A(LONGLONG, LPSTR, UINT);
202LPSTR StrFormatByteSizeA(DWORD, LPSTR, UINT);
203LPWSTR StrFormatByteSizeW(LONGLONG, LPWSTR, UINT);
204LPSTR StrFormatKBSizeA(LONGLONG, LPSTR, UINT);
205LPWSTR StrFormatKBSizeW(LONGLONG, LPWSTR, UINT);
206int StrFromTimeIntervalA(LPSTR, UINT, DWORD, int);
207int StrFromTimeIntervalW(LPWSTR, UINT, DWORD, int);
208BOOL StrIsIntlEqualA(BOOL, LPCSTR, LPCSTR, int);
209BOOL StrIsIntlEqualW(BOOL, LPCWSTR, LPCWSTR, int);
210LPSTR StrNCatA(LPSTR, LPCSTR, int);
211LPWSTR StrNCatW(LPWSTR, LPCWSTR, int);
212LPSTR StrPBrkA(LPCSTR, LPCSTR);
213LPWSTR StrPBrkW(LPCWSTR, LPCWSTR);
214LPSTR StrRChrA(LPCSTR, LPCSTR, WORD);
215LPWSTR StrRChrW(LPCWSTR, LPCWSTR, WCHAR);
216LPSTR StrRChrIA(LPCSTR, LPCSTR, WORD);
217LPWSTR StrRChrIW(LPCWSTR, LPCWSTR, WCHAR);
218LPSTR StrRStrIA(LPCSTR, LPCSTR, LPCSTR);
219LPWSTR StrRStrIW(LPCWSTR, LPCWSTR, LPCWSTR);
220int StrSpnA(LPCSTR, LPCSTR);
221int StrSpnW(LPCWSTR, LPCWSTR);
222LPSTR StrStrA(LPCSTR, LPCSTR);
223LPSTR StrStrIA(LPCSTR, LPCSTR);
224LPWSTR StrStrIW(LPCWSTR, LPCWSTR);
225LPWSTR StrStrW(LPCWSTR, LPCWSTR);
226int StrToIntA(LPCSTR);
227int StrToIntW(LPCWSTR);
228BOOL StrToIntExA(LPCSTR, DWORD, int*);
229BOOL StrToIntExW(LPCWSTR, DWORD, int*);
230BOOL StrTrimA(LPSTR, LPCSTR);
231BOOL StrTrimW(LPWSTR, LPCWSTR);
232LPSTR PathAddBackslashA(LPSTR);
233LPWSTR PathAddBackslashW(LPWSTR);
234BOOL PathAddExtensionA(LPSTR, LPCSTR);
235BOOL PathAddExtensionW(LPWSTR, LPCWSTR);
236BOOL PathAppendA(LPSTR, LPCSTR);
237BOOL PathAppendW(LPWSTR, LPCWSTR);
238LPSTR PathBuildRootA(LPSTR, int);
239LPWSTR PathBuildRootW(LPWSTR, int);
240BOOL PathCanonicalizeA(LPSTR, LPCSTR);
241BOOL PathCanonicalizeW(LPWSTR, LPCWSTR);
242LPSTR PathCombineA(LPSTR, LPCSTR, LPCSTR);
243LPWSTR PathCombineW(LPWSTR, LPCWSTR, LPCWSTR);
244int PathCommonPrefixA(LPCSTR, LPCSTR, LPSTR);
245int PathCommonPrefixW(LPCWSTR, LPCWSTR, LPWSTR);
246BOOL PathCompactPathA(HDC, LPSTR, UINT);
247BOOL PathCompactPathW(HDC, LPWSTR, UINT);
248BOOL PathCompactPathExA(LPSTR, LPCSTR, UINT, DWORD);
249BOOL PathCompactPathExW(LPWSTR, LPCWSTR, UINT, DWORD);
250HRESULT PathCreateFromUrlA(LPCSTR, LPSTR, LPDWORD, DWORD);
251HRESULT PathCreateFromUrlW(LPCWSTR, LPWSTR, LPDWORD, DWORD);
252BOOL PathFileExistsA(LPCSTR);
253BOOL PathFileExistsW(LPCWSTR);
254LPSTR PathFindExtensionA(LPCSTR);
255LPWSTR PathFindExtensionW(LPCWSTR);
256LPSTR PathFindFileNameA(LPCSTR);
257LPWSTR PathFindFileNameW(LPCWSTR);
258LPSTR PathFindNextComponentA(LPCSTR);
259LPWSTR PathFindNextComponentW(LPCWSTR);
260BOOL PathFindOnPathA(LPSTR, LPCSTR*);
261BOOL PathFindOnPathW(LPWSTR, LPCWSTR*);
262LPCSTR PathFindSuffixArrayA(LPCSTR, LPCSTR*, int);
263LPCWSTR PathFindSuffixArrayW(LPCWSTR, LPCWSTR*, int);
264LPSTR PathGetArgsA(LPCSTR);
265LPWSTR PathGetArgsW(LPCWSTR);
266UINT PathGetCharTypeA(UCHAR);
267UINT PathGetCharTypeW(WCHAR);
268int PathGetDriveNumberA(LPCSTR);
269int PathGetDriveNumberW(LPCWSTR);
270BOOL PathIsContentTypeA(LPCSTR, LPCSTR);
271BOOL PathIsContentTypeW(LPCWSTR, LPCWSTR);
272BOOL PathIsDirectoryA(LPCSTR);
273BOOL PathIsDirectoryEmptyA(LPCSTR);
274BOOL PathIsDirectoryEmptyW(LPCWSTR);
275BOOL PathIsDirectoryW(LPCWSTR);
276BOOL PathIsFileSpecA(LPCSTR);
277BOOL PathIsFileSpecW(LPCWSTR);
278BOOL PathIsLFNFileSpecA(LPCSTR);
279BOOL PathIsLFNFileSpecW(LPCWSTR);
280BOOL PathIsNetworkPathA(LPCSTR);
281BOOL PathIsNetworkPathW(LPCWSTR);
282BOOL PathIsPrefixA(LPCSTR, LPCSTR);
283BOOL PathIsPrefixW(LPCWSTR, LPCWSTR);
284BOOL PathIsRelativeA(LPCSTR);
285BOOL PathIsRelativeW(LPCWSTR);
286BOOL PathIsRootA(LPCSTR);
287BOOL PathIsRootW(LPCWSTR);
288BOOL PathIsSameRootA(LPCSTR, LPCSTR);
289BOOL PathIsSameRootW(LPCWSTR, LPCWSTR);
290BOOL PathIsSystemFolderA(LPCSTR, DWORD);
291BOOL PathIsSystemFolderW(LPCWSTR, DWORD);
292BOOL PathIsUNCA(LPCSTR);
293BOOL PathIsUNCServerA(LPCSTR);
294BOOL PathIsUNCServerShareA(LPCSTR);
295BOOL PathIsUNCServerShareW(LPCWSTR);
296BOOL PathIsUNCServerW(LPCWSTR);
297BOOL PathIsUNCW(LPCWSTR);
298BOOL PathIsURLA(LPCSTR);
299BOOL PathIsURLW(LPCWSTR);
300BOOL PathMakePrettyA(LPSTR);
301BOOL PathMakePrettyW(LPWSTR);
302BOOL PathMakeSystemFolderA(LPSTR);
303BOOL PathMakeSystemFolderW(LPWSTR);
304BOOL PathMatchSpecA(LPCSTR, LPCSTR);
305BOOL PathMatchSpecW(LPCWSTR, LPCWSTR);
306int PathParseIconLocationA(LPSTR);
307int PathParseIconLocationW(LPWSTR);
308void PathQuoteSpacesA(LPSTR);
309void PathQuoteSpacesW(LPWSTR);
310BOOL PathRelativePathToA(LPSTR, LPCSTR, DWORD, LPCSTR, DWORD);
311BOOL PathRelativePathToW(LPWSTR, LPCWSTR, DWORD, LPCWSTR, DWORD);
312void PathRemoveArgsA(LPSTR);
313void PathRemoveArgsW(LPWSTR);
314LPSTR PathRemoveBackslashA(LPSTR);
315LPWSTR PathRemoveBackslashW(LPWSTR);
316void PathRemoveBlanksA(LPSTR);
317void PathRemoveBlanksW(LPWSTR);
318void PathRemoveExtensionA(LPSTR);
319void PathRemoveExtensionW(LPWSTR);
320BOOL PathRemoveFileSpecA(LPSTR);
321BOOL PathRemoveFileSpecW(LPWSTR);
322BOOL PathRenameExtensionA(LPSTR, LPCSTR);
323BOOL PathRenameExtensionW(LPWSTR, LPCWSTR);
324BOOL PathSearchAndQualifyA(LPCSTR, LPSTR, UINT);
325BOOL PathSearchAndQualifyW(LPCWSTR, LPWSTR, UINT);
326void PathSetDlgItemPathA(HWND, int, LPCSTR);
327void PathSetDlgItemPathW(HWND, int, LPCWSTR);
328LPSTR PathSkipRootA(LPCSTR);
329LPWSTR PathSkipRootW(LPCWSTR);
330void PathStripPathA(LPSTR);
331void PathStripPathW(LPWSTR);
332BOOL PathStripToRootA(LPSTR);
333BOOL PathStripToRootW(LPWSTR);
334void PathUndecorateA(LPSTR);
335void PathUndecorateW(LPWSTR);
336BOOL PathUnExpandEnvStringsA(LPCSTR, LPSTR, UINT);
337BOOL PathUnExpandEnvStringsW(LPCWSTR, LPWSTR, UINT);
338BOOL PathUnmakeSystemFolderA(LPSTR);
339BOOL PathUnmakeSystemFolderW(LPWSTR);
340void PathUnquoteSpacesA(LPSTR);
341void PathUnquoteSpacesW(LPWSTR);
342HRESULT SHAutoComplete(HWND, DWORD);
343BOOL SHCreateThread(LPTHREAD_START_ROUTINE, void*, DWORD, LPTHREAD_START_ROUTINE);
344DWORD SHCopyKeyA(HKEY, LPCSTR, HKEY, DWORD);
345DWORD SHCopyKeyW(HKEY, LPCWSTR, HKEY, DWORD);
346DWORD SHDeleteEmptyKeyA(HKEY, LPCSTR);
347DWORD SHDeleteEmptyKeyW(HKEY, LPCWSTR);
348DWORD SHDeleteKeyA(HKEY, LPCSTR);
349DWORD SHDeleteKeyW(HKEY, LPCWSTR);
350DWORD SHEnumKeyExA(HKEY, DWORD, LPSTR, LPDWORD);
351DWORD SHEnumKeyExW(HKEY, DWORD, LPWSTR, LPDWORD);
352DWORD SHQueryInfoKeyA(HKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD);
353DWORD SHQueryInfoKeyW(HKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD);
354DWORD SHQueryValueExA(HKEY, LPCSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD);
355DWORD SHQueryValueExW(HKEY, LPCWSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD);
356HRESULT SHGetThreadRef(IUnknown*);
357HRESULT SHSetThreadRef(IUnknown);
358BOOL SHSkipJunction(IBindCtx, const(CLSID)*);
359DWORD SHEnumValueA(HKEY, DWORD, LPSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD);
360DWORD SHEnumValueW(HKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD);
361DWORD SHGetValueA(HKEY, LPCSTR, LPCSTR, LPDWORD, LPVOID, LPDWORD);
362DWORD SHGetValueW(HKEY, LPCWSTR, LPCWSTR, LPDWORD, LPVOID, LPDWORD);
363DWORD SHSetValueA(HKEY, LPCSTR, LPCSTR, DWORD, LPCVOID, DWORD);
364DWORD SHSetValueW(HKEY, LPCWSTR, LPCWSTR, DWORD, LPCVOID, DWORD);
365DWORD SHDeleteValueA(HKEY, LPCSTR, LPCSTR);
366DWORD SHDeleteValueW(HKEY, LPCWSTR, LPCWSTR);
367HRESULT AssocCreate(CLSID, const(IID)* , const(LPVOID)*);
368HRESULT AssocQueryKeyA(ASSOCF, ASSOCKEY, LPCSTR, LPCSTR, HKEY*);
369HRESULT AssocQueryKeyW(ASSOCF, ASSOCKEY, LPCWSTR, LPCWSTR, HKEY*);
370HRESULT AssocQueryStringA(ASSOCF, ASSOCSTR, LPCSTR, LPCSTR, LPSTR, DWORD*);
371HRESULT AssocQueryStringByKeyA(ASSOCF, ASSOCSTR, HKEY, LPCSTR, LPSTR, DWORD*);
372HRESULT AssocQueryStringByKeyW(ASSOCF, ASSOCSTR, HKEY, LPCWSTR, LPWSTR, DWORD*);
373HRESULT AssocQueryStringW(ASSOCF, ASSOCSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD*);
374HRESULT UrlApplySchemeA(LPCSTR, LPSTR, LPDWORD, DWORD);
375HRESULT UrlApplySchemeW(LPCWSTR, LPWSTR, LPDWORD, DWORD);
376HRESULT UrlCanonicalizeA(LPCSTR, LPSTR, LPDWORD, DWORD);
377HRESULT UrlCanonicalizeW(LPCWSTR, LPWSTR, LPDWORD, DWORD);
378HRESULT UrlCombineA(LPCSTR, LPCSTR, LPSTR, LPDWORD, DWORD);
379HRESULT UrlCombineW(LPCWSTR, LPCWSTR, LPWSTR, LPDWORD, DWORD);
380int UrlCompareA(LPCSTR, LPCSTR, BOOL);
381int UrlCompareW(LPCWSTR, LPCWSTR, BOOL);
382HRESULT UrlCreateFromPathA(LPCSTR, LPSTR, LPDWORD, DWORD);
383HRESULT UrlCreateFromPathW(LPCWSTR, LPWSTR, LPDWORD, DWORD);
384HRESULT UrlEscapeA(LPCSTR, LPSTR, LPDWORD, DWORD);
385HRESULT UrlEscapeW(LPCWSTR, LPWSTR, LPDWORD, DWORD);
386LPCSTR UrlGetLocationA(LPCSTR);
387LPCWSTR UrlGetLocationW(LPCWSTR);
388HRESULT UrlGetPartA(LPCSTR, LPSTR, LPDWORD, DWORD, DWORD);
389HRESULT UrlGetPartW(LPCWSTR, LPWSTR, LPDWORD, DWORD, DWORD);
390HRESULT UrlHashA(LPCSTR, LPBYTE, DWORD);
391HRESULT UrlHashW(LPCWSTR, LPBYTE, DWORD);
392BOOL UrlIsA(LPCSTR, URLIS);
393BOOL UrlIsW(LPCWSTR, URLIS);
394BOOL UrlIsNoHistoryA(LPCSTR);
395BOOL UrlIsNoHistoryW(LPCWSTR);
396BOOL UrlIsOpaqueA(LPCSTR);
397BOOL UrlIsOpaqueW(LPCWSTR);
398HRESULT UrlUnescapeA(LPSTR, LPSTR, LPDWORD, DWORD);
399HRESULT UrlUnescapeW(LPWSTR, LPWSTR, LPDWORD, DWORD);
400DWORD SHRegCloseUSKey(HUSKEY);
401LONG SHRegCreateUSKeyA(LPCSTR, REGSAM, HUSKEY, PHUSKEY, DWORD);
402LONG SHRegCreateUSKeyW(LPCWSTR, REGSAM, HUSKEY, PHUSKEY, DWORD);
403LONG SHRegDeleteEmptyUSKeyA(HUSKEY, LPCSTR, SHREGDEL_FLAGS);
404LONG SHRegDeleteEmptyUSKeyW(HUSKEY, LPCWSTR, SHREGDEL_FLAGS);
405LONG SHRegDeleteUSValueA(HUSKEY, LPCSTR, SHREGDEL_FLAGS);
406LONG SHRegDeleteUSValueW(HUSKEY, LPCWSTR, SHREGDEL_FLAGS);
407HKEY SHRegDuplicateHKey(HKEY);
408DWORD SHRegEnumUSKeyA(HUSKEY, DWORD, LPSTR, LPDWORD, SHREGENUM_FLAGS);
409DWORD SHRegEnumUSKeyW(HUSKEY, DWORD, LPWSTR, LPDWORD, SHREGENUM_FLAGS);
410DWORD SHRegEnumUSValueA(HUSKEY, DWORD, LPSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD, SHREGENUM_FLAGS);
411DWORD SHRegEnumUSValueW(HUSKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD, SHREGENUM_FLAGS);
412BOOL SHRegGetBoolUSValueA(LPCSTR, LPCSTR, BOOL, BOOL);
413BOOL SHRegGetBoolUSValueW(LPCWSTR, LPCWSTR, BOOL, BOOL);
414DWORD SHRegGetPathA(HKEY, LPCSTR, LPCSTR, LPSTR, DWORD);
415DWORD SHRegGetPathW(HKEY, LPCWSTR, LPCWSTR, LPWSTR, DWORD);
416LONG SHRegGetUSValueA(LPCSTR, LPCSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD);
417LONG SHRegGetUSValueW(LPCWSTR, LPCWSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD);
418LONG SHRegOpenUSKeyA(LPCSTR, REGSAM, HUSKEY, PHUSKEY, BOOL);
419LONG SHRegOpenUSKeyW(LPCWSTR, REGSAM, HUSKEY, PHUSKEY, BOOL);
420DWORD SHRegQueryInfoUSKeyA(HUSKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD, SHREGENUM_FLAGS);
421DWORD SHRegQueryInfoUSKeyW(HUSKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD, SHREGENUM_FLAGS);
422LONG SHRegQueryUSValueA(HUSKEY, LPCSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD);
423LONG SHRegQueryUSValueW(HUSKEY, LPCWSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD);
424DWORD SHRegSetPathA(HKEY, LPCSTR, LPCSTR, LPCSTR, DWORD);
425DWORD SHRegSetPathW(HKEY, LPCWSTR, LPCWSTR, LPCWSTR, DWORD);
426LONG SHRegSetUSValueA(LPCSTR, LPCSTR, DWORD, LPVOID, DWORD, DWORD);
427LONG SHRegSetUSValueW(LPCWSTR, LPCWSTR, DWORD, LPVOID, DWORD, DWORD);
428LONG SHRegWriteUSValueA(HUSKEY, LPCSTR, DWORD, LPVOID, DWORD, DWORD);
429LONG SHRegWriteUSValueW(HUSKEY, LPCWSTR, DWORD, LPVOID, DWORD, DWORD);
430HRESULT HashData(LPBYTE, DWORD, LPBYTE, DWORD);
431HPALETTE SHCreateShellPalette(HDC);
432COLORREF ColorHLSToRGB(WORD, WORD, WORD);
433COLORREF ColorAdjustLuma(COLORREF, int, BOOL);
434void ColorRGBToHLS(COLORREF, WORD*, WORD*, WORD*);
435/** Should not be necessary for D?
436extern (C):
437int wnsprintfA(LPSTR, int, LPCSTR, ...);
438int wnsprintfW(LPWSTR, int, LPCWSTR, ...);
439extern (Windows):
440int wvnsprintfA(LPSTR, int, LPCSTR, va_list);
441int wvnsprintfW(LPWSTR, int, LPCWSTR, va_list);
442*/
443
444HINSTANCE MLLoadLibraryA(LPCSTR, HANDLE, DWORD, LPCSTR, BOOL);
445HINSTANCE MLLoadLibraryW(LPCWSTR, HANDLE, DWORD, LPCWSTR, BOOL);
446
447HRESULT DllInstall(BOOL, LPCWSTR);
448
449HRESULT StrRetToBufA(LPSTRRET, LPCITEMIDLIST, LPSTR, UINT);
450HRESULT StrRetToBufW(LPSTRRET, LPCITEMIDLIST, LPWSTR, UINT);
451HRESULT StrRetToStrA(LPSTRRET, LPCITEMIDLIST, LPSTR*);
452HRESULT StrRetToStrW(LPSTRRET, LPCITEMIDLIST, LPWSTR*);
453HRESULT SHCreateStreamOnFileA(LPCSTR, DWORD, IStream*);
454HRESULT SHCreateStreamOnFileW(LPCWSTR, DWORD, IStream*);
455IStream SHOpenRegStream2A(HKEY, LPCSTR, LPCSTR, DWORD);
456IStream SHOpenRegStream2W(HKEY, LPCWSTR, LPCWSTR, DWORD);
457IStream SHOpenRegStreamA(HKEY, LPCSTR, LPCSTR, DWORD);
458IStream SHOpenRegStreamW(HKEY, LPCWSTR, LPCWSTR, DWORD);
459
460version (Unicode) {
461alias ChrCmpIW ChrCmpI;
462alias IntlStrEqNW IntlStrEqN;
463alias IntlStrEqNIW IntlStrEqNI;
464alias IntlStrEqWorkerW IntlStrEqWorker;
465alias SHStrDupW SHStrDup;
466alias StrCatW StrCat;
467alias StrCatBuffW StrCatBuff;
468alias StrChrW StrChr;
469alias StrChrIW StrChrI;
470alias StrCmpW StrCmp;
471alias StrCmpIW StrCmpI;
472alias StrCmpNIW StrCmpNI;
473alias StrCmpNW StrCmpN;
474alias StrCpyNW StrCpyN;
475alias StrCpyW StrCpy;
476alias StrCSpnIW StrCSpnI;
477alias StrCSpnW StrCSpn;
478alias StrDupW StrDup;
479alias StrFormatByteSizeW StrFormatByteSize;
480alias StrFormatKBSizeW StrFormatKBSize;
481alias StrFromTimeIntervalW StrFromTimeInterval;
482alias StrIsIntlEqualW StrIsIntlEqual;
483alias StrNCatW StrNCat;
484alias StrPBrkW StrPBrk;
485alias StrRChrW StrRChr;
486alias StrRChrIW StrRChrI;
487alias StrRetToBufW StrRetToBuf;
488alias StrRetToStrW StrRetToStr;
489alias StrRStrIW StrRStrI;
490alias StrSpnW StrSpn;
491alias StrStrIW StrStrI;
492alias StrStrW StrStr;
493alias StrToIntW StrToInt;
494alias StrToIntExW StrToIntEx;
495alias StrTrimW StrTrim;
496alias PathAddBackslashW PathAddBackslash;
497alias PathAddExtensionW PathAddExtension;
498alias PathAppendW PathAppend;
499alias PathBuildRootW PathBuildRoot;
500alias PathCanonicalizeW PathCanonicalize;
501alias PathCombineW PathCombine;
502alias PathCommonPrefixW PathCommonPrefix;
503alias PathCompactPathW PathCompactPath;
504alias PathCompactPathExW PathCompactPathEx;
505alias PathCreateFromUrlW PathCreateFromUrl;
506alias PathFileExistsW PathFileExists;
507alias PathFindExtensionW PathFindExtension;
508alias PathFindFileNameW PathFindFileName;
509alias PathFindNextComponentW PathFindNextComponent;
510alias PathFindOnPathW PathFindOnPath;
511alias PathFindSuffixArrayW PathFindSuffixArray;
512alias PathGetArgsW PathGetArgs;
513alias PathGetCharTypeW PathGetCharType;
514alias PathGetDriveNumberW PathGetDriveNumber;
515alias PathIsContentTypeW PathIsContentType;
516alias PathIsDirectoryEmptyW PathIsDirectoryEmpty;
517alias PathIsDirectoryW PathIsDirectory;
518alias PathIsFileSpecW PathIsFileSpec;
519alias PathIsLFNFileSpecW PathIsLFNFileSpec;
520alias PathIsNetworkPathW PathIsNetworkPath;
521alias PathIsPrefixW PathIsPrefix;
522alias PathIsRelativeW PathIsRelative;
523alias PathIsRootW PathIsRoot;
524alias PathIsSameRootW PathIsSameRoot;
525alias PathIsSystemFolderW PathIsSystemFolder;
526alias PathIsUNCServerShareW PathIsUNCServerShare;
527alias PathIsUNCServerW PathIsUNCServer;
528alias PathIsUNCW PathIsUNC;
529alias PathIsURLW PathIsURL;
530alias PathMakePrettyW PathMakePretty;
531alias PathMakeSystemFolderW PathMakeSystemFolder;
532alias PathMatchSpecW PathMatchSpec;
533alias PathParseIconLocationW PathParseIconLocation;
534alias PathQuoteSpacesW PathQuoteSpaces;
535alias PathRelativePathToW PathRelativePathTo;
536alias PathRemoveArgsW PathRemoveArgs;
537alias PathRemoveBackslashW PathRemoveBackslash;
538alias PathRemoveBlanksW PathRemoveBlanks;
539alias PathRemoveExtensionW PathRemoveExtension;
540alias PathRemoveFileSpecW PathRemoveFileSpec;
541alias PathRenameExtensionW PathRenameExtension;
542alias PathSearchAndQualifyW PathSearchAndQualify;
543alias PathSetDlgItemPathW PathSetDlgItemPath;
544alias PathSkipRootW PathSkipRoot;
545alias PathStripPathW PathStripPath;
546alias PathStripToRootW PathStripToRoot;
547alias PathUndecorateW PathUndecorate;
548alias PathUnExpandEnvStringsW PathUnExpandEnvStrings;
549alias PathUnmakeSystemFolderW PathUnmakeSystemFolder;
550alias PathUnquoteSpacesW PathUnquoteSpaces;
551alias SHCreateStreamOnFileW SHCreateStreamOnFile;
552alias SHOpenRegStreamW SHOpenRegStream;
553alias SHOpenRegStream2W SHOpenRegStream2;
554alias SHCopyKeyW SHCopyKey;
555alias SHDeleteEmptyKeyW SHDeleteEmptyKey;
556alias SHDeleteKeyW SHDeleteKey;
557alias SHEnumKeyExW SHEnumKeyEx;
558alias SHQueryInfoKeyW SHQueryInfoKey;
559alias SHQueryValueExW SHQueryValueEx;
560alias SHEnumValueW SHEnumValue;
561alias SHGetValueW SHGetValue;
562alias SHSetValueW SHSetValue;
563alias SHDeleteValueW SHDeleteValue;
564alias AssocQueryKeyW AssocQueryKey;
565alias AssocQueryStringByKeyW AssocQueryStringByKey;
566alias AssocQueryStringW AssocQueryString;
567alias UrlApplySchemeW UrlApplyScheme;
568alias UrlCanonicalizeW UrlCanonicalize;
569alias UrlCombineW UrlCombine;
570alias UrlCompareW UrlCompare;
571alias UrlCreateFromPathW UrlCreateFromPath;
572alias UrlEscapeW UrlEscape;
573alias UrlGetLocationW UrlGetLocation;
574alias UrlGetPartW UrlGetPart;
575alias UrlHashW UrlHash;
576alias UrlIsW UrlIs;
577alias UrlIsFileUrlW UrlIsFileUrl;
578alias UrlIsNoHistoryW UrlIsNoHistory;
579alias UrlIsOpaqueW UrlIsOpaque;
580alias UrlUnescapeW UrlUnescape;
581alias UrlUnescapeInPlaceW UrlUnescapeInPlace;
582alias SHRegCreateUSKeyW SHRegCreateUSKey;
583alias SHRegDeleteEmptyUSKeyW SHRegDeleteEmptyUSKey;
584alias SHRegDeleteUSValueW SHRegDeleteUSValue;
585alias SHRegEnumUSKeyW SHRegEnumUSKey;
586alias SHRegEnumUSValueW SHRegEnumUSValue;
587alias SHRegGetBoolUSValueW SHRegGetBoolUSValue;
588alias SHRegGetPathW SHRegGetPath;
589alias SHRegGetUSValueW SHRegGetUSValue;
590alias SHRegOpenUSKeyW SHRegOpenUSKey;
591alias SHRegQueryInfoUSKeyW SHRegQueryInfoUSKey;
592alias SHRegQueryUSValueW SHRegQueryUSValue;
593alias SHRegSetPathW SHRegSetPath;
594alias SHRegSetUSValueW SHRegSetUSValue;
595alias SHRegWriteUSValueW SHRegWriteUSValue;
596//alias wnsprintfW wnsprintf;
597//alias wvnsprintfW wvnsprintf;
598} else {
599alias ChrCmpIA ChrCmpI;
600alias IntlStrEqNA IntlStrEqN;
601alias IntlStrEqNIA IntlStrEqNI;
602alias IntlStrEqWorkerA IntlStrEqWorker;
603alias SHStrDupA SHStrDup;
604alias StrCatBuffA StrCatBuff;
605alias StrChrA StrChr;
606alias StrChrIA StrChrI;
607alias StrCmpNIA StrCmpNI;
608alias StrCmpNA StrCmpN;
609alias StrCSpnIA StrCSpnI;
610alias StrCSpnA StrCSpn;
611alias StrDupA StrDup;
612alias StrFormatByteSizeA StrFormatByteSize;
613alias StrFormatKBSizeA StrFormatKBSize;
614alias StrFromTimeIntervalA StrFromTimeInterval;
615alias StrIsIntlEqualA StrIsIntlEqual;
616alias StrNCatA StrNCat;
617alias StrPBrkA StrPBrk;
618alias StrRChrA StrRChr;
619alias StrRChrIA StrRChrI;
620alias StrRetToBufA StrRetToBuf;
621alias StrRetToStrA StrRetToStr;
622alias StrRStrIA StrRStrI;
623alias StrSpnA StrSpn;
624alias StrStrIA StrStrI;
625alias StrStrA StrStr;
626alias StrToIntA StrToInt;
627alias StrToIntExA StrToIntEx;
628alias StrTrimA StrTrim;
629alias PathAddBackslashA PathAddBackslash;
630alias PathAddExtensionA PathAddExtension;
631alias PathAppendA PathAppend;
632alias PathBuildRootA PathBuildRoot;
633alias PathCanonicalizeA PathCanonicalize;
634alias PathCombineA PathCombine;
635alias PathCommonPrefixA PathCommonPrefix;
636alias PathCompactPathA PathCompactPath;
637alias PathCompactPathExA PathCompactPathEx;
638alias PathCreateFromUrlA PathCreateFromUrl;
639alias PathFileExistsA PathFileExists;
640alias PathFindExtensionA PathFindExtension;
641alias PathFindFileNameA PathFindFileName;
642alias PathFindNextComponentA PathFindNextComponent;
643alias PathFindOnPathA PathFindOnPath;
644alias PathFindSuffixArrayA PathFindSuffixArray;
645alias PathGetArgsA PathGetArgs;
646alias PathGetCharTypeA PathGetCharType;
647alias PathGetDriveNumberA PathGetDriveNumber;
648alias PathIsContentTypeA PathIsContentType;
649alias PathIsDirectoryEmptyA PathIsDirectoryEmpty;
650alias PathIsDirectoryA PathIsDirectory;
651alias PathIsFileSpecA PathIsFileSpec;
652alias PathIsLFNFileSpecA PathIsLFNFileSpec;
653alias PathIsNetworkPathA PathIsNetworkPath;
654alias PathIsPrefixA PathIsPrefix;
655alias PathIsRelativeA PathIsRelative;
656alias PathIsRootA PathIsRoot;
657alias PathIsSameRootA PathIsSameRoot;
658alias PathIsSystemFolderA PathIsSystemFolder;
659alias PathIsUNCServerShareA PathIsUNCServerShare;
660alias PathIsUNCServerA PathIsUNCServer;
661alias PathIsUNCA PathIsUNC;
662alias PathIsURLA PathIsURL;
663alias PathMakePrettyA PathMakePretty;
664alias PathMakeSystemFolderA PathMakeSystemFolder;
665alias PathMatchSpecA PathMatchSpec;
666alias PathParseIconLocationA PathParseIconLocation;
667alias PathQuoteSpacesA PathQuoteSpaces;
668alias PathRelativePathToA PathRelativePathTo;
669alias PathRemoveArgsA PathRemoveArgs;
670alias PathRemoveBackslashA PathRemoveBackslash;
671alias PathRemoveBlanksA PathRemoveBlanks;
672alias PathRemoveExtensionA PathRemoveExtension;
673alias PathRemoveFileSpecA PathRemoveFileSpec;
674alias PathRenameExtensionA PathRenameExtension;
675alias PathSearchAndQualifyA PathSearchAndQualify;
676alias PathSetDlgItemPathA PathSetDlgItemPath;
677alias PathSkipRootA PathSkipRoot;
678alias PathStripPathA PathStripPath;
679alias PathStripToRootA PathStripToRoot;
680alias PathUndecorateA PathUndecorate;
681alias PathUnExpandEnvStringsA PathUnExpandEnvStrings;
682alias PathUnmakeSystemFolderA PathUnmakeSystemFolder;
683alias PathUnquoteSpacesA PathUnquoteSpaces;
684alias SHCreateStreamOnFileA SHCreateStreamOnFile;
685alias SHOpenRegStreamA SHOpenRegStream;
686alias SHOpenRegStream2A SHOpenRegStream2;
687alias SHCopyKeyA SHCopyKey;
688alias SHDeleteEmptyKeyA SHDeleteEmptyKey;
689alias SHDeleteKeyA SHDeleteKey;
690alias SHEnumKeyExA SHEnumKeyEx;
691alias SHQueryInfoKeyA SHQueryInfoKey;
692alias SHQueryValueExA SHQueryValueEx;
693alias SHEnumValueA SHEnumValue;
694alias SHGetValueA SHGetValue;
695alias SHSetValueA SHSetValue;
696alias SHDeleteValueA SHDeleteValue;
697alias AssocQueryKeyA AssocQueryKey;
698alias AssocQueryStringByKeyA AssocQueryStringByKey;
699alias AssocQueryStringA AssocQueryString;
700alias UrlApplySchemeA UrlApplyScheme;
701alias UrlCanonicalizeA UrlCanonicalize;
702alias UrlCombineA UrlCombine;
703alias UrlCompareA UrlCompare;
704alias UrlCreateFromPathA UrlCreateFromPath;
705alias UrlEscapeA UrlEscape;
706alias UrlGetLocationA UrlGetLocation;
707alias UrlGetPartA UrlGetPart;
708alias UrlHashA UrlHash;
709alias UrlIsA UrlIs;
710alias UrlIsNoHistoryA UrlIsNoHistory;
711alias UrlIsOpaqueA UrlIsOpaque;
712alias UrlUnescapeA UrlUnescape;
713alias UrlUnescapeInPlaceA UrlUnescapeInPlace;
714alias SHRegCreateUSKeyA SHRegCreateUSKey;
715alias SHRegDeleteEmptyUSKeyA SHRegDeleteEmptyUSKey;
716alias SHRegDeleteUSValueA SHRegDeleteUSValue;
717alias SHRegEnumUSKeyA SHRegEnumUSKey;
718alias SHRegEnumUSValueA SHRegEnumUSValue;
719alias SHRegGetBoolUSValueA SHRegGetBoolUSValue;
720alias SHRegGetPathA SHRegGetPath;
721alias SHRegGetUSValueA SHRegGetUSValue;
722alias SHRegOpenUSKeyA SHRegOpenUSKey;
723alias SHRegQueryInfoUSKeyA SHRegQueryInfoUSKey;
724alias SHRegQueryUSValueA SHRegQueryUSValue;
725alias SHRegSetPathA SHRegSetPath;
726alias SHRegSetUSValueA SHRegSetUSValue;
727alias SHRegWriteUSValueA SHRegWriteUSValue;
728//alias wnsprintfA wnsprintf;
729//alias wvnsprintfA wvnsprintf;
730}
731
732alias StrToInt StrToLong;