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 "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"]]
228 &wine::declare("shlwapi",%$module_declarations);
229 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));