8 use vars qw(@ISA @EXPORT @EXPORT_OK);
14 my $module_declarations = {
15 "ActivateKeyboardLayout" => ["long", ["long", "long"]],
16 "AdjustWindowRect" => ["long", ["ptr", "long", "long"]],
17 "AdjustWindowRectEx" => ["long", ["ptr", "long", "long", "long"]],
18 "AllowSetForegroundWindow" => ["long", ["long"]],
19 "AnimateWindow" => ["long", ["long", "long", "long"]],
20 "AnyPopup" => ["long", []],
21 "AppendMenuA" => ["long", ["long", "long", "long", "str"]],
22 "AppendMenuW" => ["long", ["long", "long", "long", "wstr"]],
23 "ArrangeIconicWindows" => ["long", ["long"]],
24 "AttachThreadInput" => ["long", ["long", "long", "long"]],
25 "BeginDeferWindowPos" => ["long", ["long"]],
26 "BeginPaint" => ["long", ["long", "ptr"]],
27 "BringWindowToTop" => ["long", ["long"]],
28 "BroadcastSystemMessage" => ["long", ["long", "ptr", "long", "long", "long"]],
29 "CalcChildScroll" => ["void", ["long", "long"]],
30 "CallMsgFilterA" => ["long", ["ptr", "long"]],
31 "CallMsgFilterW" => ["long", ["ptr", "long"]],
32 "CallNextHookEx" => ["long", ["long", "long", "long", "long"]],
33 "CallNextHookEx16" => ["long", ["long", "long", "long", "long"]],
34 "CallWindowProc16" => ["long", ["ptr", "long", "long", "long", "long"]],
35 "CallWindowProcA" => ["long", ["ptr", "long", "long", "long", "long"]],
36 "CallWindowProcW" => ["long", ["ptr", "long", "long", "long", "long"]],
37 "CascadeWindows" => ["long", ["long", "long", "ptr", "long", "ptr"]],
38 "ChangeClipboardChain" => ["long", ["long", "long"]],
39 "ChangeDisplaySettingsA" => ["long", ["ptr", "long"]],
40 "ChangeDisplaySettingsExA" => ["long", ["str", "ptr", "long", "long", "long"]],
41 "ChangeMenuA" => ["long", ["long", "long", "str", "long", "long"]],
42 "ChangeMenuW" => ["long", ["long", "long", "wstr", "long", "long"]],
43 "CharLowerA" => ["str", ["str"]],
44 "CharLowerBuffA" => ["long", ["str", "long"]],
45 "CharLowerBuffW" => ["long", ["wstr", "long"]],
46 "CharLowerW" => ["wstr", ["wstr"]],
47 "CharNextA" => ["str", ["str"]],
48 "CharNextExA" => ["str", ["long", "str", "long"]],
49 "CharNextExW" => ["wstr", ["long", "wstr", "long"]],
50 "CharNextW" => ["wstr", ["wstr"]],
51 "CharPrevA" => ["str", ["str", "str"]],
52 "CharPrevExA" => ["str", ["long", "str", "str", "long"]],
53 "CharPrevExW" => ["str", ["long", "wstr", "wstr", "long"]],
54 "CharPrevW" => ["wstr", ["wstr", "wstr"]],
55 "CharToOemA" => ["long", ["str", "str"]],
56 "CharToOemBuffA" => ["long", ["str", "str", "long"]],
57 "CharToOemBuffW" => ["long", ["wstr", "str", "long"]],
58 "CharToOemW" => ["long", ["wstr", "str"]],
59 "CharUpperA" => ["str", ["str"]],
60 "CharUpperBuffA" => ["long", ["str", "long"]],
61 "CharUpperBuffW" => ["long", ["wstr", "long"]],
62 "CharUpperW" => ["wstr", ["wstr"]],
63 "CheckDlgButton" => ["long", ["long", "long", "long"]],
64 "CheckMenuItem" => ["long", ["long", "long", "long"]],
65 "CheckMenuRadioItem" => ["long", ["long", "long", "long", "long", "long"]],
66 "CheckRadioButton" => ["long", ["long", "long", "long", "long"]],
67 "ChildWindowFromPoint" => ["long", ["long", "long", "long"]],
68 "ChildWindowFromPointEx" => ["long", ["long", "long", "long", "long"]],
69 "ClientToScreen" => ["long", ["long", "ptr"]],
70 "ClipCursor" => ["long", ["ptr"]],
71 "CloseClipboard" => ["long", []],
72 "CloseDesktop" => ["long", ["long"]],
73 "CloseDriver16" => ["long", ["long", "long", "long"]],
74 "CloseWindow" => ["long", ["long"]],
75 "CloseWindowStation" => ["long", ["long"]],
76 "CopyAcceleratorTableA" => ["long", ["long", "ptr", "long"]],
77 "CopyAcceleratorTableW" => ["long", ["long", "ptr", "long"]],
78 "CopyIcon" => ["long", ["long"]],
79 "CopyImage" => ["long", ["long", "long", "long", "long", "long"]],
80 "CopyRect" => ["long", ["ptr", "ptr"]],
81 "CountClipboardFormats" => ["long", []],
82 "CreateAcceleratorTableA" => ["long", ["ptr", "long"]],
83 "CreateAcceleratorTableW" => ["long", ["ptr", "long"]],
84 "CreateCaret" => ["long", ["long", "long", "long", "long"]],
85 "CreateCursor" => ["long", ["long", "long", "long", "long", "long", "ptr", "ptr"]],
86 "CreateDesktopA" => ["long", ["str", "str", "ptr", "long", "long", "ptr"]],
87 "CreateDesktopW" => ["long", ["wstr", "wstr", "ptr", "long", "long", "ptr"]],
88 "CreateDialogIndirectParam16" => ["long", ["long", "ptr", "long", "ptr", "long"]],
89 "CreateDialogIndirectParamA" => ["long", ["long", "ptr", "long", "ptr", "long"]],
90 "CreateDialogIndirectParamAorW" => ["long", ["long", "ptr", "long", "ptr", "long"]],
91 "CreateDialogIndirectParamW" => ["long", ["long", "ptr", "long", "ptr", "long"]],
92 "CreateDialogParamA" => ["long", ["long", "str", "long", "ptr", "long"]],
93 "CreateDialogParamW" => ["long", ["long", "wstr", "long", "ptr", "long"]],
94 "CreateIcon" => ["long", ["long", "long", "long", "long", "long", "ptr", "ptr"]],
95 "CreateIconFromResource" => ["long", ["ptr", "long", "long", "long"]],
96 "CreateIconFromResourceEx" => ["long", ["ptr", "long", "long", "long", "long", "long", "long"]],
97 "CreateIconIndirect" => ["long", ["ptr"]],
98 "CreateMDIWindowA" => ["long", ["str", "str", "long", "long", "long", "long", "long", "long", "long", "long"]],
99 "CreateMDIWindowW" => ["long", ["wstr", "wstr", "long", "long", "long", "long", "long", "long", "long", "long"]],
100 "CreateMenu" => ["long", []],
101 "CreatePopupMenu" => ["long", []],
102 "CreateWindowExA" => ["long", ["long", "str", "str", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
103 "CreateWindowExW" => ["long", ["long", "wstr", "wstr", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
104 "CreateWindowStationW" => ["long", ["wstr", "long", "long", "ptr"]],
105 "DdeAbandonTransaction" => ["long", ["long", "long", "long"]],
106 "DdeAccessData" => ["ptr", ["long", "ptr"]],
107 "DdeAddData" => ["long", ["long", "ptr", "long", "long"]],
108 "DdeClientTransaction" => ["long", ["ptr", "long", "long", "long", "long", "long", "long", "ptr"]],
109 "DdeCmpStringHandles" => ["long", ["long", "long"]],
110 "DdeConnect" => ["long", ["long", "long", "long", "ptr"]],
111 "DdeConnectList" => ["long", ["long", "long", "long", "long", "ptr"]],
112 "DdeCreateDataHandle" => ["long", ["long", "ptr", "long", "long", "long", "long", "long"]],
113 "DdeCreateStringHandleA" => ["long", ["long", "str", "long"]],
114 "DdeCreateStringHandleW" => ["long", ["long", "wstr", "long"]],
115 "DdeDisconnect" => ["long", ["long"]],
116 "DdeDisconnectList" => ["long", ["long"]],
117 "DdeEnableCallback" => ["long", ["long", "long", "long"]],
118 "DdeFreeDataHandle" => ["long", ["long"]],
119 "DdeFreeStringHandle" => ["long", ["long", "long"]],
120 "DdeGetData" => ["long", ["long", "ptr", "long", "long"]],
121 "DdeGetLastError" => ["long", ["long"]],
122 "DdeImpersonateClient" => ["long", ["long"]],
123 "DdeInitializeA" => ["long", ["ptr", "ptr", "long", "long"]],
124 "DdeInitializeW" => ["long", ["ptr", "ptr", "long", "long"]],
125 "DdeKeepStringHandle" => ["long", ["long", "long"]],
126 "DdeNameService" => ["long", ["long", "long", "long", "long"]],
127 "DdePostAdvise" => ["long", ["long", "long", "long"]],
128 "DdeQueryConvInfo" => ["long", ["long", "long", "ptr"]],
129 "DdeQueryNextServer" => ["long", ["long", "long"]],
130 "DdeQueryStringA" => ["long", ["long", "long", "str", "long", "long"]],
131 "DdeQueryStringW" => ["long", ["long", "long", "wstr", "long", "long"]],
132 "DdeReconnect" => ["long", ["long"]],
133 "DdeSetQualityOfService" => ["long", ["long", "ptr", "ptr"]],
134 "DdeSetUserHandle" => ["long", ["long", "long", "long"]],
135 "DdeUnaccessData" => ["long", ["long"]],
136 "DdeUninitialize" => ["long", ["long"]],
137 "DefDlgProcA" => ["long", ["long", "long", "long", "long"]],
138 "DefDlgProcW" => ["long", ["long", "long", "long", "long"]],
139 "DefDriverProc16" => ["long", ["long", "long", "long", "long", "long"]],
140 "DefFrameProcA" => ["long", ["long", "long", "long", "long", "long"]],
141 "DefFrameProcW" => ["long", ["long", "long", "long", "long", "long"]],
142 "DefMDIChildProcA" => ["long", ["long", "long", "long", "long"]],
143 "DefMDIChildProcW" => ["long", ["long", "long", "long", "long"]],
144 "DefWindowProcA" => ["long", ["long", "long", "long", "long"]],
145 "DefWindowProcW" => ["long", ["long", "long", "long", "long"]],
146 "DeferWindowPos" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long"]],
147 "DeleteMenu" => ["long", ["long", "long", "long"]],
148 "DeregisterShellHookWindow" => ["long", ["long"]],
149 "DestroyAcceleratorTable" => ["long", ["long"]],
150 "DestroyCaret" => ["long", []],
151 "DestroyCursor" => ["long", ["long"]],
152 "DestroyIcon" => ["long", ["long"]],
153 "DestroyIcon32" => ["long", ["long", "long"]],
154 "DestroyMenu" => ["long", ["long"]],
155 "DestroyWindow" => ["long", ["long"]],
156 "DialogBoxIndirectParam16" => ["long", ["long", "long", "long", "ptr", "long"]],
157 "DialogBoxIndirectParamA" => ["long", ["long", "ptr", "long", "ptr", "long"]],
158 "DialogBoxIndirectParamAorW" => ["long", ["long", "ptr", "long", "ptr", "long", "long"]],
159 "DialogBoxIndirectParamW" => ["long", ["long", "ptr", "long", "ptr", "long"]],
160 "DialogBoxParamA" => ["long", ["long", "str", "long", "ptr", "long"]],
161 "DialogBoxParamW" => ["long", ["long", "wstr", "long", "ptr", "long"]],
162 "DispatchMessageA" => ["long", ["ptr"]],
163 "DispatchMessageW" => ["long", ["ptr"]],
164 "DlgDirListA" => ["long", ["long", "str", "long", "long", "long"]],
165 "DlgDirListComboBoxA" => ["long", ["long", "str", "long", "long", "long"]],
166 "DlgDirListComboBoxW" => ["long", ["long", "wstr", "long", "long", "long"]],
167 "DlgDirListW" => ["long", ["long", "wstr", "long", "long", "long"]],
168 "DlgDirSelectComboBoxExA" => ["long", ["long", "str", "long", "long"]],
169 "DlgDirSelectComboBoxExW" => ["long", ["long", "wstr", "long", "long"]],
170 "DlgDirSelectExA" => ["long", ["long", "str", "long", "long"]],
171 "DlgDirSelectExW" => ["long", ["long", "wstr", "long", "long"]],
172 "DragDetect" => ["long", ["long", "long", "long"]],
173 "DrawAnimatedRects" => ["long", ["long", "long", "ptr", "ptr"]],
174 "DrawCaption" => ["long", ["long", "long", "ptr", "long"]],
175 "DrawCaptionTempA" => ["long", ["long", "long", "ptr", "long", "long", "str", "long"]],
176 "DrawCaptionTempW" => ["long", ["long", "long", "ptr", "long", "long", "wstr", "long"]],
177 "DrawEdge" => ["long", ["long", "ptr", "long", "long"]],
178 "DrawFocusRect" => ["long", ["long", "ptr"]],
179 "DrawFrameControl" => ["long", ["long", "ptr", "long", "long"]],
180 "DrawIcon" => ["long", ["long", "long", "long", "long"]],
181 "DrawIconEx" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long"]],
182 "DrawMenuBar" => ["long", ["long"]],
183 "DrawMenuBarTemp" => ["long", ["long", "long", "ptr", "long", "long"]],
184 "DrawStateA" => ["long", ["long", "long", "ptr", "long", "long", "long", "long", "long", "long", "long"]],
185 "DrawStateW" => ["long", ["long", "long", "ptr", "long", "long", "long", "long", "long", "long", "long"]],
186 "DrawTextA" => ["long", ["long", "str", "long", "ptr", "long"]],
187 "DrawTextExA" => ["long", ["long", "str", "long", "ptr", "long", "ptr"]],
188 "DrawTextExW" => ["long", ["long", "wstr", "long", "ptr", "long", "ptr"]],
189 "DrawTextW" => ["long", ["long", "wstr", "long", "ptr", "long"]],
190 "EditWndProc" => ["long", ["long", "long", "long", "long"]],
191 "EditWndProcW" => ["long", ["long", "long", "long", "long"]],
192 "EmptyClipboard" => ["long", []],
193 "EnableMenuItem" => ["long", ["long", "long", "long"]],
194 "EnableScrollBar" => ["long", ["long", "long", "long"]],
195 "EnableWindow" => ["long", ["long", "long"]],
196 "EndDeferWindowPos" => ["long", ["long"]],
197 "EndDialog" => ["long", ["long", "long"]],
198 "EndMenu" => ["void", []],
199 "EndPaint" => ["long", ["long", "ptr"]],
200 "EnumChildWindows" => ["long", ["long", "ptr", "long"]],
201 "EnumClipboardFormats" => ["long", ["long"]],
202 "EnumDesktopWindows" => ["long", ["long", "ptr", "long"]],
203 "EnumDisplayDevicesA" => ["long", ["ptr", "long", "ptr", "long"]],
204 "EnumDisplayDevicesW" => ["long", ["ptr", "long", "ptr", "long"]],
205 "EnumDisplayMonitors" => ["long", ["long", "ptr", "ptr", "long"]],
206 "EnumDisplaySettingsA" => ["long", ["str", "long", "ptr"]],
207 "EnumDisplaySettingsExA" => ["long", ["str", "long", "ptr", "long"]],
208 "EnumDisplaySettingsExW" => ["long", ["wstr", "long", "ptr", "long"]],
209 "EnumDisplaySettingsW" => ["long", ["wstr", "long", "ptr"]],
210 "EnumPropsA" => ["long", ["long", "ptr"]],
211 "EnumPropsExA" => ["long", ["long", "ptr", "long"]],
212 "EnumPropsExW" => ["long", ["long", "ptr", "long"]],
213 "EnumPropsW" => ["long", ["long", "ptr"]],
214 "EnumThreadWindows" => ["long", ["long", "ptr", "long"]],
215 "EnumWindows" => ["long", ["ptr", "long"]],
216 "EqualRect" => ["long", ["ptr", "ptr"]],
217 "ExcludeUpdateRgn" => ["long", ["long", "long"]],
218 "ExitWindowsEx" => ["long", ["long", "long"]],
219 "FillRect" => ["long", ["long", "ptr", "long"]],
220 "FindWindowA" => ["long", ["str", "str"]],
221 "FindWindowExA" => ["long", ["long", "long", "str", "str"]],
222 "FindWindowExW" => ["long", ["long", "long", "wstr", "wstr"]],
223 "FindWindowW" => ["long", ["wstr", "wstr"]],
224 "FlashWindow" => ["long", ["long", "long"]],
225 "FrameRect" => ["long", ["long", "ptr", "long"]],
226 "FreeDDElParam" => ["long", ["long", "long"]],
227 "GetActiveWindow" => ["long", []],
228 "GetAncestor" => ["long", ["long", "long"]],
229 "GetAppCompatFlags" => ["long", ["long"]],
230 "GetAsyncKeyState" => ["long", ["long"]],
231 "GetCapture" => ["long", []],
232 "GetCaretBlinkTime" => ["long", []],
233 "GetCaretPos" => ["long", ["ptr"]],
234 "GetClassInfoA" => ["long", ["long", "str", "ptr"]],
235 "GetClassInfoExA" => ["long", ["long", "str", "ptr"]],
236 "GetClassInfoExW" => ["long", ["long", "wstr", "ptr"]],
237 "GetClassInfoW" => ["long", ["long", "wstr", "ptr"]],
238 "GetClassLongA" => ["long", ["long", "long"]],
239 "GetClassLongW" => ["long", ["long", "long"]],
240 "GetClassNameA" => ["long", ["long", "str", "long"]],
241 "GetClassNameW" => ["long", ["long", "wstr", "long"]],
242 "GetClassWord" => ["long", ["long", "long"]],
243 "GetClientRect" => ["long", ["long", "ptr"]],
244 "GetClipCursor" => ["long", ["ptr"]],
245 "GetClipboardData" => ["long", ["long"]],
246 "GetClipboardFormatNameA" => ["long", ["long", "str", "long"]],
247 "GetClipboardFormatNameW" => ["long", ["long", "wstr", "long"]],
248 "GetClipboardOwner" => ["long", []],
249 "GetClipboardSequenceNumber" => ["long", []],
250 "GetClipboardViewer" => ["long", []],
251 "GetCursor" => ["long", []],
252 "GetCursorPos" => ["long", ["ptr"]],
253 "GetDC" => ["long", ["long"]],
254 "GetDCEx" => ["long", ["long", "long", "long"]],
255 "GetDesktopWindow" => ["long", []],
256 "GetDialogBaseUnits" => ["long", []],
257 "GetDlgCtrlID" => ["long", ["long"]],
258 "GetDlgItem" => ["long", ["long", "long"]],
259 "GetDlgItemInt" => ["long", ["long", "long", "ptr", "long"]],
260 "GetDlgItemTextA" => ["long", ["long", "long", "str", "long"]],
261 "GetDlgItemTextW" => ["long", ["long", "long", "wstr", "long"]],
262 "GetDoubleClickTime" => ["long", []],
263 "GetDriverModuleHandle16" => ["long", ["long"]],
264 "GetFocus" => ["long", []],
265 "GetForegroundWindow" => ["long", []],
266 "GetIconInfo" => ["long", ["long", "ptr"]],
267 "GetInputState" => ["long", []],
268 "GetInternalWindowPos" => ["long", ["long", "ptr", "ptr"]],
269 "GetKBCodePage" => ["long", []],
270 "GetKeyNameTextA" => ["long", ["long", "str", "long"]],
271 "GetKeyNameTextW" => ["long", ["long", "wstr", "long"]],
272 "GetKeyState" => ["long", ["long"]],
273 "GetKeyboardLayout" => ["long", ["long"]],
274 "GetKeyboardLayoutList" => ["long", ["long", "ptr"]],
275 "GetKeyboardLayoutNameA" => ["long", ["str"]],
276 "GetKeyboardLayoutNameW" => ["long", ["wstr"]],
277 "GetKeyboardState" => ["long", ["ptr"]],
278 "GetKeyboardType" => ["long", ["long"]],
279 "GetLastActivePopup" => ["long", ["long"]],
280 "GetMenu" => ["long", ["long"]],
281 "GetMenuCheckMarkDimensions" => ["long", []],
282 "GetMenuContextHelpId" => ["long", ["long"]],
283 "GetMenuDefaultItem" => ["long", ["long", "long", "long"]],
284 "GetMenuInfo" => ["long", ["long", "ptr"]],
285 "GetMenuItemCount" => ["long", ["long"]],
286 "GetMenuItemID" => ["long", ["long", "long"]],
287 "GetMenuItemInfoA" => ["long", ["long", "long", "long", "ptr"]],
288 "GetMenuItemInfoW" => ["long", ["long", "long", "long", "ptr"]],
289 "GetMenuItemRect" => ["long", ["long", "long", "long", "ptr"]],
290 "GetMenuState" => ["long", ["long", "long", "long"]],
291 "GetMenuStringA" => ["long", ["long", "long", "str", "long", "long"]],
292 "GetMenuStringW" => ["long", ["long", "long", "wstr", "long", "long"]],
293 "GetMessageA" => ["long", ["ptr", "long", "long", "long"]],
294 "GetMessageExtraInfo" => ["long", []],
295 "GetMessagePos" => ["long", []],
296 "GetMessageTime" => ["long", []],
297 "GetMessageW" => ["long", ["ptr", "long", "long", "long"]],
298 "GetMonitorInfoA" => ["long", ["long", "ptr"]],
299 "GetMonitorInfoW" => ["long", ["long", "ptr"]],
300 "GetNextDlgGroupItem" => ["long", ["long", "long", "long"]],
301 "GetNextDlgTabItem" => ["long", ["long", "long", "long"]],
302 "GetOpenClipboardWindow" => ["long", []],
303 "GetParent" => ["long", ["long"]],
304 "GetPriorityClipboardFormat" => ["long", ["ptr", "long"]],
305 "GetProcessDefaultLayout" => ["long", ["ptr"]],
306 "GetProcessWindowStation" => ["long", []],
307 "GetProgmanWindow" => ["long", []],
308 "GetPropA" => ["long", ["long", "str"]],
309 "GetPropW" => ["long", ["long", "wstr"]],
310 "GetQueueStatus" => ["long", ["long"]],
311 "GetScrollInfo" => ["long", ["long", "long", "ptr"]],
312 "GetScrollPos" => ["long", ["long", "long"]],
313 "GetScrollRange" => ["long", ["long", "long", "ptr", "ptr"]],
314 "GetShellWindow" => ["long", []],
315 "GetSubMenu" => ["long", ["long", "long"]],
316 "GetSysColor" => ["long", ["long"]],
317 "GetSysColorBrush" => ["long", ["long"]],
318 "GetSysColorPen" => ["long", ["long"]],
319 "GetSystemMenu" => ["long", ["long", "long"]],
320 "GetSystemMetrics" => ["long", ["long"]],
321 "GetTabbedTextExtentA" => ["long", ["long", "str", "long", "long", "ptr"]],
322 "GetTabbedTextExtentW" => ["long", ["long", "wstr", "long", "long", "ptr"]],
323 "GetTaskmanWindow" => ["long", []],
324 "GetThreadDesktop" => ["long", ["long"]],
325 "GetTopWindow" => ["long", ["long"]],
326 "GetUpdateRect" => ["long", ["long", "ptr", "long"]],
327 "GetUpdateRgn" => ["long", ["long", "long", "long"]],
328 "GetUserObjectInformationA" => ["long", ["long", "long", "ptr", "long", "ptr"]],
329 "GetUserObjectInformationW" => ["long", ["long", "long", "ptr", "long", "ptr"]],
330 "GetUserObjectSecurity" => ["long", ["long", "ptr", "ptr", "long", "ptr"]],
331 "GetWindow" => ["long", ["long", "long"]],
332 "GetWindowContextHelpId" => ["long", ["long"]],
333 "GetWindowDC" => ["long", ["long"]],
334 "GetWindowLongA" => ["long", ["long", "long"]],
335 "GetWindowLongW" => ["long", ["long", "long"]],
336 "GetWindowModuleFileNameA" => ["long", ["long", "str", "long"]],
337 "GetWindowModuleFileNameW" => ["long", ["long", "str", "long"]],
338 "GetWindowPlacement" => ["long", ["long", "ptr"]],
339 "GetWindowRect" => ["long", ["long", "ptr"]],
340 "GetWindowRgn" => ["long", ["long", "long"]],
341 "GetWindowTextA" => ["long", ["long", "str", "long"]],
342 "GetWindowTextLengthA" => ["long", ["long"]],
343 "GetWindowTextLengthW" => ["long", ["long"]],
344 "GetWindowTextW" => ["long", ["long", "wstr", "long"]],
345 "GetWindowThreadProcessId" => ["long", ["long", "ptr"]],
346 "GetWindowWord" => ["long", ["long", "long"]],
347 "GrayStringA" => ["long", ["long", "long", "ptr", "long", "long", "long", "long", "long", "long"]],
348 "GrayStringW" => ["long", ["long", "long", "ptr", "long", "long", "long", "long", "long", "long"]],
349 "HideCaret" => ["long", ["long"]],
350 "HiliteMenuItem" => ["long", ["long", "long", "long", "long"]],
351 "ImpersonateDdeClientWindow" => ["long", ["long", "long"]],
352 "InSendMessage" => ["long", []],
353 "InSendMessageEx" => ["long", ["ptr"]],
354 "InflateRect" => ["long", ["ptr", "long", "long"]],
355 "InsertMenuA" => ["long", ["long", "long", "long", "long", "str"]],
356 "InsertMenuItemA" => ["long", ["long", "long", "long", "ptr"]],
357 "InsertMenuItemW" => ["long", ["long", "long", "long", "ptr"]],
358 "InsertMenuW" => ["long", ["long", "long", "long", "long", "wstr"]],
359 "InternalGetWindowText" => ["long", ["long", "wstr", "long"]],
360 "IntersectRect" => ["long", ["ptr", "ptr", "ptr"]],
361 "InvalidateRect" => ["long", ["long", "ptr", "long"]],
362 "InvalidateRgn" => ["long", ["long", "long", "long"]],
363 "InvertRect" => ["long", ["long", "ptr"]],
364 "IsCharAlphaA" => ["long", ["long"]],
365 "IsCharAlphaNumericA" => ["long", ["long"]],
366 "IsCharAlphaNumericW" => ["long", ["long"]],
367 "IsCharAlphaW" => ["long", ["long"]],
368 "IsCharLowerA" => ["long", ["long"]],
369 "IsCharLowerW" => ["long", ["long"]],
370 "IsCharUpperA" => ["long", ["long"]],
371 "IsCharUpperW" => ["long", ["long"]],
372 "IsChild" => ["long", ["long", "long"]],
373 "IsClipboardFormatAvailable" => ["long", ["long"]],
374 "IsDialogMessage" => ["long", ["long", "ptr"]],
375 "IsDialogMessageA" => ["long", ["long", "ptr"]],
376 "IsDialogMessageW" => ["long", ["long", "ptr"]],
377 "IsDlgButtonChecked" => ["long", ["long", "long"]],
378 "IsIconic" => ["long", ["long"]],
379 "IsMenu" => ["long", ["long"]],
380 "IsRectEmpty" => ["long", ["ptr"]],
381 "IsWindow" => ["long", ["long"]],
382 "IsWindowEnabled" => ["long", ["long"]],
383 "IsWindowUnicode" => ["long", ["long"]],
384 "IsWindowVisible" => ["long", ["long"]],
385 "IsZoomed" => ["long", ["long"]],
386 "KillSystemTimer" => ["long", ["long", "long"]],
387 "KillTimer" => ["long", ["long", "long"]],
388 "LoadAcceleratorsA" => ["long", ["long", "str"]],
389 "LoadAcceleratorsW" => ["long", ["long", "wstr"]],
390 "LoadBitmapA" => ["long", ["long", "str"]],
391 "LoadBitmapW" => ["long", ["long", "wstr"]],
392 "LoadCursorA" => ["long", ["long", "str"]],
393 "LoadCursorFromFileA" => ["long", ["str"]],
394 "LoadCursorFromFileW" => ["long", ["wstr"]],
395 "LoadCursorW" => ["long", ["long", "wstr"]],
396 "LoadIconA" => ["long", ["long", "str"]],
397 "LoadIconW" => ["long", ["long", "wstr"]],
398 "LoadImageA" => ["long", ["long", "str", "long", "long", "long", "long"]],
399 "LoadImageW" => ["long", ["long", "wstr", "long", "long", "long", "long"]],
400 "LoadKeyboardLayoutA" => ["long", ["str", "long"]],
401 "LoadKeyboardLayoutW" => ["long", ["wstr", "long"]],
402 "LoadLocalFonts" => ["void", []],
403 "LoadMenuA" => ["long", ["long", "str"]],
404 "LoadMenuIndirectA" => ["long", ["ptr"]],
405 "LoadMenuIndirectW" => ["long", ["ptr"]],
406 "LoadMenuW" => ["long", ["long", "wstr"]],
407 "LoadStringA" => ["long", ["long", "long", "str", "long"]],
408 "LoadStringW" => ["long", ["long", "long", "wstr", "long"]],
409 "LockSetForegroundWindow" => ["long", ["long"]],
410 "LockWindowUpdate" => ["long", ["long"]],
411 "LookupIconIdFromDirectory" => ["long", ["ptr", "long"]],
412 "LookupIconIdFromDirectoryEx" => ["long", ["ptr", "long", "long", "long", "long"]],
413 "MapDialogRect" => ["long", ["long", "ptr"]],
414 "MapVirtualKeyA" => ["long", ["long", "long"]],
415 "MapVirtualKeyExA" => ["long", ["long", "long", "long"]],
416 "MapVirtualKeyExW" => ["long", ["long", "long", "long"]],
417 "MapVirtualKeyW" => ["long", ["long", "long"]],
418 "MapWindowPoints" => ["long", ["long", "long", "ptr", "long"]],
419 "MenuItemFromPoint" => ["long", ["long", "long", "long", "long"]],
420 "MessageBeep" => ["long", ["long"]],
421 "MessageBoxA" => ["long", ["long", "str", "str", "long"]],
422 "MessageBoxExA" => ["long", ["long", "str", "str", "long", "long"]],
423 "MessageBoxExW" => ["long", ["long", "wstr", "wstr", "long", "long"]],
424 "MessageBoxIndirectA" => ["long", ["ptr"]],
425 "MessageBoxIndirectW" => ["long", ["ptr"]],
426 "MessageBoxW" => ["long", ["long", "wstr", "wstr", "long"]],
427 "ModifyMenuA" => ["long", ["long", "long", "long", "long", "str"]],
428 "ModifyMenuW" => ["long", ["long", "long", "long", "long", "wstr"]],
429 "MonitorFromPoint" => ["long", ["long", "long", "long"]],
430 "MonitorFromRect" => ["long", ["ptr", "long"]],
431 "MonitorFromWindow" => ["long", ["long", "long"]],
432 "MoveWindow" => ["long", ["long", "long", "long", "long", "long", "long"]],
433 "MsgWaitForMultipleObjects" => ["long", ["long", "ptr", "long", "long", "long"]],
434 "MsgWaitForMultipleObjectsEx" => ["long", ["long", "ptr", "long", "long", "long"]],
435 "OemKeyScan" => ["long", ["long"]],
436 "OemToCharA" => ["long", ["str", "str"]],
437 "OemToCharBuffA" => ["long", ["str", "str", "long"]],
438 "OemToCharBuffW" => ["long", ["str", "wstr", "long"]],
439 "OemToCharW" => ["long", ["str", "wstr"]],
440 "OffsetRect" => ["long", ["ptr", "long", "long"]],
441 "OpenClipboard" => ["long", ["long"]],
442 "OpenDesktopA" => ["long", ["str", "long", "long", "long"]],
443 "OpenDriver16" => ["long", ["str", "str", "long"]],
444 "OpenIcon" => ["long", ["long"]],
445 "PackDDElParam" => ["long", ["long", "long", "long"]],
446 "PaintDesktop" => ["long", ["long"]],
447 "PeekMessageA" => ["long", ["ptr", "long", "long", "long", "long"]],
448 "PeekMessageW" => ["long", ["ptr", "long", "long", "long", "long"]],
449 "PostAppMessage16" => ["long", ["long", "long", "long", "long"]],
450 "PostMessageA" => ["long", ["long", "long", "long", "long"]],
451 "PostMessageW" => ["long", ["long", "long", "long", "long"]],
452 "PostQuitMessage" => ["void", ["long"]],
453 "PostThreadMessageA" => ["long", ["long", "long", "long", "long"]],
454 "PostThreadMessageW" => ["long", ["long", "long", "long", "long"]],
455 "PrivateExtractIconExA" => ["long", ["str", "long", "ptr", "ptr", "long"]],
456 "PrivateExtractIconExW" => ["long", ["wstr", "long", "ptr", "ptr", "long"]],
457 "PrivateExtractIconsA" => ["long", ["str", "long", "long", "long", "ptr", "long", "long", "long"]],
458 "PrivateExtractIconsW" => ["long", ["wstr", "long", "long", "long", "ptr", "long", "long", "long"]],
459 "PtInRect" => ["long", ["ptr", "long", "long"]],
460 "RedrawWindow" => ["long", ["long", "ptr", "long", "long"]],
461 "RegisterClassA" => ["long", ["ptr"]],
462 "RegisterClassExA" => ["long", ["ptr"]],
463 "RegisterClassExW" => ["long", ["ptr"]],
464 "RegisterClassW" => ["long", ["ptr"]],
465 "RegisterClipboardFormatA" => ["long", ["str"]],
466 "RegisterClipboardFormatW" => ["long", ["wstr"]],
467 "RegisterDeviceNotificationA" => ["long", ["long", "ptr", "long"]],
468 "RegisterHotKey" => ["long", ["long", "long", "long", "long"]],
469 "RegisterLogonProcess" => ["long", ["long", "long"]],
470 "RegisterShellHookWindow" => ["long", ["long"]],
471 "RegisterSystemThread" => ["void", ["long", "long"]],
472 "RegisterTasklist" => ["long", ["long"]],
473 "RegisterWindowMessageA" => ["long", ["str"]],
474 "RegisterWindowMessageW" => ["long", ["wstr"]],
475 "ReleaseCapture" => ["long", []],
476 "ReleaseDC" => ["long", ["long", "long"]],
477 "RemoveMenu" => ["long", ["long", "long", "long"]],
478 "RemovePropA" => ["long", ["long", "str"]],
479 "RemovePropW" => ["long", ["long", "wstr"]],
480 "ReplyMessage" => ["long", ["long"]],
481 "ReuseDDElParam" => ["long", ["long", "long", "long", "long", "long"]],
482 "ScreenToClient" => ["long", ["long", "ptr"]],
483 "ScrollChildren" => ["void", ["long", "long", "long", "long"]],
484 "ScrollDC" => ["long", ["long", "long", "long", "ptr", "ptr", "long", "ptr"]],
485 "ScrollWindow" => ["long", ["long", "long", "long", "ptr", "ptr"]],
486 "ScrollWindowEx" => ["long", ["long", "long", "long", "ptr", "ptr", "long", "ptr", "long"]],
487 "SendDlgItemMessageA" => ["long", ["long", "long", "long", "long", "long"]],
488 "SendDlgItemMessageW" => ["long", ["long", "long", "long", "long", "long"]],
489 "SendDriverMessage16" => ["long", ["long", "long", "long", "long"]],
490 "SendInput" => ["long", ["long", "ptr", "long"]],
491 "SendMessageA" => ["long", ["long", "long", "long", "long"]],
492 "SendMessageCallbackA" => ["long", ["long", "long", "long", "long", "ptr", "long"]],
493 "SendMessageCallbackW" => ["long", ["long", "long", "long", "long", "ptr", "long"]],
494 "SendMessageTimeoutA" => ["long", ["long", "long", "long", "long", "long", "long", "ptr"]],
495 "SendMessageTimeoutW" => ["long", ["long", "long", "long", "long", "long", "long", "ptr"]],
496 "SendMessageW" => ["long", ["long", "long", "long", "long"]],
497 "SendNotifyMessageA" => ["long", ["long", "long", "long", "long"]],
498 "SendNotifyMessageW" => ["long", ["long", "long", "long", "long"]],
499 "SetActiveWindow" => ["long", ["long"]],
500 "SetCapture" => ["long", ["long"]],
501 "SetCaretBlinkTime" => ["long", ["long"]],
502 "SetCaretPos" => ["long", ["long", "long"]],
503 "SetClassLongA" => ["long", ["long", "long", "long"]],
504 "SetClassLongW" => ["long", ["long", "long", "long"]],
505 "SetClassWord" => ["long", ["long", "long", "long"]],
506 "SetClipboardData" => ["long", ["long", "long"]],
507 "SetClipboardViewer" => ["long", ["long"]],
508 "SetCursor" => ["long", ["long"]],
509 "SetCursorPos" => ["long", ["long", "long"]],
510 "SetDebugErrorLevel" => ["void", ["long"]],
511 "SetDeskWallPaper" => ["long", ["str"]],
512 "SetDlgItemInt" => ["long", ["long", "long", "long", "long"]],
513 "SetDlgItemTextA" => ["long", ["long", "long", "str"]],
514 "SetDlgItemTextW" => ["long", ["long", "long", "wstr"]],
515 "SetDoubleClickTime" => ["long", ["long"]],
516 "SetFocus" => ["long", ["long"]],
517 "SetForegroundWindow" => ["long", ["long"]],
518 "SetInternalWindowPos" => ["void", ["long", "long", "ptr", "ptr"]],
519 "SetKeyboardState" => ["long", ["ptr"]],
520 "SetLastErrorEx" => ["void", ["long", "long"]],
521 "SetLogonNotifyWindow" => ["long", ["long", "long"]],
522 "SetMenu" => ["long", ["long", "long"]],
523 "SetMenuContextHelpId" => ["long", ["long", "long"]],
524 "SetMenuDefaultItem" => ["long", ["long", "long", "long"]],
525 "SetMenuInfo" => ["long", ["long", "ptr"]],
526 "SetMenuItemBitmaps" => ["long", ["long", "long", "long", "long", "long"]],
527 "SetMenuItemInfoA" => ["long", ["long", "long", "long", "ptr"]],
528 "SetMenuItemInfoW" => ["long", ["long", "long", "long", "ptr"]],
529 "SetMessageQueue" => ["long", ["long"]],
530 "SetParent" => ["long", ["long", "long"]],
531 "SetProcessDefaultLayout" => ["long", ["long"]],
532 "SetProcessWindowStation" => ["long", ["long"]],
533 "SetProgmanWindow" => ["long", ["long"]],
534 "SetPropA" => ["long", ["long", "str", "long"]],
535 "SetPropW" => ["long", ["long", "wstr", "long"]],
536 "SetRect" => ["long", ["ptr", "long", "long", "long", "long"]],
537 "SetRectEmpty" => ["long", ["ptr"]],
538 "SetScrollPos" => ["long", ["long", "long", "long", "long"]],
539 "SetScrollRange" => ["long", ["long", "long", "long", "long", "long"]],
540 "SetShellWindow" => ["long", ["long"]],
541 "SetShellWindowEx" => ["long", ["long", "long"]],
542 "SetSysColors" => ["long", ["long", "ptr", "ptr"]],
543 "SetSysColorsTemp" => ["long", ["ptr", "ptr", "long"]],
544 "SetSystemCursor" => ["long", ["long", "long"]],
545 "SetSystemMenu" => ["long", ["long", "long"]],
546 "SetSystemTimer" => ["long", ["long", "long", "long", "ptr"]],
547 "SetTaskmanWindow" => ["long", ["long"]],
548 "SetThreadDesktop" => ["long", ["long"]],
549 "SetTimer" => ["long", ["long", "long", "long", "ptr"]],
550 "SetUserObjectInformationA" => ["long", ["long", "long", "ptr", "long"]],
551 "SetUserObjectSecurity" => ["long", ["long", "ptr", "ptr"]],
552 "SetWindowContextHelpId" => ["long", ["long", "long"]],
553 "SetWindowLongA" => ["long", ["long", "long", "long"]],
554 "SetWindowLongW" => ["long", ["long", "long", "long"]],
555 "SetWindowPlacement" => ["long", ["long", "ptr"]],
556 "SetWindowPos" => ["long", ["long", "long", "long", "long", "long", "long", "long"]],
557 "SetWindowRgn" => ["long", ["long", "long", "long"]],
558 "SetWindowStationUser" => ["long", ["long", "long"]],
559 "SetWindowText" => ["long", ["long", "str"]],
560 "SetWindowTextA" => ["long", ["long", "str"]],
561 "SetWindowTextW" => ["long", ["long", "wstr"]],
562 "SetWindowWord" => ["long", ["long", "long", "long"]],
563 "SetWindowsHookA" => ["long", ["long", "ptr"]],
564 "SetWindowsHookEx16" => ["long", ["long", "ptr", "long", "long"]],
565 "SetWindowsHookExA" => ["long", ["long", "ptr", "long", "long"]],
566 "SetWindowsHookExW" => ["long", ["long", "ptr", "long", "long"]],
567 "SetWindowsHookW" => ["long", ["long", "ptr"]],
568 "ShowCaret" => ["long", ["long"]],
569 "ShowCursor" => ["long", ["long"]],
570 "ShowOwnedPopups" => ["long", ["long", "long"]],
571 "ShowScrollBar" => ["long", ["long", "long", "long"]],
572 "ShowWindow" => ["long", ["long", "long"]],
573 "ShowWindowAsync" => ["long", ["long", "long"]],
574 "SubtractRect" => ["long", ["ptr", "ptr", "ptr"]],
575 "SwapMouseButton" => ["long", ["long"]],
576 "SwitchToThisWindow" => ["void", ["long", "long"]],
577 "SystemParametersInfoA" => ["long", ["long", "long", "ptr", "long"]],
578 "SystemParametersInfoW" => ["long", ["long", "long", "ptr", "long"]],
579 "TabbedTextOutA" => ["long", ["long", "long", "long", "str", "long", "long", "ptr", "long"]],
580 "TabbedTextOutW" => ["long", ["long", "long", "long", "wstr", "long", "long", "ptr", "long"]],
581 "TileWindows" => ["long", ["long", "long", "ptr", "long", "ptr"]],
582 "ToAscii" => ["long", ["long", "long", "ptr", "ptr", "long"]],
583 "ToAsciiEx" => ["long", ["long", "long", "ptr", "ptr", "long", "long"]],
584 "ToUnicode" => ["long", ["long", "long", "ptr", "wstr", "long", "long"]],
585 "ToUnicodeEx" => ["long", ["long", "long", "ptr", "wstr", "long", "long", "long"]],
586 "TrackPopupMenu" => ["long", ["long", "long", "long", "long", "long", "long", "ptr"]],
587 "TrackPopupMenuEx" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
588 "TranslateAccelerator" => ["long", ["long", "long", "ptr"]],
589 "TranslateAcceleratorA" => ["long", ["long", "long", "ptr"]],
590 "TranslateAcceleratorW" => ["long", ["long", "long", "ptr"]],
591 "TranslateCharsetInfo" => ["long", ["ptr", "ptr", "long"]],
592 "TranslateMDISysAccel" => ["long", ["long", "ptr"]],
593 "TranslateMessage" => ["long", ["ptr"]],
594 "UnhookWindowsHook" => ["long", ["long", "ptr"]],
595 "UnhookWindowsHookEx" => ["long", ["long"]],
596 "UnionRect" => ["long", ["ptr", "ptr", "ptr"]],
597 "UnpackDDElParam" => ["long", ["long", "long", "ptr", "ptr"]],
598 "UnregisterClassA" => ["long", ["str", "long"]],
599 "UnregisterClassW" => ["long", ["wstr", "long"]],
600 "UnregisterHotKey" => ["long", ["long", "long"]],
601 "UpdateWindow" => ["void", ["long"]],
602 "UserClientDllInitialize" => ["long", ["long", "long", "ptr"]],
603 "UserRealizePalette" => ["long", ["long"]],
604 "UserSignalProc" => ["long", ["long", "long", "long", "long"]],
605 "UserYield16" => ["void", []],
606 "ValidateRect" => ["void", ["long", "ptr"]],
607 "ValidateRgn" => ["void", ["long", "long"]],
608 "VkKeyScanA" => ["long", ["long"]],
609 "VkKeyScanExA" => ["long", ["long", "long"]],
610 "VkKeyScanExW" => ["long", ["long", "long"]],
611 "VkKeyScanW" => ["long", ["long"]],
612 "WaitForInputIdle" => ["long", ["long", "long"]],
613 "WaitMessage" => ["long", []],
614 "WinHelpA" => ["long", ["long", "str", "long", "long"]],
615 "WinHelpW" => ["long", ["long", "wstr", "long", "long"]],
616 "WindowFromDC" => ["long", ["long"]],
617 "WindowFromPoint" => ["long", ["long", "long"]],
618 "keybd_event" => ["void", ["long", "long", "long", "long"]],
619 "mouse_event" => ["void", ["long", "long", "long", "long", "long"]],
620 "wvsnprintfA" => ["long", ["str", "long", "str", "ptr"]],
621 "wvsnprintfW" => ["long", ["wstr", "long", "wstr", "ptr"]],
622 "wvsprintfA" => ["long", ["str", "str", "ptr"]],
623 "wvsprintfW" => ["long", ["wstr", "wstr", "ptr"]]
626 &wine::declare("user32",%$module_declarations);
627 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));