8 use vars qw(@ISA @EXPORT @EXPORT_OK);
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"]]
240 &wine::declare("shlwapi",%$module_declarations);
241 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));