Changed the GDI driver interface to pass an opaque PHYSDEV pointer
[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     "PathGetArgsA" => ["str",  ["str"]],
53     "PathGetArgsW" => ["wstr",  ["wstr"]],
54     "PathGetCharTypeA" => ["long",  ["long"]],
55     "PathGetCharTypeW" => ["long",  ["long"]],
56     "PathGetDriveNumberA" => ["long",  ["str"]],
57     "PathGetDriveNumberW" => ["long",  ["wstr"]],
58     "PathIsContentTypeA" => ["long",  ["str", "str"]],
59     "PathIsContentTypeW" => ["long",  ["wstr", "wstr"]],
60     "PathIsDirectoryA" => ["long",  ["str"]],
61     "PathIsDirectoryW" => ["long",  ["wstr"]],
62     "PathIsFileSpecA" => ["long",  ["str"]],
63     "PathIsFileSpecW" => ["long",  ["wstr"]],
64     "PathIsPrefixA" => ["long",  ["str", "str"]],
65     "PathIsPrefixW" => ["long",  ["wstr", "wstr"]],
66     "PathIsRelativeA" => ["long",  ["str"]],
67     "PathIsRelativeW" => ["long",  ["wstr"]],
68     "PathIsRootA" => ["long",  ["str"]],
69     "PathIsRootW" => ["long",  ["wstr"]],
70     "PathIsSameRootA" => ["long",  ["str", "str"]],
71     "PathIsSameRootW" => ["long",  ["wstr", "wstr"]],
72     "PathIsSystemFolderA" => ["long",  ["str", "long"]],
73     "PathIsSystemFolderW" => ["long",  ["wstr", "long"]],
74     "PathIsUNCA" => ["long",  ["str"]],
75     "PathIsUNCServerA" => ["long",  ["str"]],
76     "PathIsUNCServerShareA" => ["long",  ["str"]],
77     "PathIsUNCServerShareW" => ["long",  ["wstr"]],
78     "PathIsUNCServerW" => ["long",  ["wstr"]],
79     "PathIsUNCW" => ["long",  ["wstr"]],
80     "PathIsURLA" => ["long",  ["str"]],
81     "PathIsURLW" => ["long",  ["wstr"]],
82     "PathMakePrettyA" => ["long",  ["str"]],
83     "PathMakePrettyW" => ["long",  ["wstr"]],
84     "PathMakeSystemFolderA" => ["long",  ["str"]],
85     "PathMakeSystemFolderW" => ["long",  ["wstr"]],
86     "PathMatchSpecA" => ["long",  ["str", "str"]],
87     "PathMatchSpecW" => ["long",  ["wstr", "wstr"]],
88     "PathParseIconLocationA" => ["long",  ["str"]],
89     "PathParseIconLocationW" => ["long",  ["wstr"]],
90     "PathQuoteSpacesA" => ["str",  ["str"]],
91     "PathQuoteSpacesW" => ["wstr",  ["wstr"]],
92     "PathRelativePathToA" => ["long",  ["str", "str", "long", "str", "long"]],
93     "PathRelativePathToW" => ["long",  ["wstr", "wstr", "long", "wstr", "long"]],
94     "PathRemoveArgsA" => ["void",  ["str"]],
95     "PathRemoveArgsW" => ["void",  ["wstr"]],
96     "PathRemoveBackslashA" => ["str",  ["str"]],
97     "PathRemoveBackslashW" => ["wstr",  ["wstr"]],
98     "PathRemoveBlanksA" => ["void",  ["str"]],
99     "PathRemoveBlanksW" => ["void",  ["wstr"]],
100     "PathRemoveExtensionA" => ["void",  ["str"]],
101     "PathRemoveExtensionW" => ["void",  ["wstr"]],
102     "PathRemoveFileSpecA" => ["long",  ["str"]],
103     "PathRemoveFileSpecW" => ["long",  ["wstr"]],
104     "PathRenameExtensionA" => ["long",  ["str", "str"]],
105     "PathRenameExtensionW" => ["long",  ["wstr", "wstr"]],
106     "PathSearchAndQualifyA" => ["long",  ["str", "str", "long"]],
107     "PathSearchAndQualifyW" => ["long",  ["wstr", "wstr", "long"]],
108     "PathSetDlgItemPathA" => ["long",  ["long", "long", "str"]],
109     "PathSetDlgItemPathW" => ["long",  ["long", "long", "wstr"]],
110     "PathSkipRootA" => ["str",  ["str"]],
111     "PathSkipRootW" => ["wstr",  ["wstr"]],
112     "PathStripPathA" => ["void",  ["str"]],
113     "PathStripPathW" => ["void",  ["wstr"]],
114     "PathStripToRootA" => ["long",  ["str"]],
115     "PathStripToRootW" => ["long",  ["wstr"]],
116     "PathUnmakeSystemFolderA" => ["long",  ["str"]],
117     "PathUnmakeSystemFolderW" => ["long",  ["wstr"]],
118     "PathUnquoteSpacesA" => ["void",  ["str"]],
119     "PathUnquoteSpacesW" => ["void",  ["wstr"]],
120     "SHCreateShellPalette" => ["long",  ["long"]],
121     "SHDeleteEmptyKeyA" => ["long",  ["long", "str"]],
122     "SHDeleteEmptyKeyW" => ["long",  ["long", "wstr"]],
123     "SHDeleteKeyA" => ["long",  ["long", "str"]],
124     "SHDeleteKeyW" => ["long",  ["long", "wstr"]],
125     "SHDeleteOrphanKeyA" => ["long",  ["long", "str"]],
126     "SHDeleteOrphanKeyW" => ["long",  ["long", "wstr"]],
127     "SHDeleteValueA" => ["long",  ["long", "str", "str"]],
128     "SHDeleteValueW" => ["long",  ["long", "wstr", "wstr"]],
129     "SHEnumKeyExA" => ["long",  ["long", "long", "str", "ptr"]],
130     "SHEnumKeyExW" => ["long",  ["long", "long", "wstr", "ptr"]],
131     "SHEnumValueA" => ["long",  ["long", "long", "str", "ptr", "ptr", "ptr", "ptr"]],
132     "SHEnumValueW" => ["long",  ["long", "long", "wstr", "ptr", "ptr", "ptr", "ptr"]],
133     "SHGetInverseCMAP" => ["long",  ["ptr", "long"]],
134     "SHGetValueA" => ["long",  ["long", "str", "str", "ptr", "ptr", "ptr"]],
135     "SHGetValueW" => ["long",  ["long", "wstr", "wstr", "ptr", "ptr", "ptr"]],
136     "SHIsLowMemoryMachine" => ["long",  ["long"]],
137     "SHOpenRegStream2A" => ["ptr",  ["long", "str", "str", "long"]],
138     "SHOpenRegStream2W" => ["ptr",  ["long", "wstr", "wstr", "long"]],
139     "SHOpenRegStreamA" => ["ptr",  ["long", "str", "str", "long"]],
140     "SHOpenRegStreamW" => ["ptr",  ["long", "wstr", "wstr", "long"]],
141     "SHQueryInfoKeyA" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr"]],
142     "SHQueryInfoKeyW" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr"]],
143     "SHQueryValueExA" => ["long",  ["long", "str", "ptr", "ptr", "ptr", "ptr"]],
144     "SHQueryValueExW" => ["long",  ["long", "wstr", "ptr", "ptr", "ptr", "ptr"]],
145     "SHRegCloseUSKey" => ["long",  ["long"]],
146     "SHRegDuplicateHKey" => ["long",  ["long"]],
147     "SHRegEnumUSKeyA" => ["long",  ["long", "long", "str", "ptr", "long"]],
148     "SHRegEnumUSKeyW" => ["long",  ["long", "long", "wstr", "ptr", "long"]],
149     "SHRegGetBoolUSValueA" => ["long",  ["str", "str", "long", "long"]],
150     "SHRegGetBoolUSValueW" => ["long",  ["wstr", "wstr", "long", "long"]],
151     "SHRegGetPathA" => ["long",  ["long", "str", "str", "str", "long"]],
152     "SHRegGetPathW" => ["long",  ["long", "wstr", "wstr", "wstr", "long"]],
153     "SHRegGetUSValueA" => ["long",  ["str", "str", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
154     "SHRegGetUSValueW" => ["long",  ["wstr", "wstr", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
155     "SHRegOpenUSKeyA" => ["long",  ["str", "long", "long", "ptr", "long"]],
156     "SHRegOpenUSKeyW" => ["long",  ["wstr", "long", "long", "ptr", "long"]],
157     "SHRegQueryInfoUSKeyA" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr", "long"]],
158     "SHRegQueryInfoUSKeyW" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr", "long"]],
159     "SHRegQueryUSValueA" => ["long",  ["long", "str", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
160     "SHRegQueryUSValueW" => ["long",  ["long", "wstr", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
161     "SHRegSetPathA" => ["long",  ["long", "str", "str", "str", "long"]],
162     "SHRegSetPathW" => ["long",  ["long", "wstr", "wstr", "wstr", "long"]],
163     "SHRegWriteUSValueA" => ["long",  ["long", "str", "long", "ptr", "long", "long"]],
164     "SHRegWriteUSValueW" => ["long",  ["long", "wstr", "long", "ptr", "long", "long"]],
165     "SHSetValueA" => ["long",  ["long", "str", "str", "long", "ptr", "long"]],
166     "SHSetValueW" => ["long",  ["long", "wstr", "wstr", "long", "ptr", "long"]],
167     "StrCSpnA" => ["long",  ["str", "str"]],
168     "StrCSpnW" => ["long",  ["wstr", "wstr"]],
169     "StrCatBuffA" => ["str",  ["str", "str", "long"]],
170     "StrCatBuffW" => ["wstr",  ["wstr", "wstr", "long"]],
171     "StrCatW" => ["wstr",  ["wstr", "wstr"]],
172     "StrChrA" => ["str",  ["str", "long"]],
173     "StrChrW" => ["wstr",  ["wstr", "long"]],
174     "StrCmpIW" => ["long",  ["wstr", "wstr"]],
175     "StrCmpNA" => ["long",  ["str", "str", "long"]],
176     "StrCmpNIA" => ["long",  ["str", "str", "long"]],
177     "StrCmpNIW" => ["long",  ["wstr", "wstr", "long"]],
178     "StrCmpNW" => ["long",  ["wstr", "wstr", "long"]],
179     "StrCmpW" => ["long",  ["wstr", "wstr"]],
180     "StrCpyNW" => ["wstr",  ["wstr", "wstr", "long"]],
181     "StrCpyW" => ["wstr",  ["wstr", "wstr"]],
182     "StrDupA" => ["str",  ["str"]],
183     "StrDupW" => ["wstr",  ["wstr"]],
184     "StrFormatByteSizeA" => ["str",  ["long", "str", "long"]],
185     "StrFormatByteSizeW" => ["wstr",  ["long", "wstr", "long"]],
186     "StrNCatA" => ["str",  ["str", "str", "long"]],
187     "StrNCatW" => ["wstr",  ["wstr", "wstr", "long"]],
188     "StrRChrA" => ["str",  ["str", "str", "long"]],
189     "StrRChrIA" => ["str",  ["str", "str", "long"]],
190     "StrRChrIW" => ["wstr",  ["wstr", "wstr", "long"]],
191     "StrRChrW" => ["wstr",  ["wstr", "wstr", "long"]],
192     "StrRetToBufA" => ["long",  ["ptr", "ptr", "str", "long"]],
193     "StrRetToBufW" => ["long",  ["ptr", "ptr", "wstr", "long"]],
194     "StrStrA" => ["str",  ["str", "str"]],
195     "StrStrIA" => ["str",  ["str", "str"]],
196     "StrStrIW" => ["wstr",  ["wstr", "wstr"]],
197     "StrStrW" => ["wstr",  ["wstr", "wstr"]],
198     "StrToIntA" => ["long",  ["str"]],
199     "StrToIntExA" => ["long",  ["str", "long", "ptr"]],
200     "StrToIntExW" => ["long",  ["wstr", "long", "ptr"]],
201     "StrToIntW" => ["long",  ["wstr"]],
202     "StrTrimA" => ["long",  ["str", "str"]],
203     "UrlApplySchemeW" => ["long",  ["wstr", "wstr", "ptr", "long"]],
204     "UrlCanonicalizeA" => ["long",  ["str", "str", "ptr", "long"]],
205     "UrlCanonicalizeW" => ["long",  ["wstr", "wstr", "ptr", "long"]],
206     "UrlCombineA" => ["long",  ["str", "str", "str", "ptr", "long"]],
207     "UrlCombineW" => ["long",  ["wstr", "wstr", "wstr", "ptr", "long"]],
208     "UrlCompareA" => ["long",  ["str", "str", "long"]],
209     "UrlCompareW" => ["long",  ["wstr", "wstr", "long"]],
210     "UrlEscapeA" => ["long",  ["str", "str", "ptr", "long"]],
211     "UrlEscapeW" => ["long",  ["wstr", "wstr", "ptr", "long"]],
212     "UrlGetLocationA" => ["str",  ["str"]],
213     "UrlGetLocationW" => ["wstr",  ["wstr"]],
214     "UrlGetPartA" => ["long",  ["str", "str", "ptr", "long", "long"]],
215     "UrlGetPartW" => ["long",  ["wstr", "wstr", "ptr", "long", "long"]],
216     "UrlHashA" => ["long",  ["str", "ptr", "long"]],
217     "UrlIsA" => ["long",  ["str", "long"]],
218     "UrlIsNoHistoryA" => ["long",  ["str"]],
219     "UrlIsNoHistoryW" => ["long",  ["wstr"]],
220     "UrlIsOpaqueA" => ["long",  ["str"]],
221     "UrlIsOpaqueW" => ["long",  ["wstr"]],
222     "UrlIsW" => ["long",  ["wstr", "long"]],
223     "UrlUnescapeA" => ["long",  ["str", "str", "ptr", "long"]],
224     "UrlUnescapeW" => ["long",  ["wstr", "wstr", "ptr", "long"]],
225     "_SHGetInstanceExplorer\@4" => ["long",  ["ptr"]]
226 };
227
228 &wine::declare("shlwapi",%$module_declarations);
229 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
230 1;