Handle generic column width changes.
[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     "SHCreateStreamOnFileA" => ["long",  ["str", "long", "ptr"]],
132     "SHCreateStreamOnFileEx" => ["long",  ["wstr", "long", "long", "long", "ptr", "ptr"]],
133     "SHCreateStreamOnFileW" => ["long",  ["wstr", "long", "ptr"]],
134     "SHDeleteEmptyKeyA" => ["long",  ["long", "str"]],
135     "SHDeleteEmptyKeyW" => ["long",  ["long", "wstr"]],
136     "SHDeleteKeyA" => ["long",  ["long", "str"]],
137     "SHDeleteKeyW" => ["long",  ["long", "wstr"]],
138     "SHDeleteOrphanKeyA" => ["long",  ["long", "str"]],
139     "SHDeleteOrphanKeyW" => ["long",  ["long", "wstr"]],
140     "SHDeleteValueA" => ["long",  ["long", "str", "str"]],
141     "SHDeleteValueW" => ["long",  ["long", "wstr", "wstr"]],
142     "SHEnumKeyExA" => ["long",  ["long", "long", "str", "ptr"]],
143     "SHEnumKeyExW" => ["long",  ["long", "long", "wstr", "ptr"]],
144     "SHEnumValueA" => ["long",  ["long", "long", "str", "ptr", "ptr", "ptr", "ptr"]],
145     "SHEnumValueW" => ["long",  ["long", "long", "wstr", "ptr", "ptr", "ptr", "ptr"]],
146     "SHGetInverseCMAP" => ["long",  ["ptr", "long"]],
147     "SHGetThreadRef" => ["long",  ["ptr"]],
148     "SHGetValueA" => ["long",  ["long", "str", "str", "ptr", "ptr", "ptr"]],
149     "SHGetValueW" => ["long",  ["long", "wstr", "wstr", "ptr", "ptr", "ptr"]],
150     "SHIsLowMemoryMachine" => ["long",  ["long"]],
151     "SHOpenRegStream2A" => ["ptr",  ["long", "str", "str", "long"]],
152     "SHOpenRegStream2W" => ["ptr",  ["long", "wstr", "wstr", "long"]],
153     "SHOpenRegStreamA" => ["ptr",  ["long", "str", "str", "long"]],
154     "SHOpenRegStreamW" => ["ptr",  ["long", "wstr", "wstr", "long"]],
155     "SHQueryInfoKeyA" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr"]],
156     "SHQueryInfoKeyW" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr"]],
157     "SHQueryValueExA" => ["long",  ["long", "str", "ptr", "ptr", "ptr", "ptr"]],
158     "SHQueryValueExW" => ["long",  ["long", "wstr", "ptr", "ptr", "ptr", "ptr"]],
159     "SHRegCloseUSKey" => ["long",  ["long"]],
160     "SHRegDuplicateHKey" => ["long",  ["long"]],
161     "SHRegEnumUSKeyA" => ["long",  ["long", "long", "str", "ptr", "long"]],
162     "SHRegEnumUSKeyW" => ["long",  ["long", "long", "wstr", "ptr", "long"]],
163     "SHRegGetBoolUSValueA" => ["long",  ["str", "str", "long", "long"]],
164     "SHRegGetBoolUSValueW" => ["long",  ["wstr", "wstr", "long", "long"]],
165     "SHRegGetPathA" => ["long",  ["long", "str", "str", "str", "long"]],
166     "SHRegGetPathW" => ["long",  ["long", "wstr", "wstr", "wstr", "long"]],
167     "SHRegGetUSValueA" => ["long",  ["str", "str", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
168     "SHRegGetUSValueW" => ["long",  ["wstr", "wstr", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
169     "SHRegOpenUSKeyA" => ["long",  ["str", "long", "long", "ptr", "long"]],
170     "SHRegOpenUSKeyW" => ["long",  ["wstr", "long", "long", "ptr", "long"]],
171     "SHRegQueryInfoUSKeyA" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr", "long"]],
172     "SHRegQueryInfoUSKeyW" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr", "long"]],
173     "SHRegQueryUSValueA" => ["long",  ["long", "str", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
174     "SHRegQueryUSValueW" => ["long",  ["long", "wstr", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
175     "SHRegSetPathA" => ["long",  ["long", "str", "str", "str", "long"]],
176     "SHRegSetPathW" => ["long",  ["long", "wstr", "wstr", "wstr", "long"]],
177     "SHRegWriteUSValueA" => ["long",  ["long", "str", "long", "ptr", "long", "long"]],
178     "SHRegWriteUSValueW" => ["long",  ["long", "wstr", "long", "ptr", "long", "long"]],
179     "SHReleaseThreadRef" => ["long",  ["undef"]],
180     "SHSetThreadRef" => ["long",  ["ptr"]],
181     "SHSetValueA" => ["long",  ["long", "str", "str", "long", "ptr", "long"]],
182     "SHSetValueW" => ["long",  ["long", "wstr", "wstr", "long", "ptr", "long"]],
183     "StrCSpnA" => ["long",  ["str", "str"]],
184     "StrCSpnIA" => ["long",  ["str", "str"]],
185     "StrCSpnIW" => ["long",  ["wstr", "wstr"]],
186     "StrCSpnW" => ["long",  ["wstr", "wstr"]],
187     "StrCatBuffA" => ["str",  ["str", "str", "long"]],
188     "StrCatBuffW" => ["wstr",  ["wstr", "wstr", "long"]],
189     "StrCatW" => ["wstr",  ["wstr", "wstr"]],
190     "StrChrA" => ["str",  ["str", "long"]],
191     "StrChrIA" => ["str",  ["str", "long"]],
192     "StrChrIW" => ["wstr",  ["wstr", "long"]],
193     "StrChrW" => ["wstr",  ["wstr", "long"]],
194     "StrCmpIW" => ["long",  ["wstr", "wstr"]],
195     "StrCmpNA" => ["long",  ["str", "str", "long"]],
196     "StrCmpNIA" => ["long",  ["str", "str", "long"]],
197     "StrCmpNIW" => ["long",  ["wstr", "wstr", "long"]],
198     "StrCmpNW" => ["long",  ["wstr", "wstr", "long"]],
199     "StrCmpW" => ["long",  ["wstr", "wstr"]],
200     "StrCpyNW" => ["wstr",  ["wstr", "wstr", "long"]],
201     "StrCpyW" => ["wstr",  ["wstr", "wstr"]],
202     "StrDupA" => ["str",  ["str"]],
203     "StrDupW" => ["wstr",  ["wstr"]],
204     "StrFormatByteSizeA" => ["str",  ["long", "str", "long"]],
205     "StrFormatByteSizeW" => ["wstr",  ["long", "wstr", "long"]],
206     "StrFormatKBSizeA" => ["str",  ["long", "long", "str", "long"]],
207     "StrFormatKBSizeW" => ["wstr",  ["long", "long", "wstr", "long"]],
208     "StrFromTimeIntervalA" => ["long",  ["str", "long", "long", "long"]],
209     "StrFromTimeIntervalW" => ["long",  ["wstr", "long", "long", "long"]],
210     "StrIsIntlEqualA" => ["long",  ["long", "str", "str", "long"]],
211     "StrIsIntlEqualW" => ["long",  ["long", "wstr", "wstr", "long"]],
212     "StrNCatA" => ["str",  ["str", "str", "long"]],
213     "StrNCatW" => ["wstr",  ["wstr", "wstr", "long"]],
214     "StrPBrkA" => ["str",  ["str", "str"]],
215     "StrPBrkW" => ["wstr",  ["wstr", "wstr"]],
216     "StrRChrA" => ["str",  ["str", "str", "long"]],
217     "StrRChrIA" => ["str",  ["str", "str", "long"]],
218     "StrRChrIW" => ["wstr",  ["wstr", "wstr", "long"]],
219     "StrRChrW" => ["wstr",  ["wstr", "wstr", "long"]],
220     "StrRStrIA" => ["str",  ["str", "str", "str"]],
221     "StrRStrIW" => ["wstr",  ["wstr", "wstr", "wstr"]],
222     "StrRetToBufA" => ["long",  ["ptr", "ptr", "str", "long"]],
223     "StrRetToBufW" => ["long",  ["ptr", "ptr", "wstr", "long"]],
224     "StrRetToStrA" => ["long",  ["ptr", "ptr", "ptr"]],
225     "StrRetToStrW" => ["long",  ["ptr", "ptr", "ptr"]],
226     "StrSpnA" => ["long",  ["str", "str"]],
227     "StrSpnW" => ["long",  ["wstr", "wstr"]],
228     "StrStrA" => ["str",  ["str", "str"]],
229     "StrStrIA" => ["str",  ["str", "str"]],
230     "StrStrIW" => ["wstr",  ["wstr", "wstr"]],
231     "StrStrW" => ["wstr",  ["wstr", "wstr"]],
232     "StrToIntA" => ["long",  ["str"]],
233     "StrToIntExA" => ["long",  ["str", "long", "ptr"]],
234     "StrToIntExW" => ["long",  ["wstr", "long", "ptr"]],
235     "StrToIntW" => ["long",  ["wstr"]],
236     "StrTrimA" => ["long",  ["str", "str"]],
237     "StrTrimW" => ["long",  ["wstr", "wstr"]],
238     "UrlApplySchemeW" => ["long",  ["wstr", "wstr", "ptr", "long"]],
239     "UrlCanonicalizeA" => ["long",  ["str", "str", "ptr", "long"]],
240     "UrlCanonicalizeW" => ["long",  ["wstr", "wstr", "ptr", "long"]],
241     "UrlCombineA" => ["long",  ["str", "str", "str", "ptr", "long"]],
242     "UrlCombineW" => ["long",  ["wstr", "wstr", "wstr", "ptr", "long"]],
243     "UrlCompareA" => ["long",  ["str", "str", "long"]],
244     "UrlCompareW" => ["long",  ["wstr", "wstr", "long"]],
245     "UrlEscapeA" => ["long",  ["str", "str", "ptr", "long"]],
246     "UrlEscapeW" => ["long",  ["wstr", "wstr", "ptr", "long"]],
247     "UrlGetLocationA" => ["str",  ["str"]],
248     "UrlGetLocationW" => ["wstr",  ["wstr"]],
249     "UrlGetPartA" => ["long",  ["str", "str", "ptr", "long", "long"]],
250     "UrlGetPartW" => ["long",  ["wstr", "wstr", "ptr", "long", "long"]],
251     "UrlHashA" => ["long",  ["str", "ptr", "long"]],
252     "UrlHashW" => ["long",  ["wstr", "ptr", "long"]],
253     "UrlIsA" => ["long",  ["str", "long"]],
254     "UrlIsNoHistoryA" => ["long",  ["str"]],
255     "UrlIsNoHistoryW" => ["long",  ["wstr"]],
256     "UrlIsOpaqueA" => ["long",  ["str"]],
257     "UrlIsOpaqueW" => ["long",  ["wstr"]],
258     "UrlIsW" => ["long",  ["wstr", "long"]],
259     "UrlUnescapeA" => ["long",  ["str", "str", "ptr", "long"]],
260     "UrlUnescapeW" => ["long",  ["wstr", "wstr", "ptr", "long"]],
261     "_SHGetInstanceExplorer" => ["long",  ["ptr"]],
262     "wvnsprintfA" => ["long",  ["str", "long", "str", "ptr"]],
263     "wvnsprintfW" => ["long",  ["wstr", "long", "wstr", "ptr"]]
264 };
265
266 &wine::declare("shlwapi",%$module_declarations);
267 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
268 1;