Added regedit unit test, a couple minor changes to regedit.
[wine] / programs / winetest / include / kernel32.pm
1 package kernel32;
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     "k32CharToOemA" => ["long",  ["str", "str"]],
16     "k32CharToOemBuffA" => ["long",  ["str", "str", "long"]],
17     "k32OemToCharA" => ["long",  ["str", "str"]],
18     "k32OemToCharBuffA" => ["long",  ["str", "str", "long"]],
19     "k32LoadStringA" => ["long",  ["long", "long", "str", "long"]],
20     "k32wvsprintfA" => ["long",  ["str", "str", "ptr"]],
21     "CommonUnimpStub" => ["void",  ["ptr"]],
22     "GetProcessDword" => ["long",  ["long", "long"]],
23     "DosFileHandleToWin32Handle" => ["long",  ["long"]],
24     "Win32HandleToDosFileHandle" => ["long",  ["long"]],
25     "DisposeLZ32Handle" => ["void",  ["long"]],
26     "GlobalAlloc16" => ["long",  ["long", "long"]],
27     "GlobalLock16" => ["ptr",  ["long"]],
28     "GlobalUnlock16" => ["long",  ["long"]],
29     "GlobalFix16" => ["long",  ["long"]],
30     "GlobalUnfix16" => ["void",  ["long"]],
31     "GlobalWire16" => ["ptr",  ["long"]],
32     "GlobalUnWire16" => ["long",  ["long"]],
33     "GlobalFree16" => ["long",  ["long"]],
34     "GlobalSize16" => ["long",  ["long"]],
35     "HouseCleanLogicallyDeadHandles" => ["void",  []],
36     "GetWin16DOSEnv" => ["long",  ["undef"]],
37     "LoadLibrary16" => ["long",  ["str"]],
38     "FreeLibrary16" => ["void",  ["long"]],
39     "GetProcAddress16" => ["ptr",  ["long", "str"]],
40     "AllocMappedBuffer" => ["void",  ["ptr"]],
41     "OT_32ThkLSF" => ["void",  ["ptr"]],
42     "ThunkInitLSF" => ["ptr",  ["ptr", "str", "long", "str", "str"]],
43     "LogApiThkLSF" => ["void",  ["str", "ptr"]],
44     "ThunkInitLS" => ["long",  ["ptr", "str", "long", "str", "str"]],
45     "LogApiThkSL" => ["void",  ["str", "ptr"]],
46     "Common32ThkLS" => ["void",  ["ptr"]],
47     "ThunkInitSL" => ["void",  ["ptr", "str", "long", "str", "str"]],
48     "LogCBThkSL" => ["void",  ["str", "ptr"]],
49     "ReleaseThunkLock" => ["void",  ["ptr"]],
50     "RestoreThunkLock" => ["void",  ["long"]],
51     "W32S_BackTo32" => ["void",  ["ptr"]],
52     "GetThunkBuff" => ["ptr",  []],
53     "GetThunkStuff" => ["ptr",  ["str", "str"]],
54     "K32WOWCallback16" => ["long",  ["long", "long"]],
55     "K32WOWCallback16Ex" => ["long",  ["long", "long", "long", "ptr", "ptr"]],
56     "K32WOWGetVDMPointer" => ["ptr",  ["long", "long", "long"]],
57     "K32WOWHandle32" => ["long",  ["long", "long"]],
58     "K32WOWHandle16" => ["long",  ["long", "long"]],
59     "K32WOWGlobalAlloc16" => ["long",  ["long", "long"]],
60     "K32WOWGlobalLock16" => ["ptr",  ["long"]],
61     "K32WOWGlobalUnlock16" => ["long",  ["long"]],
62     "K32WOWGlobalFree16" => ["long",  ["long"]],
63     "K32WOWGlobalAllocLock16" => ["long",  ["long", "long", "ptr"]],
64     "K32WOWGlobalUnlockFree16" => ["long",  ["long"]],
65     "K32WOWGlobalLockSize16" => ["long",  ["long", "ptr"]],
66     "K32WOWYield16" => ["void",  []],
67     "K32WOWDirectedYield16" => ["void",  ["long"]],
68     "K32WOWGetVDMPointerFix" => ["ptr",  ["long", "long", "long"]],
69     "K32WOWGetVDMPointerUnfix" => ["void",  ["long"]],
70     "K32WOWGetDescriptor" => ["long",  ["ptr", "ptr"]],
71     "SSOnBigStack" => ["long",  ["undef"]],
72     "FT_PrologPrime" => ["void",  ["ptr"]],
73     "QT_ThunkPrime" => ["void",  ["ptr"]],
74     "PK16FNF" => ["void",  ["str"]],
75     "GetPK16SysVar" => ["ptr",  []],
76     "GetpWin16Lock" => ["void",  ["ptr"]],
77     "_CheckNotSysLevel" => ["void",  ["ptr"]],
78     "_ConfirmSysLevel" => ["long",  ["ptr"]],
79     "_ConfirmWin16Lock" => ["long",  []],
80     "_EnterSysLevel" => ["void",  ["ptr"]],
81     "_LeaveSysLevel" => ["void",  ["ptr"]],
82     "AddAtomA" => ["long",  ["str"]],
83     "AddAtomW" => ["long",  ["wstr"]],
84     "AllocConsole" => ["long",  []],
85     "AllocSLCallback" => ["long",  ["long", "long"]],
86     "AreFileApisANSI" => ["long",  []],
87     "BackupRead" => ["long",  ["long", "ptr", "long", "ptr", "long", "long", "ptr"]],
88     "BackupSeek" => ["long",  ["long", "long", "long", "ptr", "ptr", "ptr"]],
89     "BackupWrite" => ["long",  ["long", "ptr", "long", "ptr", "long", "long", "ptr"]],
90     "Beep" => ["long",  ["long", "long"]],
91     "BuildCommDCBA" => ["long",  ["str", "ptr"]],
92     "BuildCommDCBAndTimeoutsA" => ["long",  ["str", "ptr", "ptr"]],
93     "BuildCommDCBAndTimeoutsW" => ["long",  ["wstr", "ptr", "ptr"]],
94     "BuildCommDCBW" => ["long",  ["wstr", "ptr"]],
95     "CallNamedPipeA" => ["long",  ["str", "ptr", "long", "ptr", "long", "ptr", "long"]],
96     "CallNamedPipeW" => ["long",  ["wstr", "ptr", "long", "ptr", "long", "ptr", "long"]],
97     "CancelIo" => ["long",  ["long"]],
98     "CancelWaitableTimer" => ["long",  ["long"]],
99     "ClearCommBreak" => ["long",  ["long"]],
100     "ClearCommError" => ["long",  ["long", "ptr", "ptr"]],
101     "CloseHandle" => ["long",  ["long"]],
102     "CloseProfileUserMapping" => ["long",  []],
103     "CommConfigDialogA" => ["long",  ["str", "long", "ptr"]],
104     "CommConfigDialogW" => ["long",  ["wstr", "long", "ptr"]],
105     "CompareFileTime" => ["long",  ["ptr", "ptr"]],
106     "CompareStringA" => ["long",  ["long", "long", "str", "long", "str", "long"]],
107     "CompareStringW" => ["long",  ["long", "long", "wstr", "long", "wstr", "long"]],
108     "ConnectNamedPipe" => ["long",  ["long", "ptr"]],
109     "ContinueDebugEvent" => ["long",  ["long", "long", "long"]],
110     "ConvertDefaultLocale" => ["long",  ["long"]],
111     "ConvertDialog32To16" => ["void",  ["ptr", "long", "ptr"]],
112     "ConvertToGlobalHandle" => ["long",  ["long"]],
113     "CopyFileA" => ["long",  ["str", "str", "long"]],
114     "CopyFileExA" => ["long",  ["str", "str", "ptr", "ptr", "ptr", "long"]],
115     "CopyFileExW" => ["long",  ["wstr", "wstr", "ptr", "ptr", "ptr", "long"]],
116     "CopyFileW" => ["long",  ["wstr", "wstr", "long"]],
117     "CreateConsoleScreenBuffer" => ["long",  ["long", "long", "ptr", "long", "ptr"]],
118     "CreateDirectoryA" => ["long",  ["str", "ptr"]],
119     "CreateDirectoryExA" => ["long",  ["str", "str", "ptr"]],
120     "CreateDirectoryExW" => ["long",  ["wstr", "wstr", "ptr"]],
121     "CreateDirectoryW" => ["long",  ["wstr", "ptr"]],
122     "CreateEventA" => ["long",  ["ptr", "long", "long", "str"]],
123     "CreateEventW" => ["long",  ["ptr", "long", "long", "wstr"]],
124     "CreateFileA" => ["long",  ["str", "long", "long", "ptr", "long", "long", "long"]],
125     "CreateFileMappingA" => ["long",  ["long", "ptr", "long", "long", "long", "str"]],
126     "CreateFileMappingW" => ["long",  ["long", "ptr", "long", "long", "long", "wstr"]],
127     "CreateFileW" => ["long",  ["wstr", "long", "long", "ptr", "long", "long", "long"]],
128     "CreateIoCompletionPort" => ["long",  ["long", "long", "long", "long"]],
129     "CreateMailslotA" => ["long",  ["str", "long", "long", "ptr"]],
130     "CreateMailslotW" => ["long",  ["wstr", "long", "long", "ptr"]],
131     "CreateMutexA" => ["long",  ["ptr", "long", "str"]],
132     "CreateMutexW" => ["long",  ["ptr", "long", "wstr"]],
133     "CreateNamedPipeA" => ["long",  ["str", "long", "long", "long", "long", "long", "long", "ptr"]],
134     "CreateNamedPipeW" => ["long",  ["wstr", "long", "long", "long", "long", "long", "long", "ptr"]],
135     "CreatePipe" => ["long",  ["ptr", "ptr", "ptr", "long"]],
136     "CreateProcessA" => ["long",  ["str", "str", "ptr", "ptr", "long", "long", "ptr", "str", "ptr", "ptr"]],
137     "CreateProcessW" => ["long",  ["wstr", "wstr", "ptr", "ptr", "long", "long", "ptr", "wstr", "ptr", "ptr"]],
138     "CreateSemaphoreA" => ["long",  ["ptr", "long", "long", "str"]],
139     "CreateSemaphoreW" => ["long",  ["ptr", "long", "long", "wstr"]],
140     "CreateSocketHandle" => ["long",  []],
141     "CreateTapePartition" => ["long",  ["long", "long", "long", "long"]],
142     "CreateThread" => ["long",  ["ptr", "long", "ptr", "ptr", "long", "ptr"]],
143     "CreateToolhelp32Snapshot" => ["long",  ["long", "long"]],
144     "CreateWaitableTimerA" => ["long",  ["ptr", "long", "str"]],
145     "CreateWaitableTimerW" => ["long",  ["ptr", "long", "wstr"]],
146     "DebugActiveProcess" => ["long",  ["long"]],
147     "DebugActiveProcessStop" => ["long",  ["long"]],
148     "DebugBreak" => ["void",  []],
149     "DebugBreakProcess" => ["long",  ["long"]],
150     "DebugSetProcessKillOnExit" => ["long",  ["long"]],
151     "DefineDosDeviceA" => ["long",  ["long", "str", "str"]],
152     "DeleteAtom" => ["long",  ["long"]],
153     "DeleteFileA" => ["long",  ["str"]],
154     "DeleteFileW" => ["long",  ["wstr"]],
155     "DeviceIoControl" => ["long",  ["long", "long", "ptr", "long", "ptr", "long", "ptr", "ptr"]],
156     "DisableThreadLibraryCalls" => ["long",  ["long"]],
157     "DisconnectNamedPipe" => ["long",  ["long"]],
158     "DosDateTimeToFileTime" => ["long",  ["long", "long", "ptr"]],
159     "DuplicateHandle" => ["long",  ["long", "long", "long", "ptr", "long", "long", "long"]],
160     "EnumCalendarInfoA" => ["long",  ["ptr", "long", "long", "long"]],
161     "EnumDateFormatsA" => ["long",  ["ptr", "long", "long"]],
162     "EnumDateFormatsW" => ["long",  ["ptr", "long", "long"]],
163     "EnumResourceLanguagesA" => ["long",  ["long", "str", "str", "ptr", "long"]],
164     "EnumResourceLanguagesW" => ["long",  ["long", "wstr", "wstr", "ptr", "long"]],
165     "EnumResourceNamesA" => ["long",  ["long", "str", "ptr", "long"]],
166     "EnumResourceNamesW" => ["long",  ["long", "wstr", "ptr", "long"]],
167     "EnumResourceTypesA" => ["long",  ["long", "ptr", "long"]],
168     "EnumResourceTypesW" => ["long",  ["long", "ptr", "long"]],
169     "EnumSystemCodePagesA" => ["long",  ["ptr", "long"]],
170     "EnumSystemCodePagesW" => ["long",  ["ptr", "long"]],
171     "EnumSystemLocalesA" => ["long",  ["ptr", "long"]],
172     "EnumSystemLocalesW" => ["long",  ["ptr", "long"]],
173     "EnumTimeFormatsA" => ["long",  ["ptr", "long", "long"]],
174     "EnumTimeFormatsW" => ["long",  ["ptr", "long", "long"]],
175     "EraseTape" => ["long",  ["long", "long", "long"]],
176     "EscapeCommFunction" => ["long",  ["long", "long"]],
177     "ExitProcess" => ["void",  ["long"]],
178     "ExitThread" => ["void",  ["long"]],
179     "ExpandEnvironmentStringsA" => ["long",  ["str", "str", "long"]],
180     "ExpandEnvironmentStringsW" => ["long",  ["wstr", "wstr", "long"]],
181     "FT_Exit0" => ["void",  ["ptr"]],
182     "FT_Exit12" => ["void",  ["ptr"]],
183     "FT_Exit16" => ["void",  ["ptr"]],
184     "FT_Exit20" => ["void",  ["ptr"]],
185     "FT_Exit24" => ["void",  ["ptr"]],
186     "FT_Exit28" => ["void",  ["ptr"]],
187     "FT_Exit32" => ["void",  ["ptr"]],
188     "FT_Exit36" => ["void",  ["ptr"]],
189     "FT_Exit4" => ["void",  ["ptr"]],
190     "FT_Exit40" => ["void",  ["ptr"]],
191     "FT_Exit44" => ["void",  ["ptr"]],
192     "FT_Exit48" => ["void",  ["ptr"]],
193     "FT_Exit52" => ["void",  ["ptr"]],
194     "FT_Exit56" => ["void",  ["ptr"]],
195     "FT_Exit8" => ["void",  ["ptr"]],
196     "FT_Prolog" => ["void",  ["ptr"]],
197     "FT_Thunk" => ["void",  ["ptr"]],
198     "FatalAppExitA" => ["void",  ["long", "str"]],
199     "FatalAppExitW" => ["void",  ["long", "wstr"]],
200     "FileTimeToDosDateTime" => ["long",  ["ptr", "ptr", "ptr"]],
201     "FileTimeToLocalFileTime" => ["long",  ["ptr", "ptr"]],
202     "FileTimeToSystemTime" => ["long",  ["ptr", "ptr"]],
203     "FillConsoleOutputAttribute" => ["long",  ["long", "long", "long", "long", "ptr"]],
204     "FillConsoleOutputCharacterA" => ["long",  ["long", "long", "long", "long", "ptr"]],
205     "FillConsoleOutputCharacterW" => ["long",  ["long", "long", "long", "long", "ptr"]],
206     "FindAtomA" => ["long",  ["str"]],
207     "FindAtomW" => ["long",  ["wstr"]],
208     "FindClose" => ["long",  ["long"]],
209     "FindCloseChangeNotification" => ["long",  ["long"]],
210     "FindFirstChangeNotificationA" => ["long",  ["str", "long", "long"]],
211     "FindFirstChangeNotificationW" => ["long",  ["wstr", "long", "long"]],
212     "FindFirstFileA" => ["long",  ["str", "ptr"]],
213     "FindFirstFileExA" => ["long",  ["str", "ptr", "ptr", "ptr", "ptr", "long"]],
214     "FindFirstFileExW" => ["long",  ["wstr", "ptr", "ptr", "ptr", "ptr", "long"]],
215     "FindFirstFileW" => ["long",  ["wstr", "ptr"]],
216     "FindNextChangeNotification" => ["long",  ["long"]],
217     "FindNextFileA" => ["long",  ["long", "ptr"]],
218     "FindNextFileW" => ["long",  ["long", "ptr"]],
219     "FindResource16" => ["long",  ["long", "str", "str"]],
220     "FindResourceA" => ["long",  ["long", "str", "str"]],
221     "FindResourceExA" => ["long",  ["long", "str", "str", "long"]],
222     "FindResourceExW" => ["long",  ["long", "wstr", "wstr", "long"]],
223     "FindResourceW" => ["long",  ["long", "wstr", "wstr"]],
224     "FlushConsoleInputBuffer" => ["long",  ["long"]],
225     "FlushFileBuffers" => ["long",  ["long"]],
226     "FlushInstructionCache" => ["long",  ["long", "long", "long"]],
227     "FlushViewOfFile" => ["long",  ["ptr", "long"]],
228     "FormatMessageA" => ["long",  ["long", "ptr", "long", "long", "str", "long", "ptr"]],
229     "FormatMessageW" => ["long",  ["long", "ptr", "long", "long", "wstr", "long", "ptr"]],
230     "FreeConsole" => ["long",  []],
231     "FreeEnvironmentStringsA" => ["long",  ["str"]],
232     "FreeEnvironmentStringsW" => ["long",  ["wstr"]],
233     "FreeLibrary" => ["long",  ["long"]],
234     "FreeLibraryAndExitThread" => ["void",  ["long", "long"]],
235     "FreeResource" => ["long",  ["long"]],
236     "FreeResource16" => ["long",  ["long"]],
237     "FreeSLCallback" => ["void",  ["long"]],
238     "GenerateConsoleCtrlEvent" => ["long",  ["long", "long"]],
239     "Get16DLLAddress" => ["ptr",  ["long", "str"]],
240     "GetACP" => ["long",  []],
241     "GetAtomNameA" => ["long",  ["long", "str", "long"]],
242     "GetAtomNameW" => ["long",  ["long", "wstr", "long"]],
243     "GetBinaryType" => ["long",  ["str", "ptr"]],
244     "GetBinaryTypeA" => ["long",  ["str", "ptr"]],
245     "GetBinaryTypeW" => ["long",  ["wstr", "ptr"]],
246     "GetCPInfo" => ["long",  ["long", "ptr"]],
247     "GetCalendarInfoA" => ["long",  ["long", "long", "long", "str", "long", "ptr"]],
248     "GetCalendarInfoW" => ["long",  ["long", "long", "long", "wstr", "long", "ptr"]],
249     "GetCommConfig" => ["long",  ["long", "ptr", "ptr"]],
250     "GetCommMask" => ["long",  ["long", "ptr"]],
251     "GetCommModemStatus" => ["long",  ["long", "ptr"]],
252     "GetCommProperties" => ["long",  ["long", "ptr"]],
253     "GetCommState" => ["long",  ["long", "ptr"]],
254     "GetCommTimeouts" => ["long",  ["long", "ptr"]],
255     "GetCommandLineA" => ["str",  []],
256     "GetCommandLineW" => ["wstr",  []],
257     "GetCompressedFileSizeA" => ["long",  ["str", "ptr"]],
258     "GetCompressedFileSizeW" => ["long",  ["wstr", "ptr"]],
259     "GetComputerNameA" => ["long",  ["str", "ptr"]],
260     "GetComputerNameExA" => ["long",  ["ptr", "str", "ptr"]],
261     "GetComputerNameExW" => ["long",  ["ptr", "wstr", "ptr"]],
262     "GetComputerNameW" => ["long",  ["wstr", "ptr"]],
263     "GetConsoleCP" => ["long",  []],
264     "GetConsoleCursorInfo" => ["long",  ["long", "ptr"]],
265     "GetConsoleMode" => ["long",  ["long", "ptr"]],
266     "GetConsoleOutputCP" => ["long",  []],
267     "GetConsoleScreenBufferInfo" => ["long",  ["long", "ptr"]],
268     "GetConsoleTitleA" => ["long",  ["str", "long"]],
269     "GetConsoleTitleW" => ["long",  ["wstr", "long"]],
270     "GetCurrencyFormatA" => ["long",  ["long", "long", "str", "ptr", "str", "long"]],
271     "GetCurrencyFormatW" => ["long",  ["long", "long", "wstr", "ptr", "wstr", "long"]],
272     "GetCurrentDirectoryA" => ["long",  ["long", "str"]],
273     "GetCurrentDirectoryW" => ["long",  ["long", "wstr"]],
274     "GetCurrentProcess" => ["long",  []],
275     "GetCurrentProcessId" => ["long",  []],
276     "GetCurrentTask" => ["long",  []],
277     "GetCurrentThread" => ["long",  []],
278     "GetCurrentThreadId" => ["long",  []],
279     "GetDOSEnvironment16" => ["ptr",  []],
280     "GetDateFormatA" => ["long",  ["long", "long", "ptr", "str", "str", "long"]],
281     "GetDateFormatW" => ["long",  ["long", "long", "ptr", "wstr", "wstr", "long"]],
282     "GetDefaultCommConfigA" => ["long",  ["str", "ptr", "ptr"]],
283     "GetDefaultCommConfigW" => ["long",  ["wstr", "ptr", "ptr"]],
284     "GetDiskFreeSpaceA" => ["long",  ["str", "ptr", "ptr", "ptr", "ptr"]],
285     "GetDiskFreeSpaceExA" => ["long",  ["str", "ptr", "ptr", "ptr"]],
286     "GetDiskFreeSpaceExW" => ["long",  ["wstr", "ptr", "ptr", "ptr"]],
287     "GetDiskFreeSpaceW" => ["long",  ["wstr", "ptr", "ptr", "ptr", "ptr"]],
288     "GetDriveTypeA" => ["long",  ["str"]],
289     "GetDriveTypeW" => ["long",  ["wstr"]],
290     "GetEnvironmentStrings" => ["str",  []],
291     "GetEnvironmentStringsA" => ["str",  []],
292     "GetEnvironmentStringsW" => ["wstr",  []],
293     "GetEnvironmentVariableA" => ["long",  ["str", "str", "long"]],
294     "GetEnvironmentVariableW" => ["long",  ["wstr", "wstr", "long"]],
295     "GetExitCodeProcess" => ["long",  ["long", "ptr"]],
296     "GetExitCodeThread" => ["long",  ["long", "ptr"]],
297     "GetFileAttributesA" => ["long",  ["str"]],
298     "GetFileAttributesExA" => ["long",  ["str", "ptr", "ptr"]],
299     "GetFileAttributesExW" => ["long",  ["wstr", "ptr", "ptr"]],
300     "GetFileAttributesW" => ["long",  ["wstr"]],
301     "GetFileInformationByHandle" => ["long",  ["long", "ptr"]],
302     "GetFileSize" => ["long",  ["long", "ptr"]],
303     "GetFileTime" => ["long",  ["long", "ptr", "ptr", "ptr"]],
304     "GetFileType" => ["long",  ["long"]],
305     "GetFullPathNameA" => ["long",  ["str", "long", "str", "ptr"]],
306     "GetFullPathNameW" => ["long",  ["wstr", "long", "wstr", "ptr"]],
307     "GetHandleContext" => ["long",  ["long"]],
308     "GetHandleInformation" => ["long",  ["long", "ptr"]],
309     "GetLargestConsoleWindowSize" => ["long",  ["long"]],
310     "GetLastError" => ["long",  []],
311     "GetLocalTime" => ["void",  ["ptr"]],
312     "GetLocaleInfoA" => ["long",  ["long", "long", "str", "long"]],
313     "GetLocaleInfoW" => ["long",  ["long", "long", "wstr", "long"]],
314     "GetLogicalDriveStringsA" => ["long",  ["long", "str"]],
315     "GetLogicalDriveStringsW" => ["long",  ["long", "wstr"]],
316     "GetLogicalDrives" => ["long",  []],
317     "GetLongPathNameA" => ["long",  ["str", "str", "long"]],
318     "GetLongPathNameW" => ["long",  ["wstr", "wstr", "long"]],
319     "GetMailslotInfo" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr"]],
320     "GetModuleFileName16" => ["long",  ["long", "str", "long"]],
321     "GetModuleFileNameA" => ["long",  ["long", "str", "long"]],
322     "GetModuleFileNameW" => ["long",  ["long", "wstr", "long"]],
323     "GetModuleHandle16" => ["long",  ["str"]],
324     "GetModuleHandleA" => ["long",  ["str"]],
325     "GetModuleHandleW" => ["long",  ["wstr"]],
326     "GetNamedPipeHandleStateA" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr", "str", "long"]],
327     "GetNamedPipeHandleStateW" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr", "wstr", "long"]],
328     "GetNamedPipeInfo" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr"]],
329     "GetNumberFormatA" => ["long",  ["long", "long", "str", "ptr", "str", "long"]],
330     "GetNumberFormatW" => ["long",  ["long", "long", "wstr", "ptr", "wstr", "long"]],
331     "GetNumberOfConsoleInputEvents" => ["long",  ["long", "ptr"]],
332     "GetNumberOfConsoleMouseButtons" => ["long",  ["ptr"]],
333     "GetOEMCP" => ["long",  []],
334     "GetOverlappedResult" => ["long",  ["long", "ptr", "ptr", "long"]],
335     "GetPriorityClass" => ["long",  ["long"]],
336     "GetPrivateProfileIntA" => ["long",  ["str", "str", "long", "str"]],
337     "GetPrivateProfileIntW" => ["long",  ["wstr", "wstr", "long", "wstr"]],
338     "GetPrivateProfileSectionA" => ["long",  ["str", "str", "long", "str"]],
339     "GetPrivateProfileSectionNamesA" => ["long",  ["str", "long", "str"]],
340     "GetPrivateProfileSectionNamesW" => ["long",  ["wstr", "long", "wstr"]],
341     "GetPrivateProfileSectionW" => ["long",  ["wstr", "wstr", "long", "wstr"]],
342     "GetPrivateProfileStringA" => ["long",  ["str", "str", "str", "str", "long", "str"]],
343     "GetPrivateProfileStringW" => ["long",  ["wstr", "wstr", "wstr", "wstr", "long", "wstr"]],
344     "GetPrivateProfileStructA" => ["long",  ["str", "str", "ptr", "long", "str"]],
345     "GetPrivateProfileStructW" => ["long",  ["wstr", "wstr", "ptr", "long", "wstr"]],
346     "GetProcAddress" => ["ptr",  ["long", "str"]],
347     "GetProcessAffinityMask" => ["long",  ["long", "ptr", "ptr"]],
348     "GetProcessFlags" => ["long",  ["long"]],
349     "GetProcessHeap" => ["long",  []],
350     "GetProcessHeaps" => ["long",  ["long", "ptr"]],
351     "GetProcessShutdownParameters" => ["long",  ["ptr", "ptr"]],
352     "GetProcessTimes" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr"]],
353     "GetProcessVersion" => ["long",  ["long"]],
354     "GetProcessWorkingSetSize" => ["long",  ["long", "ptr", "ptr"]],
355     "GetProfileIntA" => ["long",  ["str", "str", "long"]],
356     "GetProfileIntW" => ["long",  ["wstr", "wstr", "long"]],
357     "GetProfileSectionA" => ["long",  ["str", "str", "long"]],
358     "GetProfileSectionW" => ["long",  ["wstr", "wstr", "long"]],
359     "GetProfileStringA" => ["long",  ["str", "str", "str", "str", "long"]],
360     "GetProfileStringW" => ["long",  ["wstr", "wstr", "wstr", "wstr", "long"]],
361     "GetQueuedCompletionStatus" => ["long",  ["long", "ptr", "ptr", "ptr", "long"]],
362     "GetShortPathNameA" => ["long",  ["str", "str", "long"]],
363     "GetShortPathNameW" => ["long",  ["wstr", "wstr", "long"]],
364     "GetStartupInfoA" => ["void",  ["ptr"]],
365     "GetStartupInfoW" => ["void",  ["ptr"]],
366     "GetStdHandle" => ["long",  ["long"]],
367     "GetStringTypeA" => ["long",  ["long", "long", "str", "long", "ptr"]],
368     "GetStringTypeExA" => ["long",  ["long", "long", "str", "long", "ptr"]],
369     "GetStringTypeExW" => ["long",  ["long", "long", "wstr", "long", "ptr"]],
370     "GetStringTypeW" => ["long",  ["long", "wstr", "long", "ptr"]],
371     "GetSystemDefaultLCID" => ["long",  []],
372     "GetSystemDefaultLangID" => ["long",  []],
373     "GetSystemDirectoryA" => ["long",  ["str", "long"]],
374     "GetSystemDirectoryW" => ["long",  ["wstr", "long"]],
375     "GetSystemInfo" => ["void",  ["ptr"]],
376     "GetSystemPowerStatus" => ["long",  ["ptr"]],
377     "GetSystemTime" => ["void",  ["ptr"]],
378     "GetSystemTimeAdjustment" => ["long",  ["ptr", "ptr", "ptr"]],
379     "GetSystemTimeAsFileTime" => ["void",  ["ptr"]],
380     "GetSystemWindowsDirectoryA" => ["long",  ["str", "long"]],
381     "GetSystemWindowsDirectoryW" => ["long",  ["wstr", "long"]],
382     "GetTapeParameters" => ["long",  ["long", "long", "ptr", "ptr"]],
383     "GetTapePosition" => ["long",  ["long", "long", "ptr", "ptr", "ptr"]],
384     "GetTapeStatus" => ["long",  ["long"]],
385     "GetTempFileNameA" => ["long",  ["str", "str", "long", "str"]],
386     "GetTempFileNameW" => ["long",  ["wstr", "wstr", "long", "wstr"]],
387     "GetTempPathA" => ["long",  ["long", "str"]],
388     "GetTempPathW" => ["long",  ["long", "wstr"]],
389     "GetThreadContext" => ["long",  ["long", "ptr"]],
390     "GetThreadLocale" => ["long",  []],
391     "GetThreadPriority" => ["long",  ["long"]],
392     "GetThreadPriorityBoost" => ["long",  ["long", "ptr"]],
393     "GetThreadSelectorEntry" => ["long",  ["long", "long", "ptr"]],
394     "GetThreadTimes" => ["long",  ["long", "ptr", "ptr", "ptr", "ptr"]],
395     "GetTickCount" => ["long",  []],
396     "GetTimeFormatA" => ["long",  ["long", "long", "ptr", "str", "str", "long"]],
397     "GetTimeFormatW" => ["long",  ["long", "long", "ptr", "wstr", "wstr", "long"]],
398     "GetTimeZoneInformation" => ["long",  ["ptr"]],
399     "GetUserDefaultLCID" => ["long",  []],
400     "GetUserDefaultLangID" => ["long",  []],
401     "GetVersion" => ["long",  []],
402     "GetVersionExA" => ["long",  ["ptr"]],
403     "GetVersionExW" => ["long",  ["ptr"]],
404     "GetVolumeInformationA" => ["long",  ["str", "str", "long", "ptr", "ptr", "ptr", "str", "long"]],
405     "GetVolumeInformationW" => ["long",  ["wstr", "wstr", "long", "ptr", "ptr", "ptr", "wstr", "long"]],
406     "GetWindowsDirectoryA" => ["long",  ["str", "long"]],
407     "GetWindowsDirectoryW" => ["long",  ["wstr", "long"]],
408     "GlobalAddAtomA" => ["long",  ["str"]],
409     "GlobalAddAtomW" => ["long",  ["wstr"]],
410     "GlobalAlloc" => ["long",  ["long", "long"]],
411     "GlobalCompact" => ["long",  ["long"]],
412     "GlobalDeleteAtom" => ["long",  ["long"]],
413     "GlobalFindAtomA" => ["long",  ["str"]],
414     "GlobalFindAtomW" => ["long",  ["wstr"]],
415     "GlobalFix" => ["void",  ["long"]],
416     "GlobalFlags" => ["long",  ["long"]],
417     "GlobalFlags16" => ["long",  ["long"]],
418     "GlobalFree" => ["long",  ["long"]],
419     "GlobalGetAtomNameA" => ["long",  ["long", "str", "long"]],
420     "GlobalGetAtomNameW" => ["long",  ["long", "wstr", "long"]],
421     "GlobalHandle" => ["long",  ["ptr"]],
422     "GlobalLock" => ["ptr",  ["long"]],
423     "GlobalMemoryStatus" => ["void",  ["ptr"]],
424     "GlobalReAlloc" => ["long",  ["long", "long", "long"]],
425     "GlobalReAlloc16" => ["long",  ["long", "long", "long"]],
426     "GlobalSize" => ["long",  ["long"]],
427     "GlobalUnWire" => ["long",  ["long"]],
428     "GlobalUnfix" => ["void",  ["long"]],
429     "GlobalUnlock" => ["long",  ["long"]],
430     "GlobalWire" => ["ptr",  ["long"]],
431     "HeapCompact" => ["long",  ["long", "long"]],
432     "HeapCreate" => ["long",  ["long", "long", "long"]],
433     "HeapDestroy" => ["long",  ["long"]],
434     "HeapLock" => ["long",  ["long"]],
435     "HeapUnlock" => ["long",  ["long"]],
436     "HeapValidate" => ["long",  ["long", "long", "ptr"]],
437     "HeapWalk" => ["long",  ["long", "ptr"]],
438     "InitAtomTable" => ["long",  ["long"]],
439     "InitializeCriticalSection" => ["void",  ["ptr"]],
440     "InitializeCriticalSectionAndSpinCount" => ["long",  ["ptr", "long"]],
441     "InterlockedCompareExchange" => ["long",  ["ptr", "long", "long"]],
442     "InterlockedDecrement" => ["long",  ["ptr"]],
443     "InterlockedExchange" => ["long",  ["ptr", "long"]],
444     "InterlockedExchangeAdd" => ["long",  ["ptr", "long"]],
445     "InterlockedIncrement" => ["long",  ["ptr"]],
446     "IsBadCodePtr" => ["long",  ["ptr"]],
447     "IsBadHugeReadPtr" => ["long",  ["ptr", "long"]],
448     "IsBadHugeWritePtr" => ["long",  ["ptr", "long"]],
449     "IsBadReadPtr" => ["long",  ["ptr", "long"]],
450     "IsBadStringPtrA" => ["long",  ["str", "long"]],
451     "IsBadStringPtrW" => ["long",  ["wstr", "long"]],
452     "IsBadWritePtr" => ["long",  ["ptr", "long"]],
453     "IsDBCSLeadByte" => ["long",  ["long"]],
454     "IsDBCSLeadByteEx" => ["long",  ["long", "long"]],
455     "IsDebuggerPresent" => ["long",  []],
456     "IsProcessorFeaturePresent" => ["long",  ["long"]],
457     "IsTask16" => ["long",  ["long"]],
458     "IsValidCodePage" => ["long",  ["long"]],
459     "IsValidLocale" => ["long",  ["long", "long"]],
460     "K32Thk1632Epilog" => ["void",  ["ptr"]],
461     "K32Thk1632Prolog" => ["void",  ["ptr"]],
462     "LCMapStringA" => ["long",  ["long", "long", "str", "long", "str", "long"]],
463     "LCMapStringW" => ["long",  ["long", "long", "wstr", "long", "wstr", "long"]],
464     "LoadLibraryA" => ["long",  ["str"]],
465     "LoadLibraryExA" => ["long",  ["str", "long", "long"]],
466     "LoadLibraryExW" => ["long",  ["wstr", "long", "long"]],
467     "LoadLibraryW" => ["long",  ["wstr"]],
468     "LoadModule" => ["long",  ["str", "ptr"]],
469     "LoadModule16" => ["long",  ["str", "ptr"]],
470     "LoadResource" => ["long",  ["long", "long"]],
471     "LoadResource16" => ["long",  ["long", "long"]],
472     "LocalAlloc" => ["long",  ["long", "long"]],
473     "LocalCompact" => ["long",  ["long"]],
474     "LocalFileTimeToFileTime" => ["long",  ["ptr", "ptr"]],
475     "LocalFlags" => ["long",  ["long"]],
476     "LocalFree" => ["long",  ["long"]],
477     "LocalHandle" => ["long",  ["ptr"]],
478     "LocalLock" => ["ptr",  ["long"]],
479     "LocalReAlloc" => ["long",  ["long", "long", "long"]],
480     "LocalShrink" => ["long",  ["long", "long"]],
481     "LocalSize" => ["long",  ["long"]],
482     "LocalUnlock" => ["long",  ["long"]],
483     "LockFile" => ["long",  ["long", "long", "long", "long", "long"]],
484     "LockFileEx" => ["long",  ["long", "long", "long", "long", "long", "ptr"]],
485     "LockResource" => ["ptr",  ["long"]],
486     "LockResource16" => ["ptr",  ["long"]],
487     "MakeCriticalSectionGlobal" => ["void",  ["ptr"]],
488     "MapHInstLS" => ["void",  ["ptr"]],
489     "MapHInstLS_PN" => ["void",  ["ptr"]],
490     "MapHInstSL" => ["void",  ["ptr"]],
491     "MapHInstSL_PN" => ["void",  ["ptr"]],
492     "MapHModuleLS" => ["long",  ["long"]],
493     "MapHModuleSL" => ["long",  ["long"]],
494     "MapLS" => ["ptr",  ["ptr"]],
495     "MapSL" => ["ptr",  ["ptr"]],
496     "MapSLFix" => ["ptr",  ["ptr"]],
497     "MapViewOfFile" => ["ptr",  ["long", "long", "long", "long", "long"]],
498     "MapViewOfFileEx" => ["ptr",  ["long", "long", "long", "long", "long", "ptr"]],
499     "Module32First" => ["long",  ["long", "ptr"]],
500     "Module32Next" => ["long",  ["long", "ptr"]],
501     "MoveFileA" => ["long",  ["str", "str"]],
502     "MoveFileExA" => ["long",  ["str", "str", "long"]],
503     "MoveFileExW" => ["long",  ["wstr", "wstr", "long"]],
504     "MoveFileW" => ["long",  ["wstr", "wstr"]],
505     "MulDiv" => ["long",  ["long", "long", "long"]],
506     "MultiByteToWideChar" => ["long",  ["long", "long", "str", "long", "wstr", "long"]],
507     "OpenEventA" => ["long",  ["long", "long", "str"]],
508     "OpenEventW" => ["long",  ["long", "long", "wstr"]],
509     "OpenFile" => ["long",  ["str", "ptr", "long"]],
510     "OpenFileMappingA" => ["long",  ["long", "long", "str"]],
511     "OpenFileMappingW" => ["long",  ["long", "long", "wstr"]],
512     "OpenMutexA" => ["long",  ["long", "long", "str"]],
513     "OpenMutexW" => ["long",  ["long", "long", "wstr"]],
514     "OpenProcess" => ["long",  ["long", "long", "long"]],
515     "OpenSemaphoreA" => ["long",  ["long", "long", "str"]],
516     "OpenSemaphoreW" => ["long",  ["long", "long", "wstr"]],
517     "OpenVxDHandle" => ["long",  ["long"]],
518     "OpenWaitableTimerA" => ["long",  ["long", "long", "str"]],
519     "OpenWaitableTimerW" => ["long",  ["long", "long", "wstr"]],
520     "OutputDebugStringA" => ["void",  ["str"]],
521     "OutputDebugStringW" => ["void",  ["wstr"]],
522     "PeekConsoleInputA" => ["long",  ["long", "ptr", "long", "ptr"]],
523     "PeekConsoleInputW" => ["long",  ["long", "ptr", "long", "ptr"]],
524     "PeekNamedPipe" => ["long",  ["long", "ptr", "long", "ptr", "ptr", "ptr"]],
525     "PrepareTape" => ["long",  ["long", "long", "long"]],
526     "PrivateFreeLibrary" => ["void",  ["long"]],
527     "PrivateLoadLibrary" => ["long",  ["str"]],
528     "Process32First" => ["long",  ["long", "ptr"]],
529     "Process32Next" => ["long",  ["long", "ptr"]],
530     "ProcessIdToSessionId" => ["long",  ["long", "ptr"]],
531     "PulseEvent" => ["long",  ["long"]],
532     "PurgeComm" => ["long",  ["long", "long"]],
533     "QT_Thunk" => ["void",  ["ptr"]],
534     "QueryDosDeviceA" => ["long",  ["str", "str", "long"]],
535     "QueryDosDeviceW" => ["long",  ["wstr", "wstr", "long"]],
536     "QueryPerformanceCounter" => ["long",  ["ptr"]],
537     "QueryPerformanceFrequency" => ["long",  ["ptr"]],
538     "QueueUserAPC" => ["long",  ["ptr", "long", "long"]],
539     "RaiseException" => ["void",  ["long", "long", "long", "ptr"]],
540     "ReadConsoleA" => ["long",  ["long", "ptr", "long", "ptr", "ptr"]],
541     "ReadConsoleInputA" => ["long",  ["long", "ptr", "long", "ptr"]],
542     "ReadConsoleInputW" => ["long",  ["long", "ptr", "long", "ptr"]],
543     "ReadConsoleOutputA" => ["long",  ["long", "ptr", "long", "long", "ptr"]],
544     "ReadConsoleOutputAttribute" => ["long",  ["long", "ptr", "long", "long", "ptr"]],
545     "ReadConsoleOutputCharacterA" => ["long",  ["long", "str", "long", "long", "ptr"]],
546     "ReadConsoleOutputCharacterW" => ["long",  ["long", "wstr", "long", "long", "ptr"]],
547     "ReadConsoleOutputW" => ["long",  ["long", "ptr", "long", "long", "ptr"]],
548     "ReadConsoleW" => ["long",  ["long", "ptr", "long", "ptr", "ptr"]],
549     "ReadFile" => ["long",  ["long", "ptr", "long", "ptr", "ptr"]],
550     "ReadFileEx" => ["long",  ["long", "ptr", "long", "ptr", "ptr"]],
551     "ReadProcessMemory" => ["long",  ["long", "ptr", "ptr", "long", "ptr"]],
552     "RegisterServiceProcess" => ["long",  ["long", "long"]],
553     "ReinitializeCriticalSection" => ["void",  ["ptr"]],
554     "ReleaseMutex" => ["long",  ["long"]],
555     "ReleaseSemaphore" => ["long",  ["long", "long", "ptr"]],
556     "RemoveDirectoryA" => ["long",  ["str"]],
557     "RemoveDirectoryW" => ["long",  ["wstr"]],
558     "ResetEvent" => ["long",  ["long"]],
559     "ResumeThread" => ["long",  ["long"]],
560     "SMapLS" => ["void",  ["ptr"]],
561     "SMapLS_IP_EBP_12" => ["void",  ["ptr"]],
562     "SMapLS_IP_EBP_16" => ["void",  ["ptr"]],
563     "SMapLS_IP_EBP_20" => ["void",  ["ptr"]],
564     "SMapLS_IP_EBP_24" => ["void",  ["ptr"]],
565     "SMapLS_IP_EBP_28" => ["void",  ["ptr"]],
566     "SMapLS_IP_EBP_32" => ["void",  ["ptr"]],
567     "SMapLS_IP_EBP_36" => ["void",  ["ptr"]],
568     "SMapLS_IP_EBP_40" => ["void",  ["ptr"]],
569     "SMapLS_IP_EBP_8" => ["void",  ["ptr"]],
570     "SUnMapLS" => ["void",  ["ptr"]],
571     "SUnMapLS_IP_EBP_12" => ["void",  ["ptr"]],
572     "SUnMapLS_IP_EBP_16" => ["void",  ["ptr"]],
573     "SUnMapLS_IP_EBP_20" => ["void",  ["ptr"]],
574     "SUnMapLS_IP_EBP_24" => ["void",  ["ptr"]],
575     "SUnMapLS_IP_EBP_28" => ["void",  ["ptr"]],
576     "SUnMapLS_IP_EBP_32" => ["void",  ["ptr"]],
577     "SUnMapLS_IP_EBP_36" => ["void",  ["ptr"]],
578     "SUnMapLS_IP_EBP_40" => ["void",  ["ptr"]],
579     "SUnMapLS_IP_EBP_8" => ["void",  ["ptr"]],
580     "ScrollConsoleScreenBufferA" => ["long",  ["long", "ptr", "ptr", "long", "ptr"]],
581     "SearchPathA" => ["long",  ["str", "str", "str", "long", "str", "ptr"]],
582     "SearchPathW" => ["long",  ["wstr", "wstr", "wstr", "long", "wstr", "ptr"]],
583     "SetCalendarInfoA" => ["long",  ["long", "long", "long", "str"]],
584     "SetCalendarInfoW" => ["long",  ["long", "long", "long", "wstr"]],
585     "SetCommBreak" => ["long",  ["long"]],
586     "SetCommConfig" => ["long",  ["long", "ptr", "long"]],
587     "SetCommMask" => ["long",  ["long", "long"]],
588     "SetCommState" => ["long",  ["long", "ptr"]],
589     "SetCommTimeouts" => ["long",  ["long", "ptr"]],
590     "SetComputerNameA" => ["long",  ["str"]],
591     "SetComputerNameW" => ["long",  ["wstr"]],
592     "SetConsoleActiveScreenBuffer" => ["long",  ["long"]],
593     "SetConsoleCP" => ["long",  ["long"]],
594     "SetConsoleCursorInfo" => ["long",  ["long", "ptr"]],
595     "SetConsoleCursorPosition" => ["long",  ["long", "long"]],
596     "SetConsoleInputExeNameA" => ["long",  ["str"]],
597     "SetConsoleInputExeNameW" => ["long",  ["wstr"]],
598     "SetConsoleMode" => ["long",  ["long", "long"]],
599     "SetConsoleOutputCP" => ["long",  ["long"]],
600     "SetConsoleScreenBufferSize" => ["long",  ["long", "long"]],
601     "SetConsoleTextAttribute" => ["long",  ["long", "long"]],
602     "SetConsoleTitleA" => ["long",  ["str"]],
603     "SetConsoleTitleW" => ["long",  ["wstr"]],
604     "SetConsoleWindowInfo" => ["long",  ["long", "long", "ptr"]],
605     "SetCriticalSectionSpinCount" => ["long",  ["ptr", "long"]],
606     "SetCurrentDirectoryA" => ["long",  ["str"]],
607     "SetCurrentDirectoryW" => ["long",  ["wstr"]],
608     "SetDefaultCommConfigA" => ["long",  ["str", "ptr", "long"]],
609     "SetDefaultCommConfigW" => ["long",  ["wstr", "ptr", "long"]],
610     "SetEndOfFile" => ["long",  ["long"]],
611     "SetEnvironmentVariableA" => ["long",  ["str", "str"]],
612     "SetEnvironmentVariableW" => ["long",  ["wstr", "wstr"]],
613     "SetErrorMode" => ["long",  ["long"]],
614     "SetEvent" => ["long",  ["long"]],
615     "SetFileApisToANSI" => ["void",  []],
616     "SetFileApisToOEM" => ["void",  []],
617     "SetFileAttributesA" => ["long",  ["str", "long"]],
618     "SetFileAttributesW" => ["long",  ["wstr", "long"]],
619     "SetFilePointer" => ["long",  ["long", "long", "ptr", "long"]],
620     "SetFileTime" => ["long",  ["long", "ptr", "ptr", "ptr"]],
621     "SetHandleContext" => ["long",  ["long", "long"]],
622     "SetHandleCount" => ["long",  ["long"]],
623     "SetHandleInformation" => ["long",  ["long", "long", "long"]],
624     "SetLastError" => ["void",  ["long"]],
625     "SetLocalTime" => ["long",  ["ptr"]],
626     "SetLocaleInfoA" => ["long",  ["long", "long", "str"]],
627     "SetNamedPipeHandleState" => ["long",  ["long", "ptr", "ptr", "ptr"]],
628     "SetPriorityClass" => ["long",  ["long", "long"]],
629     "SetProcessAffinityMask" => ["long",  ["long", "long"]],
630     "SetProcessPriorityBoost" => ["long",  ["long", "long"]],
631     "SetProcessShutdownParameters" => ["long",  ["long", "long"]],
632     "SetProcessWorkingSetSize" => ["long",  ["long", "long", "long"]],
633     "SetStdHandle" => ["long",  ["long", "long"]],
634     "SetSystemPowerState" => ["long",  ["long", "long"]],
635     "SetSystemTime" => ["long",  ["ptr"]],
636     "SetTapeParameters" => ["long",  ["long", "long", "ptr"]],
637     "SetTapePosition" => ["long",  ["long", "long", "long", "long", "long", "long"]],
638     "SetThreadAffinityMask" => ["long",  ["long", "long"]],
639     "SetThreadContext" => ["long",  ["long", "ptr"]],
640     "SetThreadExecutionState" => ["long",  ["long"]],
641     "SetThreadIdealProcessor" => ["long",  ["long", "long"]],
642     "SetThreadLocale" => ["long",  ["long"]],
643     "SetThreadPriority" => ["long",  ["long", "long"]],
644     "SetThreadPriorityBoost" => ["long",  ["long", "long"]],
645     "SetTimeZoneInformation" => ["long",  ["ptr"]],
646     "SetUnhandledExceptionFilter" => ["ptr",  ["ptr"]],
647     "SetVolumeLabelA" => ["long",  ["str", "str"]],
648     "SetVolumeLabelW" => ["long",  ["wstr", "wstr"]],
649     "SetWaitableTimer" => ["long",  ["long", "ptr", "long", "ptr", "ptr", "long"]],
650     "SetupComm" => ["long",  ["long", "long", "long"]],
651     "SizeofResource" => ["long",  ["long", "long"]],
652     "SizeofResource16" => ["long",  ["long", "long"]],
653     "Sleep" => ["void",  ["long"]],
654     "SleepEx" => ["long",  ["long", "long"]],
655     "SuspendThread" => ["long",  ["long"]],
656     "SystemTimeToFileTime" => ["long",  ["ptr", "ptr"]],
657     "SystemTimeToTzSpecificLocalTime" => ["long",  ["ptr", "ptr", "ptr"]],
658     "TerminateProcess" => ["long",  ["long", "long"]],
659     "TerminateThread" => ["long",  ["long", "long"]],
660     "Thread32First" => ["long",  ["long", "ptr"]],
661     "Thread32Next" => ["long",  ["long", "ptr"]],
662     "ThunkConnect32" => ["long",  ["ptr", "str", "str", "str", "long", "long"]],
663     "TlsAlloc" => ["long",  []],
664     "TlsFree" => ["long",  ["long"]],
665     "TlsGetValue" => ["ptr",  ["long"]],
666     "TlsSetValue" => ["long",  ["long", "ptr"]],
667     "TransactNamedPipe" => ["long",  ["long", "ptr", "long", "ptr", "long", "ptr", "ptr"]],
668     "TransmitCommChar" => ["long",  ["long", "long"]],
669     "UTRegister" => ["long",  ["long", "str", "str", "str", "ptr", "ptr", "ptr"]],
670     "UTUnRegister" => ["void",  ["long"]],
671     "UnMapLS" => ["void",  ["ptr"]],
672     "UnMapSLFixArray" => ["void",  ["ptr", "long", "ptr"]],
673     "UnhandledExceptionFilter" => ["long",  ["ptr"]],
674     "UninitializeCriticalSection" => ["void",  ["ptr"]],
675     "UnlockFile" => ["long",  ["long", "long", "long", "long", "long"]],
676     "UnlockFileEx" => ["long",  ["long", "long", "long", "long", "ptr"]],
677     "UnmapViewOfFile" => ["long",  ["ptr"]],
678     "UpdateResourceA" => ["long",  ["long", "str", "str", "long", "ptr", "long"]],
679     "UpdateResourceW" => ["long",  ["long", "wstr", "wstr", "long", "ptr", "long"]],
680     "VerLanguageNameA" => ["long",  ["long", "str", "long"]],
681     "VerLanguageNameW" => ["long",  ["long", "wstr", "long"]],
682     "VirtualAlloc" => ["ptr",  ["ptr", "long", "long", "long"]],
683     "VirtualAllocEx" => ["ptr",  ["long", "ptr", "long", "long", "long"]],
684     "VirtualFree" => ["long",  ["ptr", "long", "long"]],
685     "VirtualLock" => ["long",  ["ptr", "long"]],
686     "VirtualProtect" => ["long",  ["ptr", "long", "long", "ptr"]],
687     "VirtualProtectEx" => ["long",  ["long", "ptr", "long", "long", "ptr"]],
688     "VirtualQuery" => ["long",  ["ptr", "ptr", "long"]],
689     "VirtualQueryEx" => ["long",  ["long", "ptr", "ptr", "long"]],
690     "VirtualUnlock" => ["long",  ["ptr", "long"]],
691     "WaitCommEvent" => ["long",  ["long", "ptr", "ptr"]],
692     "WaitForDebugEvent" => ["long",  ["ptr", "long"]],
693     "WaitForMultipleObjects" => ["long",  ["long", "ptr", "long", "long"]],
694     "WaitForMultipleObjectsEx" => ["long",  ["long", "ptr", "long", "long", "long"]],
695     "WaitForSingleObject" => ["long",  ["long", "long"]],
696     "WaitForSingleObjectEx" => ["long",  ["long", "long", "long"]],
697     "WaitNamedPipeA" => ["long",  ["str", "long"]],
698     "WaitNamedPipeW" => ["long",  ["wstr", "long"]],
699     "WideCharToMultiByte" => ["long",  ["long", "long", "wstr", "long", "str", "long", "str", "ptr"]],
700     "WinExec" => ["long",  ["str", "long"]],
701     "WinExec16" => ["long",  ["str", "long"]],
702     "WriteConsoleA" => ["long",  ["long", "ptr", "long", "ptr", "ptr"]],
703     "WriteConsoleInputA" => ["long",  ["long", "ptr", "long", "ptr"]],
704     "WriteConsoleInputW" => ["long",  ["long", "ptr", "long", "ptr"]],
705     "WriteConsoleOutputA" => ["long",  ["long", "ptr", "long", "long", "ptr"]],
706     "WriteConsoleOutputAttribute" => ["long",  ["long", "ptr", "long", "long", "ptr"]],
707     "WriteConsoleOutputCharacterA" => ["long",  ["long", "str", "long", "long", "ptr"]],
708     "WriteConsoleOutputCharacterW" => ["long",  ["long", "wstr", "long", "long", "ptr"]],
709     "WriteConsoleOutputW" => ["long",  ["long", "ptr", "long", "long", "ptr"]],
710     "WriteConsoleW" => ["long",  ["long", "ptr", "long", "ptr", "ptr"]],
711     "WriteFile" => ["long",  ["long", "ptr", "long", "ptr", "ptr"]],
712     "WriteFileEx" => ["long",  ["long", "ptr", "long", "ptr", "ptr"]],
713     "WritePrivateProfileSectionA" => ["long",  ["str", "str", "str"]],
714     "WritePrivateProfileSectionW" => ["long",  ["wstr", "wstr", "wstr"]],
715     "WritePrivateProfileStringA" => ["long",  ["str", "str", "str", "str"]],
716     "WritePrivateProfileStringW" => ["long",  ["wstr", "wstr", "wstr", "wstr"]],
717     "WritePrivateProfileStructA" => ["long",  ["str", "str", "ptr", "long", "str"]],
718     "WritePrivateProfileStructW" => ["long",  ["wstr", "wstr", "ptr", "long", "wstr"]],
719     "WriteProcessMemory" => ["long",  ["long", "ptr", "ptr", "long", "ptr"]],
720     "WriteProfileSectionA" => ["long",  ["str", "str"]],
721     "WriteProfileSectionW" => ["long",  ["wstr", "wstr"]],
722     "WriteProfileStringA" => ["long",  ["str", "str", "str"]],
723     "WriteProfileStringW" => ["long",  ["wstr", "wstr", "wstr"]],
724     "WriteTapemark" => ["long",  ["long", "long", "long", "long"]],
725     "_hread" => ["long",  ["long", "ptr", "long"]],
726     "_hwrite" => ["long",  ["long", "str", "long"]],
727     "_lclose" => ["long",  ["long"]],
728     "_lcreat" => ["long",  ["str", "long"]],
729     "_llseek" => ["long",  ["long", "long", "long"]],
730     "_lopen" => ["long",  ["str", "long"]],
731     "_lread" => ["long",  ["long", "ptr", "long"]],
732     "_lwrite" => ["long",  ["long", "str", "long"]],
733     "lstrcat" => ["str",  ["str", "str"]],
734     "lstrcatA" => ["str",  ["str", "str"]],
735     "lstrcatW" => ["wstr",  ["wstr", "wstr"]],
736     "lstrcmp" => ["long",  ["str", "str"]],
737     "lstrcmpA" => ["long",  ["str", "str"]],
738     "lstrcmpW" => ["long",  ["wstr", "wstr"]],
739     "lstrcmpi" => ["long",  ["str", "str"]],
740     "lstrcmpiA" => ["long",  ["str", "str"]],
741     "lstrcmpiW" => ["long",  ["wstr", "wstr"]],
742     "lstrcpy" => ["str",  ["str", "str"]],
743     "lstrcpyA" => ["str",  ["str", "str"]],
744     "lstrcpyW" => ["wstr",  ["wstr", "wstr"]],
745     "lstrcpyn" => ["str",  ["str", "str", "long"]],
746     "lstrcpynA" => ["str",  ["str", "str", "long"]],
747     "lstrcpynW" => ["wstr",  ["wstr", "wstr", "long"]],
748     "lstrlen" => ["long",  ["str"]],
749     "lstrlenA" => ["long",  ["str"]],
750     "lstrlenW" => ["long",  ["wstr"]],
751     "wine_call_to_16_long" => ["long",  ["ptr", "long"]],
752     "wine_call_to_16_regs_long" => ["void",  ["ptr", "long"]],
753     "wine_call_to_16_regs_short" => ["void",  ["ptr", "long"]],
754     "wine_call_to_16_word" => ["long",  ["ptr", "long"]],
755     "wine_get_unix_file_name" => ["long",  ["str", "str", "long"]]
756 };
757
758 &wine::declare("kernel32",%$module_declarations);
759 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
760 1;