Added regedit unit test, a couple minor changes to regedit.
[wine] / programs / winetest / include / shlwapi.pm
1 package shlwapi;
2
3 use strict;
4
5 require Exporter;
6
7 use wine;
8 use vars qw(@ISA @EXPORT @EXPORT_OK);
9
10 @ISA = qw(Exporter);
11 @EXPORT = qw();
12 @EXPORT_OK = qw();
13
14 my $module_declarations = {
15     "ChrCmpIA" => ["long",  ["long", "long"]],
16     "ChrCmpIW" => ["long",  ["long", "long"]],
17     "ColorHLSToRGB" => ["long",  ["long", "long", "long"]],
18     "ColorRGBToHLS" => ["void",  ["long", "ptr", "ptr", "ptr"]],
19     "DllGetVersion" => ["long",  ["ptr"]],
20     "GetMenuPosFromID" => ["long",  ["long", "long"]],
21     "HashData" => ["long",  ["ptr", "long", "ptr", "long"]],
22     "PathAddBackslashA" => ["str",  ["str"]],
23     "PathAddBackslashW" => ["wstr",  ["wstr"]],
24     "PathAddExtensionA" => ["long",  ["str", "str"]],
25     "PathAddExtensionW" => ["long",  ["wstr", "wstr"]],
26     "PathAppendA" => ["long",  ["str", "str"]],
27     "PathAppendW" => ["long",  ["wstr", "wstr"]],
28     "PathBuildRootA" => ["str",  ["str", "long"]],
29     "PathBuildRootW" => ["wstr",  ["wstr", "long"]],
30     "PathCanonicalizeA" => ["long",  ["str", "str"]],
31     "PathCanonicalizeW" => ["long",  ["wstr", "wstr"]],
32     "PathCombineA" => ["str",  ["str", "str", "str"]],
33     "PathCombineW" => ["wstr",  ["wstr", "wstr", "wstr"]],
34     "PathCommonPrefixA" => ["long",  ["str", "str", "str"]],
35     "PathCommonPrefixW" => ["long",  ["wstr", "wstr", "wstr"]],
36     "PathCompactPathA" => ["long",  ["long", "str", "long"]],
37     "PathCompactPathExA" => ["long",  ["str", "str", "long", "long"]],
38     "PathCompactPathExW" => ["long",  ["wstr", "wstr", "long", "long"]],
39     "PathCompactPathW" => ["long",  ["long", "wstr", "long"]],
40     "PathCreateFromUrlA" => ["long",  ["str", "str", "ptr", "long"]],
41     "PathCreateFromUrlW" => ["long",  ["wstr", "wstr", "ptr", "long"]],
42     "PathFileExistsA" => ["long",  ["str"]],
43     "PathFileExistsW" => ["long",  ["wstr"]],
44     "PathFindExtensionA" => ["str",  ["str"]],
45     "PathFindExtensionW" => ["wstr",  ["wstr"]],
46     "PathFindFileNameA" => ["str",  ["str"]],
47     "PathFindFileNameW" => ["wstr",  ["wstr"]],
48     "PathFindNextComponentA" => ["str",  ["str"]],
49     "PathFindNextComponentW" => ["wstr",  ["wstr"]],
50     "PathFindOnPathA" => ["long",  ["str", "ptr"]],
51     "PathFindOnPathW" => ["long",  ["wstr", "ptr"]],
52     "PathFindSuffixArrayA" => ["long",  ["str", "ptr", "long"]],
53     "PathFindSuffixArrayW" => ["long",  ["wstr", "ptr", "long"]],
54     "PathGetArgsA" => ["str",  ["str"]],
55     "PathGetArgsW" => ["wstr",  ["wstr"]],
56     "PathGetCharTypeA" => ["long",  ["long"]],
57     "PathGetCharTypeW" => ["long",  ["long"]],
58     "PathGetDriveNumberA" => ["long",  ["str"]],
59     "PathGetDriveNumberW" => ["long",  ["wstr"]],
60     "PathIsContentTypeA" => ["long",  ["str", "str"]],
61     "PathIsContentTypeW" => ["long",  ["wstr", "wstr"]],
62     "PathIsDirectoryA" => ["long",  ["str"]],
63     "PathIsDirectoryEmptyA" => ["long",  ["str"]],
64     "PathIsDirectoryEmptyW" => ["long",  ["wstr"]],
65     "PathIsDirectoryW" => ["long",  ["wstr"]],
66     "PathIsFileSpecA" => ["long",  ["str"]],
67     "PathIsFileSpecW" => ["long",  ["wstr"]],
68     "PathIsLFNFileSpecA" => ["long",  ["str"]],
69     "PathIsLFNFileSpecW" => ["long",  ["wstr"]],
70     "PathIsNetworkPathA" => ["long",  ["str"]],
71     "PathIsNetworkPathW" => ["long",  ["wstr"]],
72     "PathIsPrefixA" => ["long",  ["str", "str"]],
73     "PathIsPrefixW" => ["long",  ["wstr", "wstr"]],
74     "PathIsRelativeA" => ["long",  ["str"]],
75     "PathIsRelativeW" => ["long",  ["wstr"]],
76     "PathIsRootA" => ["long",  ["str"]],
77     "PathIsRootW" => ["long",  ["wstr"]],
78     "PathIsSameRootA" => ["long",  ["str", "str"]],
79     "PathIsSameRootW" => ["long",  ["wstr", "wstr"]],
80     "PathIsSystemFolderA" => ["long",  ["str", "long"]],
81     "PathIsSystemFolderW" => ["long",  ["wstr", "long"]],
82     "PathIsUNCA" => ["long",  ["str"]],
83     "PathIsUNCServerA" => ["long",  ["str"]],
84     "PathIsUNCServerShareA" => ["long",  ["str"]],
85     "PathIsUNCServerShareW" => ["long",  ["wstr"]],
86     "PathIsUNCServerW" => ["long",  ["wstr"]],
87     "PathIsUNCW" => ["long",  ["wstr"]],
88     "PathIsURLA" => ["long",  ["str"]],
89     "PathIsURLW" => ["long",  ["wstr"]],
90     "PathMakePrettyA" => ["long",  ["str"]],
91     "PathMakePrettyW" => ["long",  ["wstr"]],
92     "PathMakeSystemFolderA" => ["long",  ["str"]],
93     "PathMakeSystemFolderW" => ["long",  ["wstr"]],
94     "PathMatchSpecA" => ["long",  ["str", "str"]],
95     "PathMatchSpecW" => ["long",  ["wstr", "wstr"]],
96     "PathParseIconLocationA" => ["long",  ["str"]],
97     "PathParseIconLocationW" => ["long",  ["wstr"]],
98     "PathQuoteSpacesA" => ["void",  ["str"]],
99     "PathQuoteSpacesW" => ["void",  ["wstr"]],
100     "PathRelativePathToA" => ["long",  ["str", "str", "long", "str", "long"]],
101     "PathRelativePathToW" => ["long",  ["wstr", "wstr", "long", "wstr", "long"]],
102     "PathRemoveArgsA" => ["void",  ["str"]],
103     "PathRemoveArgsW" => ["void",  ["wstr"]],
104     "PathRemoveBackslashA" => ["str",  ["str"]],
105     "PathRemoveBackslashW" => ["wstr",  ["wstr"]],
106     "PathRemoveBlanksA" => ["void",  ["str"]],
107     "PathRemoveBlanksW" => ["void",  ["wstr"]],
108     "PathRemoveExtensionA" => ["void",  ["str"]],
109     "PathRemoveExtensionW" => ["void",  ["wstr"]],
110     "PathRemoveFileSpecA" => ["long",  ["str"]],
111     "PathRemoveFileSpecW" => ["long",  ["wstr"]],
112     "PathRenameExtensionA" => ["long",  ["str", "str"]],
113     "PathRenameExtensionW" => ["long",  ["wstr", "wstr"]],
114     "PathSearchAndQualifyA" => ["long",  ["str", "str", "long"]],
115     "PathSearchAndQualifyW" => ["long",  ["wstr", "wstr", "long"]],
116     "PathSetDlgItemPathA" => ["void",  ["long", "long", "str"]],
117     "PathSetDlgItemPathW" => ["void",  ["long", "long", "wstr"]],
118     "PathSkipRootA" => ["str",  ["str"]],
119     "PathSkipRootW" => ["wstr",  ["wstr"]],
120     "PathStripPathA" => ["void",  ["str"]],
121     "PathStripPathW" => ["void",  ["wstr"]],
122     "PathStripToRootA" => ["long",  ["str"]],
123     "PathStripToRootW" => ["long",  ["wstr"]],
124     "PathUndecorateA" => ["void",  ["str"]],
125     "PathUndecorateW" => ["void",  ["wstr"]],
126     "PathUnmakeSystemFolderA" => ["long",  ["str"]],
127     "PathUnmakeSystemFolderW" => ["long",  ["wstr"]],
128     "PathUnquoteSpacesA" => ["void",  ["str"]],
129     "PathUnquoteSpacesW" => ["void",  ["wstr"]],
130     "SHCreateShellPalette" => ["long",  ["long"]],
131     "SHDeleteEmptyKeyA" => ["long",  ["long", "str"]],
132     "SHDeleteEmptyKeyW" => ["long",  ["long", "wstr"]],
133     "SHDeleteKeyA" => ["long",  ["long", "str"]],
134     "SHDeleteKeyW" => ["long",  ["long", "wstr"]],
135     "SHDeleteOrphanKeyA" => ["long",  ["long", "str"]],
136     "SHDeleteOrphanKeyW" => ["long",  ["long", "wstr"]],
137     "SHDeleteValueA" => ["long",  ["long", "str", "str"]],
138     "SHDeleteValueW" => ["long",  ["long", "wstr", "wstr"]],
139     "SHEnumKeyExA" => ["long",  ["long", "long", "str", "ptr"]],
140     "SHEnumKeyExW" => ["long",  ["long", "long", "wstr", "ptr"]],
141     "SHEnumValueA" => ["long",  ["long", "long", "str", "ptr", "ptr", "ptr", "ptr"]],
142     "SHEnumValueW" => ["long",  ["long", "long", "wstr", "ptr", "ptr", "ptr", "ptr"]],
143     "SHGetInverseCMAP" => ["long",  ["ptr", "long"]],
144     "SHGetThreadRef" => ["long",  ["ptr"]],
145     "SHGetValueA" => ["long",  ["long", "str", "str", "ptr", "ptr", "ptr"]],
146     "SHGetValueW" => ["long",  ["long", "wstr", "wstr", "ptr", "ptr", "ptr"]],
147     "SHIsLowMemoryMachine" => ["long",  ["long"]],
148     "SHOpenRegStream2A" => ["ptr",  ["long", "str", "str", "long"]],
149     "SHOpenRegStream2W" => ["ptr",  ["long", "wstr", "wstr", "long"]],
150     "SHOpenRegStreamA" => ["ptr",  ["long", "str", "str", "long"]],
151     "SHOpenRegStreamW" => ["ptr",  ["long", "wstr", "wstr", "long"]],
152     "SHQueryInfoKeyA" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr"]],
153     "SHQueryInfoKeyW" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr"]],
154     "SHQueryValueExA" => ["long",  ["long", "str", "ptr", "ptr", "ptr", "ptr"]],
155     "SHQueryValueExW" => ["long",  ["long", "wstr", "ptr", "ptr", "ptr", "ptr"]],
156     "SHRegCloseUSKey" => ["long",  ["long"]],
157     "SHRegDuplicateHKey" => ["long",  ["long"]],
158     "SHRegEnumUSKeyA" => ["long",  ["long", "long", "str", "ptr", "long"]],
159     "SHRegEnumUSKeyW" => ["long",  ["long", "long", "wstr", "ptr", "long"]],
160     "SHRegGetBoolUSValueA" => ["long",  ["str", "str", "long", "long"]],
161     "SHRegGetBoolUSValueW" => ["long",  ["wstr", "wstr", "long", "long"]],
162     "SHRegGetPathA" => ["long",  ["long", "str", "str", "str", "long"]],
163     "SHRegGetPathW" => ["long",  ["long", "wstr", "wstr", "wstr", "long"]],
164     "SHRegGetUSValueA" => ["long",  ["str", "str", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
165     "SHRegGetUSValueW" => ["long",  ["wstr", "wstr", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
166     "SHRegOpenUSKeyA" => ["long",  ["str", "long", "long", "ptr", "long"]],
167     "SHRegOpenUSKeyW" => ["long",  ["wstr", "long", "long", "ptr", "long"]],
168     "SHRegQueryInfoUSKeyA" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr", "long"]],
169     "SHRegQueryInfoUSKeyW" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr", "long"]],
170     "SHRegQueryUSValueA" => ["long",  ["long", "str", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
171     "SHRegQueryUSValueW" => ["long",  ["long", "wstr", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
172     "SHRegSetPathA" => ["long",  ["long", "str", "str", "str", "long"]],
173     "SHRegSetPathW" => ["long",  ["long", "wstr", "wstr", "wstr", "long"]],
174     "SHRegWriteUSValueA" => ["long",  ["long", "str", "long", "ptr", "long", "long"]],
175     "SHRegWriteUSValueW" => ["long",  ["long", "wstr", "long", "ptr", "long", "long"]],
176     "SHSetThreadRef" => ["long",  ["ptr"]],
177     "SHSetValueA" => ["long",  ["long", "str", "str", "long", "ptr", "long"]],
178     "SHSetValueW" => ["long",  ["long", "wstr", "wstr", "long", "ptr", "long"]],
179     "StrCSpnA" => ["long",  ["str", "str"]],
180     "StrCSpnW" => ["long",  ["wstr", "wstr"]],
181     "StrCatBuffA" => ["str",  ["str", "str", "long"]],
182     "StrCatBuffW" => ["wstr",  ["wstr", "wstr", "long"]],
183     "StrCatW" => ["wstr",  ["wstr", "wstr"]],
184     "StrChrA" => ["str",  ["str", "long"]],
185     "StrChrW" => ["wstr",  ["wstr", "long"]],
186     "StrCmpIW" => ["long",  ["wstr", "wstr"]],
187     "StrCmpNA" => ["long",  ["str", "str", "long"]],
188     "StrCmpNIA" => ["long",  ["str", "str", "long"]],
189     "StrCmpNIW" => ["long",  ["wstr", "wstr", "long"]],
190     "StrCmpNW" => ["long",  ["wstr", "wstr", "long"]],
191     "StrCmpW" => ["long",  ["wstr", "wstr"]],
192     "StrCpyNW" => ["wstr",  ["wstr", "wstr", "long"]],
193     "StrCpyW" => ["wstr",  ["wstr", "wstr"]],
194     "StrDupA" => ["str",  ["str"]],
195     "StrDupW" => ["wstr",  ["wstr"]],
196     "StrFormatByteSizeA" => ["str",  ["long", "str", "long"]],
197     "StrFormatByteSizeW" => ["wstr",  ["long", "wstr", "long"]],
198     "StrNCatA" => ["str",  ["str", "str", "long"]],
199     "StrNCatW" => ["wstr",  ["wstr", "wstr", "long"]],
200     "StrRChrA" => ["str",  ["str", "str", "long"]],
201     "StrRChrIA" => ["str",  ["str", "str", "long"]],
202     "StrRChrIW" => ["wstr",  ["wstr", "wstr", "long"]],
203     "StrRChrW" => ["wstr",  ["wstr", "wstr", "long"]],
204     "StrRetToBufA" => ["long",  ["ptr", "ptr", "str", "long"]],
205     "StrRetToBufW" => ["long",  ["ptr", "ptr", "wstr", "long"]],
206     "StrStrA" => ["str",  ["str", "str"]],
207     "StrStrIA" => ["str",  ["str", "str"]],
208     "StrStrIW" => ["wstr",  ["wstr", "wstr"]],
209     "StrStrW" => ["wstr",  ["wstr", "wstr"]],
210     "StrToIntA" => ["long",  ["str"]],
211     "StrToIntExA" => ["long",  ["str", "long", "ptr"]],
212     "StrToIntExW" => ["long",  ["wstr", "long", "ptr"]],
213     "StrToIntW" => ["long",  ["wstr"]],
214     "StrTrimA" => ["long",  ["str", "str"]],
215     "UrlApplySchemeW" => ["long",  ["wstr", "wstr", "ptr", "long"]],
216     "UrlCanonicalizeA" => ["long",  ["str", "str", "ptr", "long"]],
217     "UrlCanonicalizeW" => ["long",  ["wstr", "wstr", "ptr", "long"]],
218     "UrlCombineA" => ["long",  ["str", "str", "str", "ptr", "long"]],
219     "UrlCombineW" => ["long",  ["wstr", "wstr", "wstr", "ptr", "long"]],
220     "UrlCompareA" => ["long",  ["str", "str", "long"]],
221     "UrlCompareW" => ["long",  ["wstr", "wstr", "long"]],
222     "UrlEscapeA" => ["long",  ["str", "str", "ptr", "long"]],
223     "UrlEscapeW" => ["long",  ["wstr", "wstr", "ptr", "long"]],
224     "UrlGetLocationA" => ["str",  ["str"]],
225     "UrlGetLocationW" => ["wstr",  ["wstr"]],
226     "UrlGetPartA" => ["long",  ["str", "str", "ptr", "long", "long"]],
227     "UrlGetPartW" => ["long",  ["wstr", "wstr", "ptr", "long", "long"]],
228     "UrlHashA" => ["long",  ["str", "ptr", "long"]],
229     "UrlIsA" => ["long",  ["str", "long"]],
230     "UrlIsNoHistoryA" => ["long",  ["str"]],
231     "UrlIsNoHistoryW" => ["long",  ["wstr"]],
232     "UrlIsOpaqueA" => ["long",  ["str"]],
233     "UrlIsOpaqueW" => ["long",  ["wstr"]],
234     "UrlIsW" => ["long",  ["wstr", "long"]],
235     "UrlUnescapeA" => ["long",  ["str", "str", "ptr", "long"]],
236     "UrlUnescapeW" => ["long",  ["wstr", "wstr", "ptr", "long"]],
237     "_SHGetInstanceExplorer\@4" => ["long",  ["ptr"]]
238 };
239
240 &wine::declare("shlwapi",%$module_declarations);
241 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
242 1;