Generate Perl modules defining prototypes for exported functions.
diff --git a/programs/winetest/include/advapi32.pm b/programs/winetest/include/advapi32.pm
new file mode 100644
index 0000000..b663bc5
--- /dev/null
+++ b/programs/winetest/include/advapi32.pm
@@ -0,0 +1,197 @@
+package advapi32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "AccessCheck" => ["long", ["ptr", "long", "long", "ptr", "ptr", "ptr", "ptr", "ptr"]],
+ "AddAccessAllowedAce" => ["long", ["ptr", "long", "long", "ptr"]],
+ "AdjustTokenPrivileges" => ["long", ["long", "long", "ptr", "long", "ptr", "ptr"]],
+ "AllocateAndInitializeSid" => ["long", ["ptr", "long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
+ "AllocateLocallyUniqueId" => ["long", ["ptr"]],
+ "BackupEventLogA" => ["long", ["long", "str"]],
+ "BackupEventLogW" => ["long", ["long", "wstr"]],
+ "ClearEventLogA" => ["long", ["long", "str"]],
+ "ClearEventLogW" => ["long", ["long", "wstr"]],
+ "CloseEventLog" => ["long", ["long"]],
+ "CloseServiceHandle" => ["long", ["long"]],
+ "ControlService" => ["long", ["long", "long", "ptr"]],
+ "CopySid" => ["long", ["long", "ptr", "ptr"]],
+ "CreateServiceA" => ["long", ["long", "str", "str", "long", "long", "long", "long", "str", "str", "ptr", "str", "str", "str"]],
+ "CreateServiceW" => ["long", ["long", "wstr", "wstr", "long", "long", "long", "long", "wstr", "wstr", "ptr", "wstr", "wstr", "wstr"]],
+ "CryptAcquireContextA" => ["long", ["ptr", "str", "str", "long", "long"]],
+ "CryptAcquireContextW" => ["long", ["ptr", "wstr", "wstr", "long", "long"]],
+ "CryptContextAddRef" => ["long", ["long", "ptr", "long"]],
+ "CryptCreateHash" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "CryptDecrypt" => ["long", ["long", "long", "long", "long", "ptr", "ptr"]],
+ "CryptDeriveKey" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "CryptDestroyHash" => ["long", ["long"]],
+ "CryptDestroyKey" => ["long", ["long"]],
+ "CryptDuplicateHash" => ["long", ["long", "ptr", "long", "ptr"]],
+ "CryptDuplicateKey" => ["long", ["long", "ptr", "long", "ptr"]],
+ "CryptEncrypt" => ["long", ["long", "long", "long", "long", "ptr", "ptr", "long"]],
+ "CryptEnumProviderTypesA" => ["long", ["long", "ptr", "long", "ptr", "str", "ptr"]],
+ "CryptEnumProviderTypesW" => ["long", ["long", "ptr", "long", "ptr", "wstr", "ptr"]],
+ "CryptEnumProvidersA" => ["long", ["long", "ptr", "long", "ptr", "str", "ptr"]],
+ "CryptEnumProvidersW" => ["long", ["long", "ptr", "long", "ptr", "wstr", "ptr"]],
+ "CryptExportKey" => ["long", ["long", "long", "long", "long", "ptr", "ptr"]],
+ "CryptGenKey" => ["long", ["long", "long", "long", "ptr"]],
+ "CryptGenRandom" => ["long", ["long", "long", "ptr"]],
+ "CryptGetDefaultProviderA" => ["long", ["long", "ptr", "long", "str", "ptr"]],
+ "CryptGetDefaultProviderW" => ["long", ["long", "ptr", "long", "wstr", "ptr"]],
+ "CryptGetHashParam" => ["long", ["long", "long", "ptr", "ptr", "long"]],
+ "CryptGetKeyParam" => ["long", ["long", "long", "ptr", "ptr", "long"]],
+ "CryptGetProvParam" => ["long", ["long", "long", "ptr", "ptr", "long"]],
+ "CryptGetUserKey" => ["long", ["long", "long", "ptr"]],
+ "CryptHashData" => ["long", ["long", "ptr", "long", "long"]],
+ "CryptHashSessionKey" => ["long", ["long", "long", "long"]],
+ "CryptImportKey" => ["long", ["long", "ptr", "long", "long", "long", "ptr"]],
+ "CryptReleaseContext" => ["long", ["long", "long"]],
+ "CryptSetHashParam" => ["long", ["long", "long", "ptr", "long"]],
+ "CryptSetKeyParam" => ["long", ["long", "long", "ptr", "long"]],
+ "CryptSetProvParam" => ["long", ["long", "long", "ptr", "long"]],
+ "CryptSetProviderA" => ["long", ["str", "long"]],
+ "CryptSetProviderExA" => ["long", ["str", "long", "ptr", "long"]],
+ "CryptSetProviderExW" => ["long", ["wstr", "long", "ptr", "long"]],
+ "CryptSetProviderW" => ["long", ["wstr", "long"]],
+ "CryptSignHashA" => ["long", ["long", "long", "str", "long", "ptr", "ptr"]],
+ "CryptSignHashW" => ["long", ["long", "long", "str", "long", "ptr", "ptr"]],
+ "CryptVerifySignatureA" => ["long", ["long", "ptr", "long", "long", "str", "long"]],
+ "CryptVerifySignatureW" => ["long", ["long", "ptr", "long", "long", "str", "long"]],
+ "DeleteService" => ["long", ["long"]],
+ "DeregisterEventSource" => ["long", ["long"]],
+ "EnumServicesStatusA" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr", "ptr"]],
+ "EnumServicesStatusW" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr", "ptr"]],
+ "EqualPrefixSid" => ["long", ["ptr", "ptr"]],
+ "EqualSid" => ["long", ["ptr", "ptr"]],
+ "FreeSid" => ["ptr", ["ptr"]],
+ "GetFileSecurityA" => ["long", ["str", "long", "ptr", "long", "ptr"]],
+ "GetFileSecurityW" => ["long", ["wstr", "long", "ptr", "long", "ptr"]],
+ "GetLengthSid" => ["long", ["ptr"]],
+ "GetNumberOfEventLogRecords" => ["long", ["long", "ptr"]],
+ "GetOldestEventLogRecord" => ["long", ["long", "ptr"]],
+ "GetSecurityDescriptorControl" => ["long", ["ptr", "ptr", "ptr"]],
+ "GetSecurityDescriptorDacl" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
+ "GetSecurityDescriptorGroup" => ["long", ["ptr", "ptr", "ptr"]],
+ "GetSecurityDescriptorLength" => ["long", ["ptr"]],
+ "GetSecurityDescriptorOwner" => ["long", ["ptr", "ptr", "ptr"]],
+ "GetSecurityDescriptorSacl" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
+ "GetSidIdentifierAuthority" => ["ptr", ["ptr"]],
+ "GetSidLengthRequired" => ["long", ["long"]],
+ "GetSidSubAuthority" => ["ptr", ["ptr", "long"]],
+ "GetSidSubAuthorityCount" => ["ptr", ["ptr"]],
+ "GetTokenInformation" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "GetUserNameA" => ["long", ["str", "ptr"]],
+ "GetUserNameW" => ["long", ["wstr", "ptr"]],
+ "ImpersonateSelf" => ["long", ["long"]],
+ "InitializeAcl" => ["long", ["ptr", "long", "long"]],
+ "InitializeSecurityDescriptor" => ["long", ["ptr", "long"]],
+ "InitializeSid" => ["long", ["ptr", "ptr", "long"]],
+ "IsValidSecurityDescriptor" => ["long", ["ptr"]],
+ "IsValidSid" => ["long", ["ptr"]],
+ "LookupAccountNameA" => ["long", ["str", "str", "ptr", "ptr", "str", "ptr", "ptr"]],
+ "LookupAccountSidA" => ["long", ["str", "ptr", "str", "ptr", "str", "ptr", "ptr"]],
+ "LookupAccountSidW" => ["long", ["wstr", "ptr", "wstr", "ptr", "wstr", "ptr", "ptr"]],
+ "LookupPrivilegeValueA" => ["long", ["str", "str", "ptr"]],
+ "LookupPrivilegeValueW" => ["long", ["wstr", "wstr", "ptr"]],
+ "LsaClose" => ["long", ["long"]],
+ "LsaFreeMemory" => ["long", ["ptr"]],
+ "LsaLookupSids" => ["long", ["long", "long", "ptr", "ptr", "ptr"]],
+ "LsaOpenPolicy" => ["long", ["ptr", "ptr", "long", "ptr"]],
+ "LsaQueryInformationPolicy" => ["long", ["long", "long", "ptr"]],
+ "MakeSelfRelativeSD" => ["long", ["ptr", "ptr", "ptr"]],
+ "NotifyBootConfigStatus" => ["long", ["long"]],
+ "NotifyChangeEventLog" => ["long", ["long", "long"]],
+ "OpenBackupEventLogA" => ["long", ["str", "str"]],
+ "OpenBackupEventLogW" => ["long", ["wstr", "wstr"]],
+ "OpenEventLogA" => ["long", ["str", "str"]],
+ "OpenEventLogW" => ["long", ["wstr", "wstr"]],
+ "OpenProcessToken" => ["long", ["long", "long", "ptr"]],
+ "OpenSCManagerA" => ["long", ["str", "str", "long"]],
+ "OpenSCManagerW" => ["long", ["wstr", "wstr", "long"]],
+ "OpenServiceA" => ["long", ["long", "str", "long"]],
+ "OpenServiceW" => ["long", ["long", "wstr", "long"]],
+ "OpenThreadToken" => ["long", ["long", "long", "long", "ptr"]],
+ "QueryServiceStatus" => ["long", ["long", "ptr"]],
+ "QueryWindows31FilesMigration" => ["long", ["long"]],
+ "ReadEventLogA" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr"]],
+ "ReadEventLogW" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr"]],
+ "RegCloseKey" => ["long", ["long"]],
+ "RegConnectRegistryA" => ["long", ["str", "long", "ptr"]],
+ "RegConnectRegistryW" => ["long", ["wstr", "long", "ptr"]],
+ "RegCreateKeyA" => ["long", ["long", "str", "ptr"]],
+ "RegCreateKeyExA" => ["long", ["long", "str", "long", "str", "long", "long", "ptr", "ptr", "ptr"]],
+ "RegCreateKeyExW" => ["long", ["long", "wstr", "long", "wstr", "long", "long", "ptr", "ptr", "ptr"]],
+ "RegCreateKeyW" => ["long", ["long", "wstr", "ptr"]],
+ "RegDeleteKeyA" => ["long", ["long", "str"]],
+ "RegDeleteKeyW" => ["long", ["long", "wstr"]],
+ "RegDeleteValueA" => ["long", ["long", "str"]],
+ "RegDeleteValueW" => ["long", ["long", "wstr"]],
+ "RegEnumKeyA" => ["long", ["long", "long", "str", "long"]],
+ "RegEnumKeyExA" => ["long", ["long", "long", "str", "ptr", "ptr", "str", "ptr", "ptr"]],
+ "RegEnumKeyExW" => ["long", ["long", "long", "wstr", "ptr", "ptr", "wstr", "ptr", "ptr"]],
+ "RegEnumKeyW" => ["long", ["long", "long", "wstr", "long"]],
+ "RegEnumValueA" => ["long", ["long", "long", "str", "ptr", "ptr", "ptr", "ptr", "ptr"]],
+ "RegEnumValueW" => ["long", ["long", "long", "wstr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
+ "RegFlushKey" => ["long", ["long"]],
+ "RegGetKeySecurity" => ["long", ["long", "long", "ptr", "ptr"]],
+ "RegLoadKeyA" => ["long", ["long", "str", "str"]],
+ "RegLoadKeyW" => ["long", ["long", "wstr", "wstr"]],
+ "RegNotifyChangeKeyValue" => ["long", ["long", "long", "long", "long", "long"]],
+ "RegOpenCurrentUser" => ["long", ["long", "ptr"]],
+ "RegOpenKeyA" => ["long", ["long", "str", "ptr"]],
+ "RegOpenKeyExA" => ["long", ["long", "str", "long", "long", "ptr"]],
+ "RegOpenKeyExW" => ["long", ["long", "wstr", "long", "long", "ptr"]],
+ "RegOpenKeyW" => ["long", ["long", "wstr", "ptr"]],
+ "RegQueryInfoKeyA" => ["long", ["long", "str", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
+ "RegQueryInfoKeyW" => ["long", ["long", "wstr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
+ "RegQueryValueA" => ["long", ["long", "str", "str", "ptr"]],
+ "RegQueryValueExA" => ["long", ["long", "str", "ptr", "ptr", "ptr", "ptr"]],
+ "RegQueryValueExW" => ["long", ["long", "wstr", "ptr", "ptr", "ptr", "ptr"]],
+ "RegQueryValueW" => ["long", ["long", "wstr", "wstr", "ptr"]],
+ "RegReplaceKeyW" => ["long", ["long", "wstr", "wstr", "wstr"]],
+ "RegRestoreKeyA" => ["long", ["long", "str", "long"]],
+ "RegRestoreKeyW" => ["long", ["long", "wstr", "long"]],
+ "RegSaveKeyA" => ["long", ["long", "str", "ptr"]],
+ "RegSaveKeyW" => ["long", ["long", "wstr", "ptr"]],
+ "RegSetKeySecurity" => ["long", ["long", "long", "ptr"]],
+ "RegSetValueA" => ["long", ["long", "str", "long", "str", "long"]],
+ "RegSetValueExA" => ["long", ["long", "str", "long", "long", "ptr", "long"]],
+ "RegSetValueExW" => ["long", ["long", "wstr", "long", "long", "ptr", "long"]],
+ "RegSetValueW" => ["long", ["long", "wstr", "long", "wstr", "long"]],
+ "RegUnLoadKeyA" => ["long", ["long", "str"]],
+ "RegUnLoadKeyW" => ["long", ["long", "wstr"]],
+ "RegisterEventSourceA" => ["long", ["str", "str"]],
+ "RegisterEventSourceW" => ["long", ["wstr", "wstr"]],
+ "RegisterServiceCtrlHandlerA" => ["long", ["str", "ptr"]],
+ "RegisterServiceCtrlHandlerW" => ["long", ["wstr", "ptr"]],
+ "ReportEventA" => ["long", ["long", "long", "long", "long", "ptr", "long", "long", "ptr", "ptr"]],
+ "ReportEventW" => ["long", ["long", "long", "long", "long", "ptr", "long", "long", "ptr", "ptr"]],
+ "RevertToSelf" => ["long", []],
+ "SetFileSecurityA" => ["long", ["str", "long", "ptr"]],
+ "SetFileSecurityW" => ["long", ["wstr", "long", "ptr"]],
+ "SetKernelObjectSecurity" => ["long", ["long", "long", "ptr"]],
+ "SetSecurityDescriptorDacl" => ["long", ["ptr", "long", "ptr", "long"]],
+ "SetSecurityDescriptorGroup" => ["long", ["ptr", "ptr", "long"]],
+ "SetSecurityDescriptorOwner" => ["long", ["ptr", "ptr", "long"]],
+ "SetSecurityDescriptorSacl" => ["long", ["ptr", "long", "ptr", "long"]],
+ "SetServiceStatus" => ["long", ["long", "ptr"]],
+ "SetThreadToken" => ["long", ["ptr", "long"]],
+ "StartServiceA" => ["long", ["long", "long", "ptr"]],
+ "StartServiceCtrlDispatcherA" => ["long", ["ptr"]],
+ "StartServiceCtrlDispatcherW" => ["long", ["ptr"]],
+ "StartServiceW" => ["long", ["long", "long", "ptr"]],
+ "SynchronizeWindows31FilesAndWindowsNTRegistry" => ["long", ["long", "long", "long", "long"]]
+};
+
+&wine::declare("advapi32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/avifil32.pm b/programs/winetest/include/avifil32.pm
new file mode 100644
index 0000000..60c35e5
--- /dev/null
+++ b/programs/winetest/include/avifil32.pm
@@ -0,0 +1,61 @@
+package avifil32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "AVIFileAddRef" => ["long", ["ptr"]],
+ "AVIFileCreateStreamA" => ["long", ["ptr", "ptr", "ptr"]],
+ "AVIFileCreateStreamW" => ["long", ["ptr", "ptr", "ptr"]],
+ "AVIFileEndRecord" => ["long", ["ptr"]],
+ "AVIFileExit" => ["void", []],
+ "AVIFileGetStream" => ["long", ["ptr", "ptr", "long", "long"]],
+ "AVIFileInfo" => ["long", ["ptr", "ptr", "long"]],
+ "AVIFileInfoA" => ["long", ["ptr", "ptr", "long"]],
+ "AVIFileInfoW" => ["long", ["ptr", "ptr", "long"]],
+ "AVIFileInit" => ["void", []],
+ "AVIFileOpenA" => ["long", ["ptr", "str", "long", "ptr"]],
+ "AVIFileOpenW" => ["long", ["ptr", "wstr", "long", "ptr"]],
+ "AVIFileReadData" => ["long", ["ptr", "long", "ptr", "ptr"]],
+ "AVIFileRelease" => ["long", ["ptr"]],
+ "AVIFileWriteData" => ["long", ["ptr", "long", "ptr", "long"]],
+ "AVIMakeCompressedStream" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
+ "AVIStreamAddRef" => ["long", ["ptr"]],
+ "AVIStreamBeginStreaming" => ["long", ["ptr", "long", "long", "long"]],
+ "AVIStreamCreate" => ["long", ["ptr", "long", "long", "ptr"]],
+ "AVIStreamEndStreaming" => ["long", ["ptr"]],
+ "AVIStreamFindSample" => ["long", ["ptr", "long", "long"]],
+ "AVIStreamGetFrame" => ["ptr", ["ptr", "long"]],
+ "AVIStreamGetFrameClose" => ["long", ["ptr"]],
+ "AVIStreamGetFrameOpen" => ["ptr", ["ptr", "ptr"]],
+ "AVIStreamInfo" => ["long", ["ptr", "ptr", "long"]],
+ "AVIStreamInfoA" => ["long", ["ptr", "ptr", "long"]],
+ "AVIStreamInfoW" => ["long", ["ptr", "ptr", "long"]],
+ "AVIStreamLength" => ["long", ["ptr"]],
+ "AVIStreamOpenFromFileA" => ["long", ["ptr", "str", "long", "long", "long", "ptr"]],
+ "AVIStreamOpenFromFileW" => ["long", ["ptr", "wstr", "long", "long", "long", "ptr"]],
+ "AVIStreamRead" => ["long", ["ptr", "long", "long", "ptr", "long", "ptr", "ptr"]],
+ "AVIStreamReadData" => ["long", ["ptr", "long", "ptr", "ptr"]],
+ "AVIStreamReadFormat" => ["long", ["ptr", "long", "ptr", "ptr"]],
+ "AVIStreamRelease" => ["long", ["ptr"]],
+ "AVIStreamSampleToTime" => ["long", ["ptr", "long"]],
+ "AVIStreamSetFormat" => ["long", ["ptr", "long", "ptr", "long"]],
+ "AVIStreamStart" => ["long", ["ptr"]],
+ "AVIStreamTimeToSample" => ["long", ["ptr", "long"]],
+ "AVIStreamWrite" => ["long", ["ptr", "long", "long", "ptr", "long", "long", "ptr", "ptr"]],
+ "AVIStreamWriteData" => ["long", ["ptr", "long", "ptr", "long"]],
+ "DllCanUnloadNow" => ["long", []],
+ "DllGetClassObject" => ["long", ["ptr", "ptr", "ptr"]]
+};
+
+&wine::declare("avifil32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/comctl32.pm b/programs/winetest/include/comctl32.pm
new file mode 100644
index 0000000..3038a88
--- /dev/null
+++ b/programs/winetest/include/comctl32.pm
@@ -0,0 +1,168 @@
+package comctl32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "MenuHelp" => ["void", ["long", "long", "long", "long", "long", "long", "ptr"]],
+ "ShowHideMenuCtl" => ["long", ["long", "long", "ptr"]],
+ "GetEffectiveClientRect" => ["void", ["long", "ptr", "ptr"]],
+ "DrawStatusTextA" => ["void", ["long", "ptr", "str", "long"]],
+ "CreateStatusWindowA" => ["long", ["long", "str", "long", "long"]],
+ "CreateToolbar" => ["long", ["long", "long", "long", "long", "long", "long", "ptr", "long"]],
+ "CreateMappedBitmap" => ["long", ["long", "long", "long", "ptr", "long"]],
+ "DPA_LoadStream" => ["long", ["ptr", "ptr", "ptr", "long"]],
+ "DPA_SaveStream" => ["long", ["long", "ptr", "ptr", "long"]],
+ "DPA_Merge" => ["long", ["long", "long", "long", "ptr", "ptr", "long"]],
+ "MakeDragList" => ["long", ["long"]],
+ "LBItemFromPt" => ["long", ["long", "long", "long", "long"]],
+ "DrawInsert" => ["void", ["long", "long", "long"]],
+ "CreateUpDownControl" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long"]],
+ "InitCommonControls" => ["void", []],
+ "CreatePropertySheetPage" => ["long", ["ptr"]],
+ "CreatePropertySheetPageA" => ["long", ["ptr"]],
+ "CreatePropertySheetPageW" => ["long", ["ptr"]],
+ "CreateStatusWindow" => ["long", ["long", "str", "long", "long"]],
+ "CreateStatusWindowW" => ["long", ["long", "wstr", "long", "long"]],
+ "CreateToolbarEx" => ["long", ["long", "long", "long", "long", "long", "long", "ptr", "long", "long", "long", "long", "long", "long"]],
+ "DestroyPropertySheetPage" => ["long", ["long"]],
+ "DllGetVersion" => ["long", ["ptr"]],
+ "DllInstall" => ["long", ["long", "wstr"]],
+ "DrawStatusText" => ["void", ["long", "ptr", "str", "long"]],
+ "DrawStatusTextW" => ["void", ["long", "ptr", "wstr", "long"]],
+ "FlatSB_EnableScrollBar" => ["long", ["long", "long", "long"]],
+ "FlatSB_GetScrollInfo" => ["long", ["long", "long", "ptr"]],
+ "FlatSB_GetScrollPos" => ["long", ["long", "long"]],
+ "FlatSB_GetScrollProp" => ["long", ["long", "long", "ptr"]],
+ "FlatSB_GetScrollRange" => ["long", ["long", "long", "ptr", "ptr"]],
+ "FlatSB_SetScrollInfo" => ["long", ["long", "long", "ptr", "long"]],
+ "FlatSB_SetScrollPos" => ["long", ["long", "long", "long", "long"]],
+ "FlatSB_SetScrollProp" => ["long", ["long", "long", "long", "long"]],
+ "FlatSB_ShowScrollBar" => ["long", ["long", "long", "long"]],
+ "GetMUILanguage" => ["long", []],
+ "ImageList_Add" => ["long", ["long", "long", "long"]],
+ "ImageList_AddIcon" => ["long", ["long", "long"]],
+ "ImageList_AddMasked" => ["long", ["long", "long", "long"]],
+ "ImageList_BeginDrag" => ["long", ["long", "long", "long", "long"]],
+ "ImageList_Copy" => ["long", ["long", "long", "long", "long", "long"]],
+ "ImageList_Create" => ["long", ["long", "long", "long", "long", "long"]],
+ "ImageList_Destroy" => ["long", ["long"]],
+ "ImageList_DragEnter" => ["long", ["long", "long", "long"]],
+ "ImageList_DragLeave" => ["long", ["long"]],
+ "ImageList_DragMove" => ["long", ["long", "long"]],
+ "ImageList_DragShowNolock" => ["long", ["long"]],
+ "ImageList_Draw" => ["long", ["long", "long", "long", "long", "long", "long"]],
+ "ImageList_DrawEx" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "long"]],
+ "ImageList_DrawIndirect" => ["long", ["ptr"]],
+ "ImageList_Duplicate" => ["long", ["long"]],
+ "ImageList_EndDrag" => ["long", []],
+ "ImageList_GetBkColor" => ["long", ["long"]],
+ "ImageList_GetDragImage" => ["long", ["ptr", "ptr"]],
+ "ImageList_GetFlags" => ["long", ["long"]],
+ "ImageList_GetIcon" => ["long", ["long", "long", "long"]],
+ "ImageList_GetIconSize" => ["long", ["long", "ptr", "ptr"]],
+ "ImageList_GetImageCount" => ["long", ["long"]],
+ "ImageList_GetImageInfo" => ["long", ["long", "long", "ptr"]],
+ "ImageList_GetImageRect" => ["long", ["long", "long", "ptr"]],
+ "ImageList_LoadImage" => ["long", ["long", "str", "long", "long", "long", "long", "long"]],
+ "ImageList_LoadImageA" => ["long", ["long", "str", "long", "long", "long", "long", "long"]],
+ "ImageList_LoadImageW" => ["long", ["long", "wstr", "long", "long", "long", "long", "long"]],
+ "ImageList_Merge" => ["long", ["long", "long", "long", "long", "long", "long"]],
+ "ImageList_Read" => ["long", ["ptr"]],
+ "ImageList_Remove" => ["long", ["long", "long"]],
+ "ImageList_Replace" => ["long", ["long", "long", "long", "long"]],
+ "Alloc" => ["ptr", ["long"]],
+ "ReAlloc" => ["ptr", ["ptr", "long"]],
+ "Free" => ["long", ["ptr"]],
+ "GetSize" => ["long", ["ptr"]],
+ "ImageList_ReplaceIcon" => ["long", ["long", "long", "long"]],
+ "ImageList_SetBkColor" => ["long", ["long", "long"]],
+ "ImageList_SetDragCursorImage" => ["long", ["long", "long", "long", "long"]],
+ "ImageList_SetFilter" => ["long", ["long", "long", "long"]],
+ "ImageList_SetFlags" => ["long", ["long", "long"]],
+ "ImageList_SetIconSize" => ["long", ["long", "long", "long"]],
+ "ImageList_SetImageCount" => ["long", ["long", "long"]],
+ "ImageList_SetOverlayImage" => ["long", ["long", "long", "long"]],
+ "ImageList_Write" => ["long", ["long", "ptr"]],
+ "InitCommonControlsEx" => ["long", ["ptr"]],
+ "InitMUILanguage" => ["void", ["long"]],
+ "InitializeFlatSB" => ["long", ["long"]],
+ "PropertySheet" => ["long", ["ptr"]],
+ "PropertySheetA" => ["long", ["ptr"]],
+ "PropertySheetW" => ["long", ["ptr"]],
+ "UninitializeFlatSB" => ["long", ["long"]],
+ "_TrackMouseEvent" => ["long", ["ptr"]],
+ "CreateMRUListA" => ["long", ["ptr"]],
+ "FreeMRUList" => ["long", ["long"]],
+ "AddMRUStringA" => ["long", ["long", "str"]],
+ "EnumMRUListA" => ["long", ["long", "long", "ptr", "long"]],
+ "FindMRUStringA" => ["long", ["long", "str", "ptr"]],
+ "DelMRUString" => ["long", ["long", "long"]],
+ "CreateMRUListLazyA" => ["long", ["ptr", "long", "long", "long"]],
+ "AddMRUData" => ["long", ["long", "ptr", "long"]],
+ "FindMRUData" => ["long", ["long", "ptr", "long", "ptr"]],
+ "Str_GetPtrA" => ["long", ["str", "str", "long"]],
+ "Str_SetPtrA" => ["long", ["ptr", "str"]],
+ "Str_GetPtrW" => ["long", ["wstr", "wstr", "long"]],
+ "Str_SetPtrW" => ["long", ["ptr", "wstr"]],
+ "DSA_Create" => ["long", ["long", "long"]],
+ "DSA_Destroy" => ["long", ["long"]],
+ "DSA_GetItem" => ["long", ["long", "long", "ptr"]],
+ "DSA_GetItemPtr" => ["ptr", ["long", "long"]],
+ "DSA_InsertItem" => ["long", ["long", "long", "ptr"]],
+ "DSA_SetItem" => ["long", ["long", "long", "ptr"]],
+ "DSA_DeleteItem" => ["long", ["long", "long"]],
+ "DSA_DeleteAllItems" => ["long", ["long"]],
+ "DPA_Create" => ["long", ["long"]],
+ "DPA_Destroy" => ["long", ["long"]],
+ "DPA_Grow" => ["long", ["long", "long"]],
+ "DPA_Clone" => ["long", ["long", "long"]],
+ "DPA_GetPtr" => ["ptr", ["long", "long"]],
+ "DPA_GetPtrIndex" => ["long", ["long", "ptr"]],
+ "DPA_InsertPtr" => ["long", ["long", "long", "ptr"]],
+ "DPA_SetPtr" => ["long", ["long", "long", "ptr"]],
+ "DPA_DeletePtr" => ["ptr", ["long", "long"]],
+ "DPA_DeleteAllPtrs" => ["long", ["long"]],
+ "DPA_Sort" => ["long", ["long", "ptr", "long"]],
+ "DPA_Search" => ["long", ["long", "ptr", "long", "ptr", "long", "long"]],
+ "DPA_CreateEx" => ["long", ["long", "long"]],
+ "SendNotify" => ["long", ["long", "long", "long", "ptr"]],
+ "SendNotifyEx" => ["long", ["long", "long", "long", "ptr", "long"]],
+ "StrChrA" => ["str", ["str", "long"]],
+ "StrRChrA" => ["str", ["str", "str", "long"]],
+ "StrCmpNA" => ["long", ["str", "str", "long"]],
+ "StrCmpNIA" => ["long", ["str", "str", "long"]],
+ "StrStrA" => ["str", ["str", "str"]],
+ "StrStrIA" => ["str", ["str", "str"]],
+ "StrCSpnA" => ["long", ["str", "str"]],
+ "StrToIntA" => ["long", ["str"]],
+ "StrChrW" => ["wstr", ["wstr", "long"]],
+ "StrRChrW" => ["wstr", ["wstr", "wstr", "long"]],
+ "StrCmpNW" => ["long", ["wstr", "wstr", "long"]],
+ "StrCmpNIW" => ["long", ["wstr", "wstr", "long"]],
+ "StrStrW" => ["wstr", ["wstr", "wstr"]],
+ "StrSpnW" => ["long", ["wstr", "wstr"]],
+ "StrToIntW" => ["long", ["wstr"]],
+ "SmoothScrollWindow" => ["long", ["ptr"]],
+ "DPA_EnumCallback" => ["void", ["long", "ptr", "long"]],
+ "DPA_DestroyCallback" => ["long", ["long", "ptr", "long"]],
+ "DSA_EnumCallback" => ["void", ["long", "ptr", "long"]],
+ "DSA_DestroyCallback" => ["long", ["long", "ptr", "long"]],
+ "CreateMRUListW" => ["long", ["ptr"]],
+ "AddMRUStringW" => ["long", ["long", "wstr"]],
+ "FindMRUStringW" => ["long", ["long", "wstr", "ptr"]],
+ "EnumMRUListW" => ["long", ["long", "long", "ptr", "long"]],
+ "CreateMRUListLazyW" => ["long", ["ptr", "long", "long", "long"]]
+};
+
+&wine::declare("comctl32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/comdlg32.pm b/programs/winetest/include/comdlg32.pm
new file mode 100644
index 0000000..33da2d0
--- /dev/null
+++ b/programs/winetest/include/comdlg32.pm
@@ -0,0 +1,40 @@
+package comdlg32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "ChooseColorA" => ["long", ["ptr"]],
+ "ChooseColorW" => ["long", ["ptr"]],
+ "ChooseFontA" => ["long", ["ptr"]],
+ "ChooseFontW" => ["long", ["ptr"]],
+ "CommDlgExtendedError" => ["long", []],
+ "FindTextA" => ["long", ["ptr"]],
+ "FindTextW" => ["long", ["ptr"]],
+ "GetFileTitleA" => ["long", ["str", "str", "long"]],
+ "GetFileTitleW" => ["long", ["wstr", "wstr", "long"]],
+ "GetOpenFileNameA" => ["long", ["ptr"]],
+ "GetOpenFileNameW" => ["long", ["ptr"]],
+ "GetSaveFileNameA" => ["long", ["ptr"]],
+ "GetSaveFileNameW" => ["long", ["ptr"]],
+ "PageSetupDlgA" => ["long", ["ptr"]],
+ "PageSetupDlgW" => ["long", ["ptr"]],
+ "PrintDlgA" => ["long", ["ptr"]],
+ "PrintDlgExA" => ["long", ["ptr"]],
+ "PrintDlgExW" => ["long", ["ptr"]],
+ "PrintDlgW" => ["long", ["ptr"]],
+ "ReplaceTextA" => ["long", ["ptr"]],
+ "ReplaceTextW" => ["long", ["ptr"]]
+};
+
+&wine::declare("comdlg32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/dciman32.pm b/programs/winetest/include/dciman32.pm
new file mode 100644
index 0000000..980f9a5
--- /dev/null
+++ b/programs/winetest/include/dciman32.pm
@@ -0,0 +1,21 @@
+package dciman32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DCICloseProvider" => ["void", ["long"]],
+ "DCIOpenProvider" => ["long", []]
+};
+
+&wine::declare("dciman32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/ddraw.pm b/programs/winetest/include/ddraw.pm
new file mode 100644
index 0000000..5661cd1
--- /dev/null
+++ b/programs/winetest/include/ddraw.pm
@@ -0,0 +1,26 @@
+package ddraw;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DirectDrawCreate" => ["long", ["ptr", "ptr", "ptr"]],
+ "DirectDrawEnumerateA" => ["long", ["ptr", "ptr"]],
+ "DirectDrawEnumerateExA" => ["long", ["ptr", "ptr", "long"]],
+ "DirectDrawEnumerateExW" => ["long", ["ptr", "ptr", "long"]],
+ "DirectDrawEnumerateW" => ["long", ["ptr", "ptr"]],
+ "DllCanUnloadNow" => ["long", []],
+ "DllGetClassObject" => ["long", ["ptr", "ptr", "ptr"]]
+};
+
+&wine::declare("ddraw",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/dinput.pm b/programs/winetest/include/dinput.pm
new file mode 100644
index 0000000..604a659
--- /dev/null
+++ b/programs/winetest/include/dinput.pm
@@ -0,0 +1,25 @@
+package dinput;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DirectInputCreateA" => ["long", ["long", "long", "ptr", "ptr"]],
+ "DirectInputCreateEx" => ["long", ["long", "long", "ptr", "ptr", "ptr"]],
+ "DllCanUnloadNow" => ["long", []],
+ "DllGetClassObject" => ["long", ["ptr", "ptr", "ptr"]],
+ "DllRegisterServer" => ["long", []],
+ "DllUnregisterServer" => ["long", []]
+};
+
+&wine::declare("dinput",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/dplayx.pm b/programs/winetest/include/dplayx.pm
new file mode 100644
index 0000000..6d17021
--- /dev/null
+++ b/programs/winetest/include/dplayx.pm
@@ -0,0 +1,27 @@
+package dplayx;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DirectPlayCreate" => ["long", ["ptr", "ptr", "ptr"]],
+ "DirectPlayEnumerateA" => ["long", ["ptr", "ptr"]],
+ "DirectPlayEnumerateW" => ["long", ["ptr", "ptr"]],
+ "DirectPlayLobbyCreateA" => ["long", ["ptr", "ptr", "ptr", "ptr", "long"]],
+ "DirectPlayLobbyCreateW" => ["long", ["ptr", "ptr", "ptr", "ptr", "long"]],
+ "DirectPlayEnumerate" => ["long", ["ptr", "ptr"]],
+ "DllCanUnloadNow" => ["long", []],
+ "DllGetClassObject" => ["long", ["ptr", "ptr", "ptr"]]
+};
+
+&wine::declare("dplayx",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/dsound.pm b/programs/winetest/include/dsound.pm
new file mode 100644
index 0000000..89612f9
--- /dev/null
+++ b/programs/winetest/include/dsound.pm
@@ -0,0 +1,27 @@
+package dsound;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DirectSoundCreate" => ["long", ["ptr", "ptr", "ptr"]],
+ "DirectSoundEnumerateA" => ["long", ["ptr", "ptr"]],
+ "DirectSoundEnumerateW" => ["long", ["ptr", "ptr"]],
+ "DllCanUnloadNow" => ["long", []],
+ "DllGetClassObject" => ["long", ["ptr", "ptr", "ptr"]],
+ "DirectSoundCaptureCreate" => ["long", ["ptr", "ptr", "ptr"]],
+ "DirectSoundCaptureEnumerateA" => ["long", ["ptr", "ptr"]],
+ "DirectSoundCaptureEnumerateW" => ["long", ["ptr", "ptr"]]
+};
+
+&wine::declare("dsound",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/gdi32.pm b/programs/winetest/include/gdi32.pm
new file mode 100644
index 0000000..ce5a3c2
--- /dev/null
+++ b/programs/winetest/include/gdi32.pm
@@ -0,0 +1,328 @@
+package gdi32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "AbortDoc" => ["long", ["long"]],
+ "AbortPath" => ["long", ["long"]],
+ "AddFontResourceA" => ["long", ["str"]],
+ "AddFontResourceW" => ["long", ["wstr"]],
+ "AngleArc" => ["long", ["long", "long", "long", "long", "long", "long"]],
+ "AnimatePalette" => ["long", ["long", "long", "long", "ptr"]],
+ "Arc" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long"]],
+ "ArcTo" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long"]],
+ "BeginPath" => ["long", ["long"]],
+ "BitBlt" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long"]],
+ "ChoosePixelFormat" => ["long", ["long", "ptr"]],
+ "Chord" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long"]],
+ "CloseEnhMetaFile" => ["long", ["long"]],
+ "CloseFigure" => ["long", ["long"]],
+ "CloseMetaFile" => ["long", ["long"]],
+ "CloseMetaFile16" => ["long", ["long"]],
+ "CombineRgn" => ["long", ["long", "long", "long", "long"]],
+ "CombineTransform" => ["long", ["ptr", "ptr", "ptr"]],
+ "CopyEnhMetaFileA" => ["long", ["long", "str"]],
+ "CopyMetaFileA" => ["long", ["long", "str"]],
+ "CopyMetaFileW" => ["long", ["long", "wstr"]],
+ "CreateBitmap" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "CreateBitmapIndirect" => ["long", ["ptr"]],
+ "CreateBrushIndirect" => ["long", ["ptr"]],
+ "CreateColorSpaceA" => ["long", ["ptr"]],
+ "CreateColorSpaceW" => ["long", ["ptr"]],
+ "CreateCompatibleBitmap" => ["long", ["long", "long", "long"]],
+ "CreateCompatibleDC" => ["long", ["long"]],
+ "CreateDCA" => ["long", ["str", "str", "str", "ptr"]],
+ "CreateDCW" => ["long", ["wstr", "wstr", "wstr", "ptr"]],
+ "CreateDIBPatternBrush" => ["long", ["long", "long"]],
+ "CreateDIBPatternBrushPt" => ["long", ["ptr", "long"]],
+ "CreateDIBSection" => ["long", ["long", "ptr", "long", "ptr", "long", "long"]],
+ "CreateDIBitmap" => ["long", ["long", "ptr", "long", "ptr", "ptr", "long"]],
+ "CreateDiscardableBitmap" => ["long", ["long", "long", "long"]],
+ "CreateEllipticRgn" => ["long", ["long", "long", "long", "long"]],
+ "CreateEllipticRgnIndirect" => ["long", ["ptr"]],
+ "CreateEnhMetaFileA" => ["long", ["long", "str", "ptr", "str"]],
+ "CreateEnhMetaFileW" => ["long", ["long", "wstr", "ptr", "wstr"]],
+ "CreateFontA" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "str"]],
+ "CreateFontIndirectA" => ["long", ["ptr"]],
+ "CreateFontIndirectW" => ["long", ["ptr"]],
+ "CreateFontW" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "wstr"]],
+ "CreateHalftonePalette" => ["long", ["long"]],
+ "CreateHatchBrush" => ["long", ["long", "long"]],
+ "CreateICA" => ["long", ["str", "str", "str", "ptr"]],
+ "CreateICW" => ["long", ["wstr", "wstr", "wstr", "ptr"]],
+ "CreateMetaFile16" => ["long", ["str"]],
+ "CreateMetaFileA" => ["long", ["str"]],
+ "CreateMetaFileW" => ["long", ["wstr"]],
+ "CreatePalette" => ["long", ["ptr"]],
+ "CreatePatternBrush" => ["long", ["long"]],
+ "CreatePen" => ["long", ["long", "long", "long"]],
+ "CreatePenIndirect" => ["long", ["ptr"]],
+ "CreatePolyPolygonRgn" => ["long", ["ptr", "ptr", "long", "long"]],
+ "CreatePolygonRgn" => ["long", ["ptr", "long", "long"]],
+ "CreateRectRgn" => ["long", ["long", "long", "long", "long"]],
+ "CreateRectRgnIndirect" => ["long", ["ptr"]],
+ "CreateRoundRectRgn" => ["long", ["long", "long", "long", "long", "long", "long"]],
+ "CreateScalableFontResourceA" => ["long", ["long", "str", "str", "str"]],
+ "CreateScalableFontResourceW" => ["long", ["long", "wstr", "wstr", "wstr"]],
+ "CreateSolidBrush" => ["long", ["long"]],
+ "DPtoLP" => ["long", ["long", "ptr", "long"]],
+ "DeleteColorSpace" => ["long", ["long"]],
+ "DeleteDC" => ["long", ["long"]],
+ "DeleteEnhMetaFile" => ["long", ["long"]],
+ "DeleteMetaFile" => ["long", ["long"]],
+ "DeleteObject" => ["long", ["long"]],
+ "DescribePixelFormat" => ["long", ["long", "long", "long", "ptr"]],
+ "DrawEscape" => ["long", ["long", "long", "long", "str"]],
+ "Ellipse" => ["long", ["long", "long", "long", "long", "long"]],
+ "EndDoc" => ["long", ["long"]],
+ "EndPage" => ["long", ["long"]],
+ "EndPath" => ["long", ["long"]],
+ "EnumEnhMetaFile" => ["long", ["long", "long", "ptr", "ptr", "ptr"]],
+ "EnumFontFamiliesA" => ["long", ["long", "str", "ptr", "long"]],
+ "EnumFontFamiliesExA" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "EnumFontFamiliesExW" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "EnumFontFamiliesW" => ["long", ["long", "wstr", "ptr", "long"]],
+ "EnumFontsA" => ["long", ["long", "str", "ptr", "long"]],
+ "EnumFontsW" => ["long", ["long", "wstr", "ptr", "long"]],
+ "EnumMetaFile" => ["long", ["long", "long", "ptr", "long"]],
+ "EnumObjects" => ["long", ["long", "long", "ptr", "long"]],
+ "EqualRgn" => ["long", ["long", "long"]],
+ "Escape" => ["long", ["long", "long", "long", "str", "ptr"]],
+ "ExcludeClipRect" => ["long", ["long", "long", "long", "long", "long"]],
+ "ExtCreatePen" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "ExtCreateRegion" => ["long", ["ptr", "long", "ptr"]],
+ "ExtEscape" => ["long", ["long", "long", "long", "str", "long", "str"]],
+ "ExtFloodFill" => ["long", ["long", "long", "long", "long", "long"]],
+ "ExtSelectClipRgn" => ["long", ["long", "long", "long"]],
+ "ExtTextOutA" => ["long", ["long", "long", "long", "long", "ptr", "str", "long", "ptr"]],
+ "ExtTextOutW" => ["long", ["long", "long", "long", "long", "ptr", "wstr", "long", "ptr"]],
+ "FillPath" => ["long", ["long"]],
+ "FillRgn" => ["long", ["long", "long", "long"]],
+ "FixBrushOrgEx" => ["long", ["long", "long", "long", "ptr"]],
+ "FlattenPath" => ["long", ["long"]],
+ "FloodFill" => ["long", ["long", "long", "long", "long"]],
+ "FrameRgn" => ["long", ["long", "long", "long", "long", "long"]],
+ "GdiComment" => ["long", ["long", "long", "ptr"]],
+ "GdiFlush" => ["long", []],
+ "GdiGetBatchLimit" => ["long", []],
+ "GdiSetBatchLimit" => ["long", ["long"]],
+ "GetArcDirection" => ["long", ["long"]],
+ "GetAspectRatioFilterEx" => ["long", ["long", "ptr"]],
+ "GetBitmapBits" => ["long", ["long", "long", "ptr"]],
+ "GetBitmapDimensionEx" => ["long", ["long", "ptr"]],
+ "GetBkColor" => ["long", ["long"]],
+ "GetBkMode" => ["long", ["long"]],
+ "GetBoundsRect" => ["long", ["long", "ptr", "long"]],
+ "GetBrushOrgEx" => ["long", ["long", "ptr"]],
+ "GetCharABCWidthsA" => ["long", ["long", "long", "long", "ptr"]],
+ "GetCharABCWidthsFloatA" => ["long", ["long", "long", "long", "ptr"]],
+ "GetCharABCWidthsFloatW" => ["long", ["long", "long", "long", "ptr"]],
+ "GetCharABCWidthsW" => ["long", ["long", "long", "long", "ptr"]],
+ "GetCharWidth32A" => ["long", ["long", "long", "long", "ptr"]],
+ "GetCharWidth32W" => ["long", ["long", "long", "long", "ptr"]],
+ "GetCharWidthA" => ["long", ["long", "long", "long", "ptr"]],
+ "GetCharWidthFloatA" => ["long", ["long", "long", "long", "ptr"]],
+ "GetCharWidthFloatW" => ["long", ["long", "long", "long", "ptr"]],
+ "GetCharWidthW" => ["long", ["long", "long", "long", "ptr"]],
+ "GetCharacterPlacementA" => ["long", ["long", "str", "long", "long", "ptr", "long"]],
+ "GetCharacterPlacementW" => ["long", ["long", "wstr", "long", "long", "ptr", "long"]],
+ "GetClipBox" => ["long", ["long", "ptr"]],
+ "GetClipRgn" => ["long", ["long", "long"]],
+ "GetColorAdjustment" => ["long", ["long", "ptr"]],
+ "GetColorSpace" => ["long", ["long"]],
+ "GetCurrentObject" => ["long", ["long", "long"]],
+ "GetCurrentPositionEx" => ["long", ["long", "ptr"]],
+ "GetDCOrgEx" => ["long", ["long", "ptr"]],
+ "GetDIBColorTable" => ["long", ["long", "long", "long", "ptr"]],
+ "GetDIBits" => ["long", ["long", "long", "long", "long", "ptr", "ptr", "long"]],
+ "GetDeviceCaps" => ["long", ["long", "long"]],
+ "GetDeviceGammaRamp" => ["long", ["long", "ptr"]],
+ "GetEnhMetaFileA" => ["long", ["str"]],
+ "GetEnhMetaFileBits" => ["long", ["long", "long", "ptr"]],
+ "GetEnhMetaFileDescriptionA" => ["long", ["long", "long", "str"]],
+ "GetEnhMetaFileDescriptionW" => ["long", ["long", "long", "wstr"]],
+ "GetEnhMetaFileHeader" => ["long", ["long", "long", "ptr"]],
+ "GetEnhMetaFilePaletteEntries" => ["long", ["long", "long", "ptr"]],
+ "GetEnhMetaFileW" => ["long", ["wstr"]],
+ "GetFontData" => ["long", ["long", "long", "long", "ptr", "long"]],
+ "GetFontLanguageInfo" => ["long", ["long"]],
+ "GetGlyphOutlineA" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr"]],
+ "GetGlyphOutlineW" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr"]],
+ "GetGraphicsMode" => ["long", ["long"]],
+ "GetICMProfileA" => ["long", ["long", "ptr", "str"]],
+ "GetKerningPairsA" => ["long", ["long", "long", "ptr"]],
+ "GetKerningPairsW" => ["long", ["long", "long", "ptr"]],
+ "GetLayout" => ["long", ["long"]],
+ "GetMapMode" => ["long", ["long"]],
+ "GetMetaFileA" => ["long", ["str"]],
+ "GetMetaFileBitsEx" => ["long", ["long", "long", "ptr"]],
+ "GetMetaFileW" => ["long", ["wstr"]],
+ "GetMetaRgn" => ["long", ["long", "long"]],
+ "GetMiterLimit" => ["long", ["long", "ptr"]],
+ "GetNearestColor" => ["long", ["long", "long"]],
+ "GetNearestPaletteIndex" => ["long", ["long", "long"]],
+ "GetObjectA" => ["long", ["long", "long", "ptr"]],
+ "GetObjectType" => ["long", ["long"]],
+ "GetObjectW" => ["long", ["long", "long", "ptr"]],
+ "GetOutlineTextMetricsA" => ["long", ["long", "long", "ptr"]],
+ "GetOutlineTextMetricsW" => ["long", ["long", "long", "ptr"]],
+ "GetPaletteEntries" => ["long", ["long", "long", "long", "ptr"]],
+ "GetPath" => ["long", ["long", "ptr", "ptr", "long"]],
+ "GetPixel" => ["long", ["long", "long", "long"]],
+ "GetPixelFormat" => ["long", ["long"]],
+ "GetPolyFillMode" => ["long", ["long"]],
+ "GetROP2" => ["long", ["long"]],
+ "GetRandomRgn" => ["long", ["long", "long", "long"]],
+ "GetRasterizerCaps" => ["long", ["ptr", "long"]],
+ "GetRegionData" => ["long", ["long", "long", "ptr"]],
+ "GetRelAbs" => ["long", ["long", "long"]],
+ "GetRgnBox" => ["long", ["long", "ptr"]],
+ "GetStockObject" => ["long", ["long"]],
+ "GetStretchBltMode" => ["long", ["long"]],
+ "GetSystemPaletteEntries" => ["long", ["long", "long", "long", "ptr"]],
+ "GetSystemPaletteUse" => ["long", ["long"]],
+ "GetTextAlign" => ["long", ["long"]],
+ "GetTextCharacterExtra" => ["long", ["long"]],
+ "GetTextCharset" => ["long", ["long"]],
+ "GetTextCharsetInfo" => ["long", ["long", "ptr", "long"]],
+ "GetTextColor" => ["long", ["long"]],
+ "GetTextExtentExPointA" => ["long", ["long", "str", "long", "long", "ptr", "ptr", "ptr"]],
+ "GetTextExtentExPointW" => ["long", ["long", "wstr", "long", "long", "ptr", "ptr", "ptr"]],
+ "GetTextExtentPoint32A" => ["long", ["long", "str", "long", "ptr"]],
+ "GetTextExtentPoint32W" => ["long", ["long", "wstr", "long", "ptr"]],
+ "GetTextExtentPointA" => ["long", ["long", "str", "long", "ptr"]],
+ "GetTextExtentPointW" => ["long", ["long", "wstr", "long", "ptr"]],
+ "GetTextFaceA" => ["long", ["long", "long", "str"]],
+ "GetTextFaceW" => ["long", ["long", "long", "wstr"]],
+ "GetTextMetricsA" => ["long", ["long", "ptr"]],
+ "GetTextMetricsW" => ["long", ["long", "ptr"]],
+ "GetViewportExtEx" => ["long", ["long", "ptr"]],
+ "GetViewportOrgEx" => ["long", ["long", "ptr"]],
+ "GetWinMetaFileBits" => ["long", ["long", "long", "ptr", "long", "long"]],
+ "GetWindowExtEx" => ["long", ["long", "ptr"]],
+ "GetWindowOrgEx" => ["long", ["long", "ptr"]],
+ "GetWorldTransform" => ["long", ["long", "ptr"]],
+ "IntersectClipRect" => ["long", ["long", "long", "long", "long", "long"]],
+ "InvertRgn" => ["long", ["long", "long"]],
+ "LPtoDP" => ["long", ["long", "ptr", "long"]],
+ "LineDDA" => ["long", ["long", "long", "long", "long", "ptr", "long"]],
+ "LineTo" => ["long", ["long", "long", "long"]],
+ "MaskBlt" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long"]],
+ "ModifyWorldTransform" => ["long", ["long", "ptr", "long"]],
+ "MoveToEx" => ["long", ["long", "long", "long", "ptr"]],
+ "OffsetClipRgn" => ["long", ["long", "long", "long"]],
+ "OffsetRgn" => ["long", ["long", "long", "long"]],
+ "OffsetViewportOrgEx" => ["long", ["long", "long", "long", "ptr"]],
+ "OffsetWindowOrgEx" => ["long", ["long", "long", "long", "ptr"]],
+ "PaintRgn" => ["long", ["long", "long"]],
+ "PatBlt" => ["long", ["long", "long", "long", "long", "long", "long"]],
+ "PathToRegion" => ["long", ["long"]],
+ "Pie" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long"]],
+ "PlayEnhMetaFile" => ["long", ["long", "long", "ptr"]],
+ "PlayEnhMetaFileRecord" => ["long", ["long", "ptr", "ptr", "long"]],
+ "PlayMetaFile" => ["long", ["long", "long"]],
+ "PlayMetaFileRecord" => ["long", ["long", "ptr", "ptr", "long"]],
+ "PlgBlt" => ["long", ["long", "ptr", "long", "long", "long", "long", "long", "long", "long", "long"]],
+ "PolyBezier" => ["long", ["long", "ptr", "long"]],
+ "PolyBezierTo" => ["long", ["long", "ptr", "long"]],
+ "PolyDraw" => ["long", ["long", "ptr", "ptr", "long"]],
+ "PolyPolygon" => ["long", ["long", "ptr", "ptr", "long"]],
+ "PolyPolyline" => ["long", ["long", "ptr", "ptr", "long"]],
+ "PolyTextOutA" => ["long", ["long", "ptr", "long"]],
+ "PolyTextOutW" => ["long", ["long", "ptr", "long"]],
+ "Polygon" => ["long", ["long", "ptr", "long"]],
+ "Polyline" => ["long", ["long", "ptr", "long"]],
+ "PolylineTo" => ["long", ["long", "ptr", "long"]],
+ "PtInRegion" => ["long", ["long", "long", "long"]],
+ "PtVisible" => ["long", ["long", "long", "long"]],
+ "RealizePalette" => ["long", ["long"]],
+ "RectInRegion" => ["long", ["long", "ptr"]],
+ "RectVisible" => ["long", ["long", "ptr"]],
+ "Rectangle" => ["long", ["long", "long", "long", "long", "long"]],
+ "RemoveFontResourceA" => ["long", ["str"]],
+ "RemoveFontResourceW" => ["long", ["wstr"]],
+ "ResetDCA" => ["long", ["long", "ptr"]],
+ "ResetDCW" => ["long", ["long", "ptr"]],
+ "ResizePalette" => ["long", ["long", "long"]],
+ "RestoreDC" => ["long", ["long", "long"]],
+ "RoundRect" => ["long", ["long", "long", "long", "long", "long", "long", "long"]],
+ "SaveDC" => ["long", ["long"]],
+ "ScaleViewportExtEx" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
+ "ScaleWindowExtEx" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
+ "SelectClipPath" => ["long", ["long", "long"]],
+ "SelectClipRgn" => ["long", ["long", "long"]],
+ "SelectObject" => ["long", ["long", "long"]],
+ "SelectPalette" => ["long", ["long", "long", "long"]],
+ "SetAbortProc" => ["long", ["long", "ptr"]],
+ "SetArcDirection" => ["long", ["long", "long"]],
+ "SetBitmapBits" => ["long", ["long", "long", "ptr"]],
+ "SetBitmapDimensionEx" => ["long", ["long", "long", "long", "ptr"]],
+ "SetBkColor" => ["long", ["long", "long"]],
+ "SetBkMode" => ["long", ["long", "long"]],
+ "SetBoundsRect" => ["long", ["long", "ptr", "long"]],
+ "SetBrushOrgEx" => ["long", ["long", "long", "long", "ptr"]],
+ "SetColorAdjustment" => ["long", ["long", "ptr"]],
+ "SetColorSpace" => ["long", ["long", "long"]],
+ "SetDCHook" => ["long", ["long", "ptr", "long"]],
+ "SetDIBColorTable" => ["long", ["long", "long", "long", "ptr"]],
+ "SetDIBits" => ["long", ["long", "long", "long", "long", "ptr", "ptr", "long"]],
+ "SetDIBitsToDevice" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr", "ptr", "long"]],
+ "SetDeviceGammaRamp" => ["long", ["long", "ptr"]],
+ "SetEnhMetaFileBits" => ["long", ["long", "ptr"]],
+ "SetGraphicsMode" => ["long", ["long", "long"]],
+ "SetICMMode" => ["long", ["long", "long"]],
+ "SetLayout" => ["long", ["long", "long"]],
+ "SetMapMode" => ["long", ["long", "long"]],
+ "SetMapperFlags" => ["long", ["long", "long"]],
+ "SetMetaFileBitsEx" => ["long", ["long", "ptr"]],
+ "SetMetaRgn" => ["long", ["long"]],
+ "SetMiterLimit" => ["long", ["long", "long", "ptr"]],
+ "SetObjectOwner" => ["void", ["long", "long"]],
+ "SetPaletteEntries" => ["long", ["long", "long", "long", "ptr"]],
+ "SetPixel" => ["long", ["long", "long", "long", "long"]],
+ "SetPixelFormat" => ["long", ["long", "long", "ptr"]],
+ "SetPixelV" => ["long", ["long", "long", "long", "long"]],
+ "SetPolyFillMode" => ["long", ["long", "long"]],
+ "SetROP2" => ["long", ["long", "long"]],
+ "SetRectRgn" => ["long", ["long", "long", "long", "long", "long"]],
+ "SetRelAbs" => ["long", ["long", "long"]],
+ "SetStretchBltMode" => ["long", ["long", "long"]],
+ "SetSystemPaletteUse" => ["long", ["long", "long"]],
+ "SetTextAlign" => ["long", ["long", "long"]],
+ "SetTextCharacterExtra" => ["long", ["long", "long"]],
+ "SetTextColor" => ["long", ["long", "long"]],
+ "SetTextJustification" => ["long", ["long", "long", "long"]],
+ "SetViewportExtEx" => ["long", ["long", "long", "long", "ptr"]],
+ "SetViewportOrgEx" => ["long", ["long", "long", "long", "ptr"]],
+ "SetWinMetaFileBits" => ["long", ["long", "ptr", "long", "ptr"]],
+ "SetWindowExtEx" => ["long", ["long", "long", "long", "ptr"]],
+ "SetWindowOrgEx" => ["long", ["long", "long", "long", "ptr"]],
+ "SetWorldTransform" => ["long", ["long", "ptr"]],
+ "StartDocA" => ["long", ["long", "ptr"]],
+ "StartDocW" => ["long", ["long", "ptr"]],
+ "StartPage" => ["long", ["long"]],
+ "StretchBlt" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long"]],
+ "StretchDIBits" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr", "ptr", "long", "long"]],
+ "StrokeAndFillPath" => ["long", ["long"]],
+ "StrokePath" => ["long", ["long"]],
+ "SwapBuffers" => ["long", ["long"]],
+ "TextOutA" => ["long", ["long", "long", "long", "str", "long"]],
+ "TextOutW" => ["long", ["long", "long", "long", "wstr", "long"]],
+ "TranslateCharsetInfo" => ["long", ["ptr", "ptr", "long"]],
+ "UnrealizeObject" => ["long", ["long"]],
+ "UpdateColors" => ["long", ["long"]],
+ "WidenPath" => ["long", ["long"]]
+};
+
+&wine::declare("gdi32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/glu32.pm b/programs/winetest/include/glu32.pm
new file mode 100644
index 0000000..de66fe6
--- /dev/null
+++ b/programs/winetest/include/glu32.pm
@@ -0,0 +1,64 @@
+package glu32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "gluBeginCurve" => ["long", ["ptr"]],
+ "gluBeginPolygon" => ["long", ["ptr"]],
+ "gluBeginSurface" => ["long", ["ptr"]],
+ "gluBeginTrim" => ["long", ["ptr"]],
+ "gluBuild1DMipmaps" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
+ "gluBuild2DMipmaps" => ["long", ["long", "long", "long", "long", "long", "long", "ptr"]],
+ "gluCheckExtension" => ["long", ["ptr", "ptr"]],
+ "gluCylinder" => ["long", ["ptr", "double", "double", "double", "long", "long"]],
+ "gluDeleteNurbsRenderer" => ["long", ["ptr"]],
+ "gluDeleteQuadric" => ["long", ["ptr"]],
+ "gluDeleteTess" => ["long", ["ptr"]],
+ "gluDisk" => ["long", ["ptr", "double", "double", "long", "long"]],
+ "gluEndCurve" => ["long", ["ptr"]],
+ "gluEndPolygon" => ["long", ["ptr"]],
+ "gluEndSurface" => ["long", ["ptr"]],
+ "gluEndTrim" => ["long", ["ptr"]],
+ "gluErrorString" => ["long", ["long"]],
+ "gluGetNurbsProperty" => ["long", ["ptr", "long", "ptr"]],
+ "gluGetString" => ["long", ["long"]],
+ "gluLoadSamplingMatrices" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
+ "gluLookAt" => ["long", ["double", "double", "double", "double", "double", "double", "double", "double", "double"]],
+ "gluNewNurbsRenderer" => ["long", ["undef"]],
+ "gluNewQuadric" => ["long", ["undef"]],
+ "gluNewTess" => ["long", ["undef"]],
+ "gluNextContour" => ["long", ["ptr", "long"]],
+ "gluNurbsCallback" => ["long", ["ptr", "long", "ptr"]],
+ "gluNurbsCurve" => ["long", ["ptr", "long", "ptr", "long", "ptr", "long", "long"]],
+ "gluNurbsProperty" => ["long", ["ptr", "long", "long"]],
+ "gluNurbsSurface" => ["long", ["ptr", "long", "ptr", "long", "ptr", "long", "long", "ptr", "long", "long", "long"]],
+ "gluOrtho2D" => ["long", ["double", "double", "double", "double"]],
+ "gluPartialDisk" => ["long", ["ptr", "double", "double", "long", "long", "double", "double"]],
+ "gluPerspective" => ["long", ["double", "double", "double", "double"]],
+ "gluPickMatrix" => ["long", ["double", "double", "double", "double", "ptr"]],
+ "gluProject" => ["long", ["double", "double", "double", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
+ "gluPwlCurve" => ["long", ["ptr", "long", "ptr", "long", "long"]],
+ "gluQuadricCallback" => ["long", ["ptr", "long", "ptr"]],
+ "gluQuadricDrawStyle" => ["long", ["ptr", "long"]],
+ "gluQuadricNormals" => ["long", ["ptr", "long"]],
+ "gluQuadricOrientation" => ["long", ["ptr", "long"]],
+ "gluQuadricTexture" => ["long", ["ptr", "long"]],
+ "gluScaleImage" => ["long", ["long", "long", "long", "long", "ptr", "long", "long", "long", "ptr"]],
+ "gluSphere" => ["long", ["ptr", "double", "long", "long"]],
+ "gluTessCallback" => ["long", ["ptr", "long", "ptr"]],
+ "gluTessVertex" => ["long", ["ptr", "ptr", "ptr"]],
+ "gluUnProject" => ["long", ["double", "double", "double", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr"]]
+};
+
+&wine::declare("glu32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/icmp.pm b/programs/winetest/include/icmp.pm
new file mode 100644
index 0000000..3b10c0c
--- /dev/null
+++ b/programs/winetest/include/icmp.pm
@@ -0,0 +1,22 @@
+package icmp;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "IcmpCloseHandle" => ["long", ["long"]],
+ "IcmpCreateFile" => ["long", []],
+ "IcmpSendEcho" => ["long", ["long", "long", "ptr", "long", "ptr", "ptr", "long", "long"]]
+};
+
+&wine::declare("icmp",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/imagehlp.pm b/programs/winetest/include/imagehlp.pm
new file mode 100644
index 0000000..ee9a218
--- /dev/null
+++ b/programs/winetest/include/imagehlp.pm
@@ -0,0 +1,79 @@
+package imagehlp;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "BindImage" => ["long", ["str", "str", "str"]],
+ "BindImageEx" => ["long", ["long", "str", "str", "str", "ptr"]],
+ "CheckSumMappedFile" => ["ptr", ["ptr", "long", "ptr", "ptr"]],
+ "EnumerateLoadedModules" => ["long", ["long", "ptr", "ptr"]],
+ "FindDebugInfoFile" => ["long", ["str", "str", "str"]],
+ "FindExecutableImage" => ["long", ["str", "str", "str"]],
+ "GetImageConfigInformation" => ["long", ["ptr", "ptr"]],
+ "GetImageUnusedHeaderBytes" => ["long", ["ptr", "ptr"]],
+ "GetTimestampForLoadedLibrary" => ["long", ["long"]],
+ "ImageAddCertificate" => ["long", ["long", "ptr", "ptr"]],
+ "ImageDirectoryEntryToData" => ["ptr", ["ptr", "long", "long", "ptr"]],
+ "ImageEnumerateCertificates" => ["long", ["long", "long", "ptr", "ptr", "long"]],
+ "ImageGetCertificateData" => ["long", ["long", "long", "ptr", "ptr"]],
+ "ImageGetCertificateHeader" => ["long", ["long", "long", "ptr"]],
+ "ImageGetDigestStream" => ["long", ["long", "long", "ptr", "ptr"]],
+ "ImageLoad" => ["ptr", ["str", "str"]],
+ "ImageNtHeader" => ["ptr", ["ptr"]],
+ "ImageRemoveCertificate" => ["long", ["long", "long"]],
+ "ImageRvaToSection" => ["ptr", ["ptr", "ptr", "long"]],
+ "ImageRvaToVa" => ["ptr", ["ptr", "ptr", "long", "ptr"]],
+ "ImageUnload" => ["long", ["ptr"]],
+ "ImagehlpApiVersion" => ["ptr", ["undef"]],
+ "ImagehlpApiVersionEx" => ["ptr", ["ptr"]],
+ "MakeSureDirectoryPathExists" => ["long", ["str"]],
+ "MapAndLoad" => ["long", ["str", "str", "ptr", "long", "long"]],
+ "MapDebugInformation" => ["ptr", ["long", "str", "str", "long"]],
+ "MapFileAndCheckSumA" => ["long", ["str", "ptr", "ptr"]],
+ "MapFileAndCheckSumW" => ["long", ["wstr", "ptr", "ptr"]],
+ "ReBaseImage" => ["long", ["str", "str", "long", "long", "long", "long", "ptr", "ptr", "ptr", "ptr", "long"]],
+ "RemovePrivateCvSymbolic" => ["long", ["ptr", "ptr", "ptr"]],
+ "RemoveRelocations" => ["void", ["ptr"]],
+ "SearchTreeForFile" => ["long", ["str", "str", "str"]],
+ "SetImageConfigInformation" => ["long", ["ptr", "ptr"]],
+ "SplitSymbols" => ["long", ["str", "str", "str", "long"]],
+ "StackWalk" => ["long", ["long", "long", "long", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
+ "SymCleanup" => ["long", ["long"]],
+ "SymEnumerateModules" => ["long", ["long", "ptr", "ptr"]],
+ "SymEnumerateSymbols" => ["long", ["long", "long", "ptr", "ptr"]],
+ "SymFunctionTableAccess" => ["ptr", ["long", "long"]],
+ "SymGetModuleBase" => ["long", ["long", "long"]],
+ "SymGetModuleInfo" => ["long", ["long", "long", "ptr"]],
+ "SymGetOptions" => ["long", ["undef"]],
+ "SymGetSearchPath" => ["long", ["long", "str", "long"]],
+ "SymGetSymFromAddr" => ["long", ["long", "long", "ptr", "ptr"]],
+ "SymGetSymFromName" => ["long", ["long", "str", "ptr"]],
+ "SymGetSymNext" => ["long", ["long", "ptr"]],
+ "SymGetSymPrev" => ["long", ["long", "ptr"]],
+ "SymInitialize" => ["long", ["long", "str", "long"]],
+ "SymLoadModule" => ["long", ["long", "long", "str", "str", "long", "long"]],
+ "SymRegisterCallback" => ["long", ["long", "ptr", "ptr"]],
+ "SymSetOptions" => ["long", ["long"]],
+ "SymSetSearchPath" => ["long", ["long", "str"]],
+ "SymUnDName" => ["long", ["ptr", "str", "long"]],
+ "SymUnloadModule" => ["long", ["long", "long"]],
+ "TouchFileTimes" => ["long", ["long", "ptr"]],
+ "UnDecorateSymbolName" => ["long", ["str", "str", "long", "long"]],
+ "UnMapAndLoad" => ["long", ["ptr"]],
+ "UnmapDebugInformation" => ["long", ["ptr"]],
+ "UpdateDebugInfoFile" => ["long", ["str", "str", "str", "ptr"]],
+ "UpdateDebugInfoFileEx" => ["long", ["str", "str", "str", "ptr", "long"]]
+};
+
+&wine::declare("imagehlp",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/imm32.pm b/programs/winetest/include/imm32.pm
new file mode 100644
index 0000000..d1dbb0b
--- /dev/null
+++ b/programs/winetest/include/imm32.pm
@@ -0,0 +1,92 @@
+package imm32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "ImmAssociateContext" => ["long", ["long", "long"]],
+ "ImmConfigureIMEA" => ["long", ["long", "long", "long", "ptr"]],
+ "ImmConfigureIMEW" => ["long", ["long", "long", "long", "ptr"]],
+ "ImmCreateContext" => ["long", []],
+ "ImmCreateIMCC" => ["long", ["long"]],
+ "ImmCreateSoftKeyboard" => ["long", ["long", "long", "long", "long"]],
+ "ImmDestroyContext" => ["long", ["long"]],
+ "ImmDestroyIMCC" => ["long", ["long"]],
+ "ImmDestroySoftKeyboard" => ["long", ["long"]],
+ "ImmEnumRegisterWordA" => ["long", ["long", "ptr", "str", "long", "str", "ptr"]],
+ "ImmEnumRegisterWordW" => ["long", ["long", "ptr", "wstr", "long", "wstr", "ptr"]],
+ "ImmEscapeA" => ["long", ["long", "long", "long", "ptr"]],
+ "ImmEscapeW" => ["long", ["long", "long", "long", "ptr"]],
+ "ImmGenerateMessage" => ["long", ["long"]],
+ "ImmGetCandidateListA" => ["long", ["long", "long", "ptr", "long"]],
+ "ImmGetCandidateListCountA" => ["long", ["long", "ptr"]],
+ "ImmGetCandidateListCountW" => ["long", ["long", "ptr"]],
+ "ImmGetCandidateListW" => ["long", ["long", "long", "ptr", "long"]],
+ "ImmGetCandidateWindow" => ["long", ["long", "long", "ptr"]],
+ "ImmGetCompositionFontA" => ["long", ["long", "ptr"]],
+ "ImmGetCompositionFontW" => ["long", ["long", "ptr"]],
+ "ImmGetCompositionStringA" => ["long", ["long", "long", "ptr", "long"]],
+ "ImmGetCompositionStringW" => ["long", ["long", "long", "ptr", "long"]],
+ "ImmGetCompositionWindow" => ["long", ["long", "ptr"]],
+ "ImmGetContext" => ["long", ["long"]],
+ "ImmGetConversionListA" => ["long", ["long", "long", "str", "ptr", "long", "long"]],
+ "ImmGetConversionListW" => ["long", ["long", "long", "wstr", "ptr", "long", "long"]],
+ "ImmGetConversionStatus" => ["long", ["long", "ptr", "ptr"]],
+ "ImmGetDefaultIMEWnd" => ["long", ["long"]],
+ "ImmGetDescriptionA" => ["long", ["long", "str", "long"]],
+ "ImmGetDescriptionW" => ["long", ["long", "wstr", "long"]],
+ "ImmGetGuideLineA" => ["long", ["long", "long", "str", "long"]],
+ "ImmGetGuideLineW" => ["long", ["long", "long", "wstr", "long"]],
+ "ImmGetHotKey" => ["long", ["long", "ptr", "ptr", "ptr"]],
+ "ImmGetIMCCLockCount" => ["long", ["long"]],
+ "ImmGetIMCCSize" => ["long", ["long"]],
+ "ImmGetIMCLockCount" => ["long", ["long"]],
+ "ImmGetIMEFileNameA" => ["long", ["long", "str", "long"]],
+ "ImmGetIMEFileNameW" => ["long", ["long", "wstr", "long"]],
+ "ImmGetOpenStatus" => ["long", ["long"]],
+ "ImmGetProperty" => ["long", ["long", "long"]],
+ "ImmGetRegisterWordStyleA" => ["long", ["long", "long", "ptr"]],
+ "ImmGetRegisterWordStyleW" => ["long", ["long", "long", "ptr"]],
+ "ImmGetStatusWindowPos" => ["long", ["long", "ptr"]],
+ "ImmGetVirtualKey" => ["long", ["long"]],
+ "ImmInstallIMEA" => ["long", ["str", "str"]],
+ "ImmInstallIMEW" => ["long", ["wstr", "wstr"]],
+ "ImmIsIME" => ["long", ["long"]],
+ "ImmIsUIMessageA" => ["long", ["long", "long", "long", "long"]],
+ "ImmIsUIMessageW" => ["long", ["long", "long", "long", "long"]],
+ "ImmLockIMC" => ["ptr", ["long"]],
+ "ImmLockIMCC" => ["ptr", ["long"]],
+ "ImmNotifyIME" => ["long", ["long", "long", "long", "long"]],
+ "ImmReSizeIMCC" => ["long", ["long", "long"]],
+ "ImmRegisterWordA" => ["long", ["long", "str", "long", "str"]],
+ "ImmRegisterWordW" => ["long", ["long", "wstr", "long", "wstr"]],
+ "ImmReleaseContext" => ["long", ["long", "long"]],
+ "ImmSetCandidateWindow" => ["long", ["long", "ptr"]],
+ "ImmSetCompositionFontA" => ["long", ["long", "ptr"]],
+ "ImmSetCompositionFontW" => ["long", ["long", "ptr"]],
+ "ImmSetCompositionStringA" => ["long", ["long", "long", "ptr", "long", "ptr", "long"]],
+ "ImmSetCompositionStringW" => ["long", ["long", "long", "ptr", "long", "ptr", "long"]],
+ "ImmSetCompositionWindow" => ["long", ["long", "ptr"]],
+ "ImmSetConversionStatus" => ["long", ["long", "long", "long"]],
+ "ImmSetHotKey" => ["long", ["long", "long", "long", "long"]],
+ "ImmSetOpenStatus" => ["long", ["long", "long"]],
+ "ImmSetStatusWindowPos" => ["long", ["long", "ptr"]],
+ "ImmShowSoftKeyboard" => ["long", ["long", "long"]],
+ "ImmSimulateHotKey" => ["long", ["long", "long"]],
+ "ImmUnlockIMC" => ["long", ["long"]],
+ "ImmUnlockIMCC" => ["long", ["long"]],
+ "ImmUnregisterWordA" => ["long", ["long", "str", "long", "str"]],
+ "ImmUnregisterWordW" => ["long", ["long", "wstr", "long", "wstr"]]
+};
+
+&wine::declare("imm32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/joystick_drv.pm b/programs/winetest/include/joystick_drv.pm
new file mode 100644
index 0000000..e821a6c
--- /dev/null
+++ b/programs/winetest/include/joystick_drv.pm
@@ -0,0 +1,20 @@
+package joystick_drv;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DriverProc" => ["long", ["long", "long", "long", "long", "long"]]
+};
+
+&wine::declare("joystick.drv",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/kernel32.pm b/programs/winetest/include/kernel32.pm
new file mode 100644
index 0000000..0434acf
--- /dev/null
+++ b/programs/winetest/include/kernel32.pm
@@ -0,0 +1,754 @@
+package kernel32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "k32CharToOemA" => ["long", ["str", "str"]],
+ "k32CharToOemBuffA" => ["long", ["str", "str", "long"]],
+ "k32OemToCharA" => ["long", ["str", "str"]],
+ "k32OemToCharBuffA" => ["long", ["str", "str", "long"]],
+ "k32LoadStringA" => ["long", ["long", "long", "str", "long"]],
+ "k32wvsprintfA" => ["long", ["str", "str", "ptr"]],
+ "CommonUnimpStub" => ["void", ["ptr"]],
+ "GetProcessDword" => ["long", ["long", "long"]],
+ "DosFileHandleToWin32Handle" => ["long", ["long"]],
+ "Win32HandleToDosFileHandle" => ["long", ["long"]],
+ "DisposeLZ32Handle" => ["void", ["long"]],
+ "GlobalAlloc16" => ["long", ["long", "long"]],
+ "GlobalLock16" => ["ptr", ["long"]],
+ "GlobalUnlock16" => ["long", ["long"]],
+ "GlobalFix16" => ["long", ["long"]],
+ "GlobalUnfix16" => ["void", ["long"]],
+ "GlobalWire16" => ["ptr", ["long"]],
+ "GlobalUnWire16" => ["long", ["long"]],
+ "GlobalFree16" => ["long", ["long"]],
+ "GlobalSize16" => ["long", ["long"]],
+ "HouseCleanLogicallyDeadHandles" => ["void", []],
+ "GetWin16DOSEnv" => ["long", ["undef"]],
+ "LoadLibrary16" => ["long", ["str"]],
+ "FreeLibrary16" => ["void", ["long"]],
+ "GetProcAddress16" => ["ptr", ["long", "str"]],
+ "AllocMappedBuffer" => ["void", ["ptr"]],
+ "OT_32ThkLSF" => ["void", ["ptr"]],
+ "ThunkInitLSF" => ["ptr", ["ptr", "str", "long", "str", "str"]],
+ "LogApiThkLSF" => ["void", ["str", "ptr"]],
+ "ThunkInitLS" => ["long", ["ptr", "str", "long", "str", "str"]],
+ "LogApiThkSL" => ["void", ["str", "ptr"]],
+ "Common32ThkLS" => ["void", ["ptr"]],
+ "ThunkInitSL" => ["void", ["ptr", "str", "long", "str", "str"]],
+ "LogCBThkSL" => ["void", ["str", "ptr"]],
+ "ReleaseThunkLock" => ["void", ["ptr"]],
+ "RestoreThunkLock" => ["void", ["long"]],
+ "W32S_BackTo32" => ["void", ["ptr"]],
+ "GetThunkBuff" => ["ptr", []],
+ "GetThunkStuff" => ["ptr", ["str", "str"]],
+ "K32WOWCallback16" => ["long", ["long", "long"]],
+ "K32WOWCallback16Ex" => ["long", ["long", "long", "long", "ptr", "ptr"]],
+ "K32WOWGetVDMPointer" => ["ptr", ["long", "long", "long"]],
+ "K32WOWHandle32" => ["long", ["long", "long"]],
+ "K32WOWHandle16" => ["long", ["long", "long"]],
+ "K32WOWGlobalAlloc16" => ["long", ["long", "long"]],
+ "K32WOWGlobalLock16" => ["ptr", ["long"]],
+ "K32WOWGlobalUnlock16" => ["long", ["long"]],
+ "K32WOWGlobalFree16" => ["long", ["long"]],
+ "K32WOWGlobalAllocLock16" => ["long", ["long", "long", "ptr"]],
+ "K32WOWGlobalUnlockFree16" => ["long", ["long"]],
+ "K32WOWGlobalLockSize16" => ["long", ["long", "ptr"]],
+ "K32WOWYield16" => ["void", []],
+ "K32WOWDirectedYield16" => ["void", ["long"]],
+ "K32WOWGetVDMPointerFix" => ["ptr", ["long", "long", "long"]],
+ "K32WOWGetVDMPointerUnfix" => ["void", ["long"]],
+ "K32WOWGetDescriptor" => ["long", ["ptr", "ptr"]],
+ "SSOnBigStack" => ["long", ["undef"]],
+ "FT_PrologPrime" => ["void", ["ptr"]],
+ "QT_ThunkPrime" => ["void", ["ptr"]],
+ "PK16FNF" => ["void", ["str"]],
+ "GetPK16SysVar" => ["ptr", []],
+ "GetpWin16Lock" => ["void", ["ptr"]],
+ "_CheckNotSysLevel" => ["void", ["ptr"]],
+ "_ConfirmSysLevel" => ["long", ["ptr"]],
+ "_ConfirmWin16Lock" => ["long", []],
+ "_EnterSysLevel" => ["void", ["ptr"]],
+ "_LeaveSysLevel" => ["void", ["ptr"]],
+ "AddAtomA" => ["long", ["str"]],
+ "AddAtomW" => ["long", ["wstr"]],
+ "AllocConsole" => ["long", []],
+ "AllocSLCallback" => ["long", ["long", "long"]],
+ "AreFileApisANSI" => ["long", []],
+ "BackupRead" => ["long", ["long", "ptr", "long", "ptr", "long", "long", "ptr"]],
+ "BackupSeek" => ["long", ["long", "long", "long", "ptr", "ptr", "ptr"]],
+ "BackupWrite" => ["long", ["long", "ptr", "long", "ptr", "long", "long", "ptr"]],
+ "Beep" => ["long", ["long", "long"]],
+ "BuildCommDCBA" => ["long", ["str", "ptr"]],
+ "BuildCommDCBAndTimeoutsA" => ["long", ["str", "ptr", "ptr"]],
+ "BuildCommDCBAndTimeoutsW" => ["long", ["wstr", "ptr", "ptr"]],
+ "BuildCommDCBW" => ["long", ["wstr", "ptr"]],
+ "CallNamedPipeA" => ["long", ["str", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "CallNamedPipeW" => ["long", ["wstr", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "CancelIo" => ["long", ["long"]],
+ "CancelWaitableTimer" => ["long", ["long"]],
+ "ClearCommBreak" => ["long", ["long"]],
+ "ClearCommError" => ["long", ["long", "ptr", "ptr"]],
+ "CloseHandle" => ["long", ["long"]],
+ "CloseProfileUserMapping" => ["long", []],
+ "CommConfigDialogA" => ["long", ["str", "long", "ptr"]],
+ "CommConfigDialogW" => ["long", ["wstr", "long", "ptr"]],
+ "CompareFileTime" => ["long", ["ptr", "ptr"]],
+ "CompareStringA" => ["long", ["long", "long", "str", "long", "str", "long"]],
+ "CompareStringW" => ["long", ["long", "long", "wstr", "long", "wstr", "long"]],
+ "ConnectNamedPipe" => ["long", ["long", "ptr"]],
+ "ContinueDebugEvent" => ["long", ["long", "long", "long"]],
+ "ConvertDefaultLocale" => ["long", ["long"]],
+ "ConvertDialog32To16" => ["void", ["ptr", "long", "ptr"]],
+ "ConvertToGlobalHandle" => ["long", ["long"]],
+ "CopyFileA" => ["long", ["str", "str", "long"]],
+ "CopyFileExA" => ["long", ["str", "str", "ptr", "ptr", "ptr", "long"]],
+ "CopyFileExW" => ["long", ["wstr", "wstr", "ptr", "ptr", "ptr", "long"]],
+ "CopyFileW" => ["long", ["wstr", "wstr", "long"]],
+ "CreateConsoleScreenBuffer" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "CreateDirectoryA" => ["long", ["str", "ptr"]],
+ "CreateDirectoryExA" => ["long", ["str", "str", "ptr"]],
+ "CreateDirectoryExW" => ["long", ["wstr", "wstr", "ptr"]],
+ "CreateDirectoryW" => ["long", ["wstr", "ptr"]],
+ "CreateEventA" => ["long", ["ptr", "long", "long", "str"]],
+ "CreateEventW" => ["long", ["ptr", "long", "long", "wstr"]],
+ "CreateFileA" => ["long", ["str", "long", "long", "ptr", "long", "long", "long"]],
+ "CreateFileMappingA" => ["long", ["long", "ptr", "long", "long", "long", "str"]],
+ "CreateFileMappingW" => ["long", ["long", "ptr", "long", "long", "long", "wstr"]],
+ "CreateFileW" => ["long", ["wstr", "long", "long", "ptr", "long", "long", "long"]],
+ "CreateIoCompletionPort" => ["long", ["long", "long", "long", "long"]],
+ "CreateMailslotA" => ["long", ["str", "long", "long", "ptr"]],
+ "CreateMailslotW" => ["long", ["wstr", "long", "long", "ptr"]],
+ "CreateMutexA" => ["long", ["ptr", "long", "str"]],
+ "CreateMutexW" => ["long", ["ptr", "long", "wstr"]],
+ "CreateNamedPipeA" => ["long", ["str", "long", "long", "long", "long", "long", "long", "ptr"]],
+ "CreateNamedPipeW" => ["long", ["wstr", "long", "long", "long", "long", "long", "long", "ptr"]],
+ "CreatePipe" => ["long", ["ptr", "ptr", "ptr", "long"]],
+ "CreateProcessA" => ["long", ["str", "str", "ptr", "ptr", "long", "long", "ptr", "str", "ptr", "ptr"]],
+ "CreateProcessW" => ["long", ["wstr", "wstr", "ptr", "ptr", "long", "long", "ptr", "wstr", "ptr", "ptr"]],
+ "CreateSemaphoreA" => ["long", ["ptr", "long", "long", "str"]],
+ "CreateSemaphoreW" => ["long", ["ptr", "long", "long", "wstr"]],
+ "CreateSocketHandle" => ["long", []],
+ "CreateTapePartition" => ["long", ["long", "long", "long", "long"]],
+ "CreateThread" => ["long", ["ptr", "long", "ptr", "ptr", "long", "ptr"]],
+ "CreateToolhelp32Snapshot" => ["long", ["long", "long"]],
+ "CreateWaitableTimerA" => ["long", ["ptr", "long", "str"]],
+ "CreateWaitableTimerW" => ["long", ["ptr", "long", "wstr"]],
+ "DebugActiveProcess" => ["long", ["long"]],
+ "DebugBreak" => ["void", []],
+ "DefineDosDeviceA" => ["long", ["long", "str", "str"]],
+ "DeleteAtom" => ["long", ["long"]],
+ "DeleteFileA" => ["long", ["str"]],
+ "DeleteFileW" => ["long", ["wstr"]],
+ "DeviceIoControl" => ["long", ["long", "long", "ptr", "long", "ptr", "long", "ptr", "ptr"]],
+ "DisableThreadLibraryCalls" => ["long", ["long"]],
+ "DisconnectNamedPipe" => ["long", ["long"]],
+ "DosDateTimeToFileTime" => ["long", ["long", "long", "ptr"]],
+ "DuplicateHandle" => ["long", ["long", "long", "long", "ptr", "long", "long", "long"]],
+ "EnumCalendarInfoA" => ["long", ["ptr", "long", "long", "long"]],
+ "EnumDateFormatsA" => ["long", ["ptr", "long", "long"]],
+ "EnumDateFormatsW" => ["long", ["ptr", "long", "long"]],
+ "EnumResourceLanguagesA" => ["long", ["long", "str", "str", "ptr", "long"]],
+ "EnumResourceLanguagesW" => ["long", ["long", "wstr", "wstr", "ptr", "long"]],
+ "EnumResourceNamesA" => ["long", ["long", "str", "ptr", "long"]],
+ "EnumResourceNamesW" => ["long", ["long", "wstr", "ptr", "long"]],
+ "EnumResourceTypesA" => ["long", ["long", "ptr", "long"]],
+ "EnumResourceTypesW" => ["long", ["long", "ptr", "long"]],
+ "EnumSystemCodePagesA" => ["long", ["ptr", "long"]],
+ "EnumSystemCodePagesW" => ["long", ["ptr", "long"]],
+ "EnumSystemLocalesA" => ["long", ["ptr", "long"]],
+ "EnumSystemLocalesW" => ["long", ["ptr", "long"]],
+ "EnumTimeFormatsA" => ["long", ["ptr", "long", "long"]],
+ "EnumTimeFormatsW" => ["long", ["ptr", "long", "long"]],
+ "EraseTape" => ["long", ["long", "long", "long"]],
+ "EscapeCommFunction" => ["long", ["long", "long"]],
+ "ExitProcess" => ["void", ["long"]],
+ "ExitThread" => ["void", ["long"]],
+ "ExpandEnvironmentStringsA" => ["long", ["str", "str", "long"]],
+ "ExpandEnvironmentStringsW" => ["long", ["wstr", "wstr", "long"]],
+ "FT_Exit0" => ["void", ["ptr"]],
+ "FT_Exit12" => ["void", ["ptr"]],
+ "FT_Exit16" => ["void", ["ptr"]],
+ "FT_Exit20" => ["void", ["ptr"]],
+ "FT_Exit24" => ["void", ["ptr"]],
+ "FT_Exit28" => ["void", ["ptr"]],
+ "FT_Exit32" => ["void", ["ptr"]],
+ "FT_Exit36" => ["void", ["ptr"]],
+ "FT_Exit4" => ["void", ["ptr"]],
+ "FT_Exit40" => ["void", ["ptr"]],
+ "FT_Exit44" => ["void", ["ptr"]],
+ "FT_Exit48" => ["void", ["ptr"]],
+ "FT_Exit52" => ["void", ["ptr"]],
+ "FT_Exit56" => ["void", ["ptr"]],
+ "FT_Exit8" => ["void", ["ptr"]],
+ "FT_Prolog" => ["void", ["ptr"]],
+ "FT_Thunk" => ["void", ["ptr"]],
+ "FatalAppExitA" => ["void", ["long", "str"]],
+ "FatalAppExitW" => ["void", ["long", "wstr"]],
+ "FileTimeToDosDateTime" => ["long", ["ptr", "ptr", "ptr"]],
+ "FileTimeToLocalFileTime" => ["long", ["ptr", "ptr"]],
+ "FileTimeToSystemTime" => ["long", ["ptr", "ptr"]],
+ "FillConsoleOutputAttribute" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "FillConsoleOutputCharacterA" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "FillConsoleOutputCharacterW" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "FindAtomA" => ["long", ["str"]],
+ "FindAtomW" => ["long", ["wstr"]],
+ "FindClose" => ["long", ["long"]],
+ "FindCloseChangeNotification" => ["long", ["long"]],
+ "FindFirstChangeNotificationA" => ["long", ["str", "long", "long"]],
+ "FindFirstChangeNotificationW" => ["long", ["wstr", "long", "long"]],
+ "FindFirstFileA" => ["long", ["str", "ptr"]],
+ "FindFirstFileExA" => ["long", ["str", "ptr", "ptr", "ptr", "ptr", "long"]],
+ "FindFirstFileExW" => ["long", ["wstr", "ptr", "ptr", "ptr", "ptr", "long"]],
+ "FindFirstFileW" => ["long", ["wstr", "ptr"]],
+ "FindNextChangeNotification" => ["long", ["long"]],
+ "FindNextFileA" => ["long", ["long", "ptr"]],
+ "FindNextFileW" => ["long", ["long", "ptr"]],
+ "FindResource16" => ["long", ["long", "str", "str"]],
+ "FindResourceA" => ["long", ["long", "str", "str"]],
+ "FindResourceExA" => ["long", ["long", "str", "str", "long"]],
+ "FindResourceExW" => ["long", ["long", "wstr", "wstr", "long"]],
+ "FindResourceW" => ["long", ["long", "wstr", "wstr"]],
+ "FlushConsoleInputBuffer" => ["long", ["long"]],
+ "FlushFileBuffers" => ["long", ["long"]],
+ "FlushInstructionCache" => ["long", ["long", "long", "long"]],
+ "FlushViewOfFile" => ["long", ["ptr", "long"]],
+ "FormatMessageA" => ["long", ["long", "ptr", "long", "long", "str", "long", "ptr"]],
+ "FormatMessageW" => ["long", ["long", "ptr", "long", "long", "wstr", "long", "ptr"]],
+ "FreeConsole" => ["long", []],
+ "FreeEnvironmentStringsA" => ["long", ["str"]],
+ "FreeEnvironmentStringsW" => ["long", ["wstr"]],
+ "FreeLibrary" => ["long", ["long"]],
+ "FreeLibraryAndExitThread" => ["void", ["long", "long"]],
+ "FreeResource" => ["long", ["long"]],
+ "FreeResource16" => ["long", ["long"]],
+ "FreeSLCallback" => ["void", ["long"]],
+ "GenerateConsoleCtrlEvent" => ["long", ["long", "long"]],
+ "Get16DLLAddress" => ["ptr", ["long", "str"]],
+ "GetACP" => ["long", []],
+ "GetAtomNameA" => ["long", ["long", "str", "long"]],
+ "GetAtomNameW" => ["long", ["long", "wstr", "long"]],
+ "GetBinaryType" => ["long", ["str", "ptr"]],
+ "GetBinaryTypeA" => ["long", ["str", "ptr"]],
+ "GetBinaryTypeW" => ["long", ["wstr", "ptr"]],
+ "GetCPInfo" => ["long", ["long", "ptr"]],
+ "GetCalendarInfoA" => ["long", ["long", "long", "long", "str", "long", "ptr"]],
+ "GetCalendarInfoW" => ["long", ["long", "long", "long", "wstr", "long", "ptr"]],
+ "GetCommConfig" => ["long", ["long", "ptr", "ptr"]],
+ "GetCommMask" => ["long", ["long", "ptr"]],
+ "GetCommModemStatus" => ["long", ["long", "ptr"]],
+ "GetCommProperties" => ["long", ["long", "ptr"]],
+ "GetCommState" => ["long", ["long", "ptr"]],
+ "GetCommTimeouts" => ["long", ["long", "ptr"]],
+ "GetCommandLineA" => ["str", []],
+ "GetCommandLineW" => ["wstr", []],
+ "GetCompressedFileSizeA" => ["long", ["str", "ptr"]],
+ "GetCompressedFileSizeW" => ["long", ["wstr", "ptr"]],
+ "GetComputerNameA" => ["long", ["str", "ptr"]],
+ "GetComputerNameW" => ["long", ["wstr", "ptr"]],
+ "GetConsoleCP" => ["long", []],
+ "GetConsoleCursorInfo" => ["long", ["long", "ptr"]],
+ "GetConsoleMode" => ["long", ["long", "ptr"]],
+ "GetConsoleOutputCP" => ["long", []],
+ "GetConsoleScreenBufferInfo" => ["long", ["long", "ptr"]],
+ "GetConsoleTitleA" => ["long", ["str", "long"]],
+ "GetConsoleTitleW" => ["long", ["wstr", "long"]],
+ "GetCurrencyFormatA" => ["long", ["long", "long", "str", "ptr", "str", "long"]],
+ "GetCurrencyFormatW" => ["long", ["long", "long", "wstr", "ptr", "wstr", "long"]],
+ "GetCurrentDirectoryA" => ["long", ["long", "str"]],
+ "GetCurrentDirectoryW" => ["long", ["long", "wstr"]],
+ "GetCurrentProcess" => ["long", []],
+ "GetCurrentProcessId" => ["long", []],
+ "GetCurrentTask" => ["long", []],
+ "GetCurrentThread" => ["long", []],
+ "GetCurrentThreadId" => ["long", []],
+ "GetDOSEnvironment16" => ["ptr", []],
+ "GetDateFormatA" => ["long", ["long", "long", "ptr", "str", "str", "long"]],
+ "GetDateFormatW" => ["long", ["long", "long", "ptr", "wstr", "wstr", "long"]],
+ "GetDefaultCommConfigA" => ["long", ["str", "ptr", "ptr"]],
+ "GetDefaultCommConfigW" => ["long", ["wstr", "ptr", "ptr"]],
+ "GetDiskFreeSpaceA" => ["long", ["str", "ptr", "ptr", "ptr", "ptr"]],
+ "GetDiskFreeSpaceExA" => ["long", ["str", "ptr", "ptr", "ptr"]],
+ "GetDiskFreeSpaceExW" => ["long", ["wstr", "ptr", "ptr", "ptr"]],
+ "GetDiskFreeSpaceW" => ["long", ["wstr", "ptr", "ptr", "ptr", "ptr"]],
+ "GetDriveTypeA" => ["long", ["str"]],
+ "GetDriveTypeW" => ["long", ["wstr"]],
+ "GetEnvironmentStrings" => ["str", []],
+ "GetEnvironmentStringsA" => ["str", []],
+ "GetEnvironmentStringsW" => ["wstr", []],
+ "GetEnvironmentVariableA" => ["long", ["str", "str", "long"]],
+ "GetEnvironmentVariableW" => ["long", ["wstr", "wstr", "long"]],
+ "GetExitCodeProcess" => ["long", ["long", "ptr"]],
+ "GetExitCodeThread" => ["long", ["long", "ptr"]],
+ "GetFileAttributesA" => ["long", ["str"]],
+ "GetFileAttributesExA" => ["long", ["str", "ptr", "ptr"]],
+ "GetFileAttributesExW" => ["long", ["wstr", "ptr", "ptr"]],
+ "GetFileAttributesW" => ["long", ["wstr"]],
+ "GetFileInformationByHandle" => ["long", ["long", "ptr"]],
+ "GetFileSize" => ["long", ["long", "ptr"]],
+ "GetFileTime" => ["long", ["long", "ptr", "ptr", "ptr"]],
+ "GetFileType" => ["long", ["long"]],
+ "GetFullPathNameA" => ["long", ["str", "long", "str", "ptr"]],
+ "GetFullPathNameW" => ["long", ["wstr", "long", "wstr", "ptr"]],
+ "GetHandleContext" => ["long", ["long"]],
+ "GetHandleInformation" => ["long", ["long", "ptr"]],
+ "GetLargestConsoleWindowSize" => ["long", ["long"]],
+ "GetLastError" => ["long", []],
+ "GetLocalTime" => ["void", ["ptr"]],
+ "GetLocaleInfoA" => ["long", ["long", "long", "str", "long"]],
+ "GetLocaleInfoW" => ["long", ["long", "long", "wstr", "long"]],
+ "GetLogicalDriveStringsA" => ["long", ["long", "str"]],
+ "GetLogicalDriveStringsW" => ["long", ["long", "wstr"]],
+ "GetLogicalDrives" => ["long", []],
+ "GetLongPathNameA" => ["long", ["str", "str", "long"]],
+ "GetLongPathNameW" => ["long", ["wstr", "wstr", "long"]],
+ "GetMailslotInfo" => ["long", ["long", "ptr", "ptr", "ptr", "ptr"]],
+ "GetModuleFileName16" => ["long", ["long", "str", "long"]],
+ "GetModuleFileNameA" => ["long", ["long", "str", "long"]],
+ "GetModuleFileNameW" => ["long", ["long", "wstr", "long"]],
+ "GetModuleHandle16" => ["long", ["str"]],
+ "GetModuleHandleA" => ["long", ["str"]],
+ "GetModuleHandleW" => ["long", ["wstr"]],
+ "GetNamedPipeHandleStateA" => ["long", ["long", "ptr", "ptr", "ptr", "ptr", "str", "long"]],
+ "GetNamedPipeHandleStateW" => ["long", ["long", "ptr", "ptr", "ptr", "ptr", "wstr", "long"]],
+ "GetNamedPipeInfo" => ["long", ["long", "ptr", "ptr", "ptr", "ptr"]],
+ "GetNumberFormatA" => ["long", ["long", "long", "str", "ptr", "str", "long"]],
+ "GetNumberFormatW" => ["long", ["long", "long", "wstr", "ptr", "wstr", "long"]],
+ "GetNumberOfConsoleInputEvents" => ["long", ["long", "ptr"]],
+ "GetNumberOfConsoleMouseButtons" => ["long", ["ptr"]],
+ "GetOEMCP" => ["long", []],
+ "GetOverlappedResult" => ["long", ["long", "ptr", "ptr", "long"]],
+ "GetPriorityClass" => ["long", ["long"]],
+ "GetPrivateProfileIntA" => ["long", ["str", "str", "long", "str"]],
+ "GetPrivateProfileIntW" => ["long", ["wstr", "wstr", "long", "wstr"]],
+ "GetPrivateProfileSectionA" => ["long", ["str", "str", "long", "str"]],
+ "GetPrivateProfileSectionNamesA" => ["long", ["str", "long", "str"]],
+ "GetPrivateProfileSectionNamesW" => ["long", ["wstr", "long", "wstr"]],
+ "GetPrivateProfileSectionW" => ["long", ["wstr", "wstr", "long", "wstr"]],
+ "GetPrivateProfileStringA" => ["long", ["str", "str", "str", "str", "long", "str"]],
+ "GetPrivateProfileStringW" => ["long", ["wstr", "wstr", "wstr", "wstr", "long", "wstr"]],
+ "GetPrivateProfileStructA" => ["long", ["str", "str", "ptr", "long", "str"]],
+ "GetPrivateProfileStructW" => ["long", ["wstr", "wstr", "ptr", "long", "wstr"]],
+ "GetProcAddress" => ["ptr", ["long", "str"]],
+ "GetProcessAffinityMask" => ["long", ["long", "ptr", "ptr"]],
+ "GetProcessFlags" => ["long", ["long"]],
+ "GetProcessHeap" => ["long", []],
+ "GetProcessHeaps" => ["long", ["long", "ptr"]],
+ "GetProcessShutdownParameters" => ["long", ["ptr", "ptr"]],
+ "GetProcessTimes" => ["long", ["long", "ptr", "ptr", "ptr", "ptr"]],
+ "GetProcessVersion" => ["long", ["long"]],
+ "GetProcessWorkingSetSize" => ["long", ["long", "ptr", "ptr"]],
+ "GetProfileIntA" => ["long", ["str", "str", "long"]],
+ "GetProfileIntW" => ["long", ["wstr", "wstr", "long"]],
+ "GetProfileSectionA" => ["long", ["str", "str", "long"]],
+ "GetProfileSectionW" => ["long", ["wstr", "wstr", "long"]],
+ "GetProfileStringA" => ["long", ["str", "str", "str", "str", "long"]],
+ "GetProfileStringW" => ["long", ["wstr", "wstr", "wstr", "wstr", "long"]],
+ "GetQueuedCompletionStatus" => ["long", ["long", "ptr", "ptr", "ptr", "long"]],
+ "GetShortPathNameA" => ["long", ["str", "str", "long"]],
+ "GetShortPathNameW" => ["long", ["wstr", "wstr", "long"]],
+ "GetStartupInfoA" => ["void", ["ptr"]],
+ "GetStartupInfoW" => ["void", ["ptr"]],
+ "GetStdHandle" => ["long", ["long"]],
+ "GetStringTypeA" => ["long", ["long", "long", "str", "long", "ptr"]],
+ "GetStringTypeExA" => ["long", ["long", "long", "str", "long", "ptr"]],
+ "GetStringTypeExW" => ["long", ["long", "long", "wstr", "long", "ptr"]],
+ "GetStringTypeW" => ["long", ["long", "wstr", "long", "ptr"]],
+ "GetSystemDefaultLCID" => ["long", []],
+ "GetSystemDefaultLangID" => ["long", []],
+ "GetSystemDirectoryA" => ["long", ["str", "long"]],
+ "GetSystemDirectoryW" => ["long", ["wstr", "long"]],
+ "GetSystemInfo" => ["void", ["ptr"]],
+ "GetSystemPowerStatus" => ["long", ["ptr"]],
+ "GetSystemTime" => ["void", ["ptr"]],
+ "GetSystemTimeAdjustment" => ["long", ["ptr", "ptr", "ptr"]],
+ "GetSystemTimeAsFileTime" => ["void", ["ptr"]],
+ "GetSystemWindowsDirectoryA" => ["long", ["str", "long"]],
+ "GetSystemWindowsDirectoryW" => ["long", ["wstr", "long"]],
+ "GetTapeParameters" => ["long", ["long", "long", "ptr", "ptr"]],
+ "GetTapePosition" => ["long", ["long", "long", "ptr", "ptr", "ptr"]],
+ "GetTapeStatus" => ["long", ["long"]],
+ "GetTempFileNameA" => ["long", ["str", "str", "long", "str"]],
+ "GetTempFileNameW" => ["long", ["wstr", "wstr", "long", "wstr"]],
+ "GetTempPathA" => ["long", ["long", "str"]],
+ "GetTempPathW" => ["long", ["long", "wstr"]],
+ "GetThreadContext" => ["long", ["long", "ptr"]],
+ "GetThreadLocale" => ["long", []],
+ "GetThreadPriority" => ["long", ["long"]],
+ "GetThreadPriorityBoost" => ["long", ["long", "ptr"]],
+ "GetThreadSelectorEntry" => ["long", ["long", "long", "ptr"]],
+ "GetThreadTimes" => ["long", ["long", "ptr", "ptr", "ptr", "ptr"]],
+ "GetTickCount" => ["long", []],
+ "GetTimeFormatA" => ["long", ["long", "long", "ptr", "str", "str", "long"]],
+ "GetTimeFormatW" => ["long", ["long", "long", "ptr", "wstr", "wstr", "long"]],
+ "GetTimeZoneInformation" => ["long", ["ptr"]],
+ "GetUserDefaultLCID" => ["long", []],
+ "GetUserDefaultLangID" => ["long", []],
+ "GetVersion" => ["long", []],
+ "GetVersionExA" => ["long", ["ptr"]],
+ "GetVersionExW" => ["long", ["ptr"]],
+ "GetVolumeInformationA" => ["long", ["str", "str", "long", "ptr", "ptr", "ptr", "str", "long"]],
+ "GetVolumeInformationW" => ["long", ["wstr", "wstr", "long", "ptr", "ptr", "ptr", "wstr", "long"]],
+ "GetWindowsDirectoryA" => ["long", ["str", "long"]],
+ "GetWindowsDirectoryW" => ["long", ["wstr", "long"]],
+ "GlobalAddAtomA" => ["long", ["str"]],
+ "GlobalAddAtomW" => ["long", ["wstr"]],
+ "GlobalAlloc" => ["long", ["long", "long"]],
+ "GlobalCompact" => ["long", ["long"]],
+ "GlobalDeleteAtom" => ["long", ["long"]],
+ "GlobalFindAtomA" => ["long", ["str"]],
+ "GlobalFindAtomW" => ["long", ["wstr"]],
+ "GlobalFix" => ["void", ["long"]],
+ "GlobalFlags" => ["long", ["long"]],
+ "GlobalFlags16" => ["long", ["long"]],
+ "GlobalFree" => ["long", ["long"]],
+ "GlobalGetAtomNameA" => ["long", ["long", "str", "long"]],
+ "GlobalGetAtomNameW" => ["long", ["long", "wstr", "long"]],
+ "GlobalHandle" => ["long", ["ptr"]],
+ "GlobalLock" => ["ptr", ["long"]],
+ "GlobalMemoryStatus" => ["void", ["ptr"]],
+ "GlobalReAlloc" => ["long", ["long", "long", "long"]],
+ "GlobalReAlloc16" => ["long", ["long", "long", "long"]],
+ "GlobalSize" => ["long", ["long"]],
+ "GlobalUnWire" => ["long", ["long"]],
+ "GlobalUnfix" => ["void", ["long"]],
+ "GlobalUnlock" => ["long", ["long"]],
+ "GlobalWire" => ["ptr", ["long"]],
+ "HeapCompact" => ["long", ["long", "long"]],
+ "HeapCreate" => ["long", ["long", "long", "long"]],
+ "HeapDestroy" => ["long", ["long"]],
+ "HeapLock" => ["long", ["long"]],
+ "HeapUnlock" => ["long", ["long"]],
+ "HeapValidate" => ["long", ["long", "long", "ptr"]],
+ "HeapWalk" => ["long", ["long", "ptr"]],
+ "InitAtomTable" => ["long", ["long"]],
+ "InitializeCriticalSection" => ["void", ["ptr"]],
+ "InitializeCriticalSectionAndSpinCount" => ["long", ["ptr", "long"]],
+ "InterlockedCompareExchange" => ["long", ["ptr", "long", "long"]],
+ "InterlockedDecrement" => ["long", ["ptr"]],
+ "InterlockedExchange" => ["long", ["ptr", "long"]],
+ "InterlockedExchangeAdd" => ["long", ["ptr", "long"]],
+ "InterlockedIncrement" => ["long", ["ptr"]],
+ "IsBadCodePtr" => ["long", ["ptr"]],
+ "IsBadHugeReadPtr" => ["long", ["ptr", "long"]],
+ "IsBadHugeWritePtr" => ["long", ["ptr", "long"]],
+ "IsBadReadPtr" => ["long", ["ptr", "long"]],
+ "IsBadStringPtrA" => ["long", ["str", "long"]],
+ "IsBadStringPtrW" => ["long", ["wstr", "long"]],
+ "IsBadWritePtr" => ["long", ["ptr", "long"]],
+ "IsDBCSLeadByte" => ["long", ["long"]],
+ "IsDBCSLeadByteEx" => ["long", ["long", "long"]],
+ "IsDebuggerPresent" => ["long", []],
+ "IsProcessorFeaturePresent" => ["long", ["long"]],
+ "IsTask16" => ["long", ["long"]],
+ "IsValidCodePage" => ["long", ["long"]],
+ "IsValidLocale" => ["long", ["long", "long"]],
+ "K32Thk1632Epilog" => ["void", ["ptr"]],
+ "K32Thk1632Prolog" => ["void", ["ptr"]],
+ "LCMapStringA" => ["long", ["long", "long", "str", "long", "str", "long"]],
+ "LCMapStringW" => ["long", ["long", "long", "wstr", "long", "wstr", "long"]],
+ "LoadLibraryA" => ["long", ["str"]],
+ "LoadLibraryExA" => ["long", ["str", "long", "long"]],
+ "LoadLibraryExW" => ["long", ["wstr", "long", "long"]],
+ "LoadLibraryW" => ["long", ["wstr"]],
+ "LoadModule" => ["long", ["str", "ptr"]],
+ "LoadModule16" => ["long", ["str", "ptr"]],
+ "LoadResource" => ["long", ["long", "long"]],
+ "LoadResource16" => ["long", ["long", "long"]],
+ "LocalAlloc" => ["long", ["long", "long"]],
+ "LocalCompact" => ["long", ["long"]],
+ "LocalFileTimeToFileTime" => ["long", ["ptr", "ptr"]],
+ "LocalFlags" => ["long", ["long"]],
+ "LocalFree" => ["long", ["long"]],
+ "LocalHandle" => ["long", ["ptr"]],
+ "LocalLock" => ["ptr", ["long"]],
+ "LocalReAlloc" => ["long", ["long", "long", "long"]],
+ "LocalShrink" => ["long", ["long", "long"]],
+ "LocalSize" => ["long", ["long"]],
+ "LocalUnlock" => ["long", ["long"]],
+ "LockFile" => ["long", ["long", "long", "long", "long", "long"]],
+ "LockFileEx" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
+ "LockResource" => ["ptr", ["long"]],
+ "LockResource16" => ["ptr", ["long"]],
+ "MakeCriticalSectionGlobal" => ["void", ["ptr"]],
+ "MapHInstLS" => ["void", ["ptr"]],
+ "MapHInstLS_PN" => ["void", ["ptr"]],
+ "MapHInstSL" => ["void", ["ptr"]],
+ "MapHInstSL_PN" => ["void", ["ptr"]],
+ "MapHModuleLS" => ["long", ["long"]],
+ "MapHModuleSL" => ["long", ["long"]],
+ "MapLS" => ["ptr", ["ptr"]],
+ "MapSL" => ["ptr", ["ptr"]],
+ "MapSLFix" => ["ptr", ["ptr"]],
+ "MapViewOfFile" => ["ptr", ["long", "long", "long", "long", "long"]],
+ "MapViewOfFileEx" => ["ptr", ["long", "long", "long", "long", "long", "ptr"]],
+ "Module32First" => ["long", ["long", "ptr"]],
+ "Module32Next" => ["long", ["long", "ptr"]],
+ "MoveFileA" => ["long", ["str", "str"]],
+ "MoveFileExA" => ["long", ["str", "str", "long"]],
+ "MoveFileExW" => ["long", ["wstr", "wstr", "long"]],
+ "MoveFileW" => ["long", ["wstr", "wstr"]],
+ "MulDiv" => ["long", ["long", "long", "long"]],
+ "MultiByteToWideChar" => ["long", ["long", "long", "str", "long", "wstr", "long"]],
+ "OpenEventA" => ["long", ["long", "long", "str"]],
+ "OpenEventW" => ["long", ["long", "long", "wstr"]],
+ "OpenFile" => ["long", ["str", "ptr", "long"]],
+ "OpenFileMappingA" => ["long", ["long", "long", "str"]],
+ "OpenFileMappingW" => ["long", ["long", "long", "wstr"]],
+ "OpenMutexA" => ["long", ["long", "long", "str"]],
+ "OpenMutexW" => ["long", ["long", "long", "wstr"]],
+ "OpenProcess" => ["long", ["long", "long", "long"]],
+ "OpenSemaphoreA" => ["long", ["long", "long", "str"]],
+ "OpenSemaphoreW" => ["long", ["long", "long", "wstr"]],
+ "OpenVxDHandle" => ["long", ["long"]],
+ "OpenWaitableTimerA" => ["long", ["long", "long", "str"]],
+ "OpenWaitableTimerW" => ["long", ["long", "long", "wstr"]],
+ "OutputDebugStringA" => ["void", ["str"]],
+ "OutputDebugStringW" => ["void", ["wstr"]],
+ "PeekConsoleInputA" => ["long", ["long", "ptr", "long", "ptr"]],
+ "PeekConsoleInputW" => ["long", ["long", "ptr", "long", "ptr"]],
+ "PeekNamedPipe" => ["long", ["long", "ptr", "long", "ptr", "ptr", "ptr"]],
+ "PrepareTape" => ["long", ["long", "long", "long"]],
+ "PrivateFreeLibrary" => ["void", ["long"]],
+ "PrivateLoadLibrary" => ["long", ["str"]],
+ "Process32First" => ["long", ["long", "ptr"]],
+ "Process32Next" => ["long", ["long", "ptr"]],
+ "ProcessIdToSessionId" => ["long", ["long", "ptr"]],
+ "PulseEvent" => ["long", ["long"]],
+ "PurgeComm" => ["long", ["long", "long"]],
+ "QT_Thunk" => ["void", ["ptr"]],
+ "QueryDosDeviceA" => ["long", ["str", "str", "long"]],
+ "QueryDosDeviceW" => ["long", ["wstr", "wstr", "long"]],
+ "QueryPerformanceCounter" => ["long", ["ptr"]],
+ "QueryPerformanceFrequency" => ["long", ["ptr"]],
+ "QueueUserAPC" => ["long", ["ptr", "long", "long"]],
+ "RaiseException" => ["void", ["long", "long", "long", "ptr"]],
+ "ReadConsoleA" => ["long", ["long", "ptr", "long", "ptr", "ptr"]],
+ "ReadConsoleInputA" => ["long", ["long", "ptr", "long", "ptr"]],
+ "ReadConsoleInputW" => ["long", ["long", "ptr", "long", "ptr"]],
+ "ReadConsoleOutputA" => ["long", ["long", "ptr", "long", "long", "ptr"]],
+ "ReadConsoleOutputAttribute" => ["long", ["long", "ptr", "long", "long", "ptr"]],
+ "ReadConsoleOutputCharacterA" => ["long", ["long", "str", "long", "long", "ptr"]],
+ "ReadConsoleOutputCharacterW" => ["long", ["long", "wstr", "long", "long", "ptr"]],
+ "ReadConsoleOutputW" => ["long", ["long", "ptr", "long", "long", "ptr"]],
+ "ReadConsoleW" => ["long", ["long", "ptr", "long", "ptr", "ptr"]],
+ "ReadFile" => ["long", ["long", "ptr", "long", "ptr", "ptr"]],
+ "ReadFileEx" => ["long", ["long", "ptr", "long", "ptr", "ptr"]],
+ "ReadProcessMemory" => ["long", ["long", "ptr", "ptr", "long", "ptr"]],
+ "RegisterServiceProcess" => ["long", ["long", "long"]],
+ "ReinitializeCriticalSection" => ["void", ["ptr"]],
+ "ReleaseMutex" => ["long", ["long"]],
+ "ReleaseSemaphore" => ["long", ["long", "long", "ptr"]],
+ "RemoveDirectoryA" => ["long", ["str"]],
+ "RemoveDirectoryW" => ["long", ["wstr"]],
+ "ResetEvent" => ["long", ["long"]],
+ "ResumeThread" => ["long", ["long"]],
+ "SMapLS" => ["void", ["ptr"]],
+ "SMapLS_IP_EBP_12" => ["void", ["ptr"]],
+ "SMapLS_IP_EBP_16" => ["void", ["ptr"]],
+ "SMapLS_IP_EBP_20" => ["void", ["ptr"]],
+ "SMapLS_IP_EBP_24" => ["void", ["ptr"]],
+ "SMapLS_IP_EBP_28" => ["void", ["ptr"]],
+ "SMapLS_IP_EBP_32" => ["void", ["ptr"]],
+ "SMapLS_IP_EBP_36" => ["void", ["ptr"]],
+ "SMapLS_IP_EBP_40" => ["void", ["ptr"]],
+ "SMapLS_IP_EBP_8" => ["void", ["ptr"]],
+ "SUnMapLS" => ["void", ["ptr"]],
+ "SUnMapLS_IP_EBP_12" => ["void", ["ptr"]],
+ "SUnMapLS_IP_EBP_16" => ["void", ["ptr"]],
+ "SUnMapLS_IP_EBP_20" => ["void", ["ptr"]],
+ "SUnMapLS_IP_EBP_24" => ["void", ["ptr"]],
+ "SUnMapLS_IP_EBP_28" => ["void", ["ptr"]],
+ "SUnMapLS_IP_EBP_32" => ["void", ["ptr"]],
+ "SUnMapLS_IP_EBP_36" => ["void", ["ptr"]],
+ "SUnMapLS_IP_EBP_40" => ["void", ["ptr"]],
+ "SUnMapLS_IP_EBP_8" => ["void", ["ptr"]],
+ "ScrollConsoleScreenBufferA" => ["long", ["long", "ptr", "ptr", "long", "ptr"]],
+ "SearchPathA" => ["long", ["str", "str", "str", "long", "str", "ptr"]],
+ "SearchPathW" => ["long", ["wstr", "wstr", "wstr", "long", "wstr", "ptr"]],
+ "SetCalendarInfoA" => ["long", ["long", "long", "long", "str"]],
+ "SetCalendarInfoW" => ["long", ["long", "long", "long", "wstr"]],
+ "SetCommBreak" => ["long", ["long"]],
+ "SetCommConfig" => ["long", ["long", "ptr", "long"]],
+ "SetCommMask" => ["long", ["long", "long"]],
+ "SetCommState" => ["long", ["long", "ptr"]],
+ "SetCommTimeouts" => ["long", ["long", "ptr"]],
+ "SetComputerNameA" => ["long", ["str"]],
+ "SetComputerNameW" => ["long", ["wstr"]],
+ "SetConsoleActiveScreenBuffer" => ["long", ["long"]],
+ "SetConsoleCP" => ["long", ["long"]],
+ "SetConsoleCursorInfo" => ["long", ["long", "ptr"]],
+ "SetConsoleCursorPosition" => ["long", ["long", "long"]],
+ "SetConsoleInputExeNameA" => ["long", ["str"]],
+ "SetConsoleInputExeNameW" => ["long", ["wstr"]],
+ "SetConsoleMode" => ["long", ["long", "long"]],
+ "SetConsoleOutputCP" => ["long", ["long"]],
+ "SetConsoleScreenBufferSize" => ["long", ["long", "long"]],
+ "SetConsoleTextAttribute" => ["long", ["long", "long"]],
+ "SetConsoleTitleA" => ["long", ["str"]],
+ "SetConsoleTitleW" => ["long", ["wstr"]],
+ "SetConsoleWindowInfo" => ["long", ["long", "long", "ptr"]],
+ "SetCriticalSectionSpinCount" => ["long", ["ptr", "long"]],
+ "SetCurrentDirectoryA" => ["long", ["str"]],
+ "SetCurrentDirectoryW" => ["long", ["wstr"]],
+ "SetDefaultCommConfigA" => ["long", ["str", "ptr", "long"]],
+ "SetDefaultCommConfigW" => ["long", ["wstr", "ptr", "long"]],
+ "SetEndOfFile" => ["long", ["long"]],
+ "SetEnvironmentVariableA" => ["long", ["str", "str"]],
+ "SetEnvironmentVariableW" => ["long", ["wstr", "wstr"]],
+ "SetErrorMode" => ["long", ["long"]],
+ "SetEvent" => ["long", ["long"]],
+ "SetFileApisToANSI" => ["void", []],
+ "SetFileApisToOEM" => ["void", []],
+ "SetFileAttributesA" => ["long", ["str", "long"]],
+ "SetFileAttributesW" => ["long", ["wstr", "long"]],
+ "SetFilePointer" => ["long", ["long", "long", "ptr", "long"]],
+ "SetFileTime" => ["long", ["long", "ptr", "ptr", "ptr"]],
+ "SetHandleContext" => ["long", ["long", "long"]],
+ "SetHandleCount" => ["long", ["long"]],
+ "SetHandleInformation" => ["long", ["long", "long", "long"]],
+ "SetLastError" => ["void", ["long"]],
+ "SetLocalTime" => ["long", ["ptr"]],
+ "SetLocaleInfoA" => ["long", ["long", "long", "str"]],
+ "SetNamedPipeHandleState" => ["long", ["long", "ptr", "ptr", "ptr"]],
+ "SetPriorityClass" => ["long", ["long", "long"]],
+ "SetProcessAffinityMask" => ["long", ["long", "long"]],
+ "SetProcessPriorityBoost" => ["long", ["long", "long"]],
+ "SetProcessShutdownParameters" => ["long", ["long", "long"]],
+ "SetProcessWorkingSetSize" => ["long", ["long", "long", "long"]],
+ "SetStdHandle" => ["long", ["long", "long"]],
+ "SetSystemPowerState" => ["long", ["long", "long"]],
+ "SetSystemTime" => ["long", ["ptr"]],
+ "SetTapeParameters" => ["long", ["long", "long", "ptr"]],
+ "SetTapePosition" => ["long", ["long", "long", "long", "long", "long", "long"]],
+ "SetThreadAffinityMask" => ["long", ["long", "long"]],
+ "SetThreadContext" => ["long", ["long", "ptr"]],
+ "SetThreadExecutionState" => ["long", ["long"]],
+ "SetThreadLocale" => ["long", ["long"]],
+ "SetThreadPriority" => ["long", ["long", "long"]],
+ "SetThreadPriorityBoost" => ["long", ["long", "long"]],
+ "SetTimeZoneInformation" => ["long", ["ptr"]],
+ "SetUnhandledExceptionFilter" => ["ptr", ["ptr"]],
+ "SetVolumeLabelA" => ["long", ["str", "str"]],
+ "SetVolumeLabelW" => ["long", ["wstr", "wstr"]],
+ "SetWaitableTimer" => ["long", ["long", "ptr", "long", "ptr", "ptr", "long"]],
+ "SetupComm" => ["long", ["long", "long", "long"]],
+ "SizeofResource" => ["long", ["long", "long"]],
+ "SizeofResource16" => ["long", ["long", "long"]],
+ "Sleep" => ["void", ["long"]],
+ "SleepEx" => ["long", ["long", "long"]],
+ "SuspendThread" => ["long", ["long"]],
+ "SystemTimeToFileTime" => ["long", ["ptr", "ptr"]],
+ "SystemTimeToTzSpecificLocalTime" => ["long", ["ptr", "ptr", "ptr"]],
+ "TerminateProcess" => ["long", ["long", "long"]],
+ "TerminateThread" => ["long", ["long", "long"]],
+ "Thread32First" => ["long", ["long", "ptr"]],
+ "Thread32Next" => ["long", ["long", "ptr"]],
+ "ThunkConnect32" => ["long", ["ptr", "str", "str", "str", "long", "long"]],
+ "TlsAlloc" => ["long", []],
+ "TlsFree" => ["long", ["long"]],
+ "TlsGetValue" => ["ptr", ["long"]],
+ "TlsSetValue" => ["long", ["long", "ptr"]],
+ "TransactNamedPipe" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "ptr"]],
+ "TransmitCommChar" => ["long", ["long", "long"]],
+ "UTRegister" => ["long", ["long", "str", "str", "str", "ptr", "ptr", "ptr"]],
+ "UTUnRegister" => ["void", ["long"]],
+ "UnMapLS" => ["void", ["ptr"]],
+ "UnMapSLFixArray" => ["void", ["ptr", "long", "ptr"]],
+ "UnhandledExceptionFilter" => ["long", ["ptr"]],
+ "UninitializeCriticalSection" => ["void", ["ptr"]],
+ "UnlockFile" => ["long", ["long", "long", "long", "long", "long"]],
+ "UnlockFileEx" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "UnmapViewOfFile" => ["long", ["ptr"]],
+ "UpdateResourceA" => ["long", ["long", "str", "str", "long", "ptr", "long"]],
+ "UpdateResourceW" => ["long", ["long", "wstr", "wstr", "long", "ptr", "long"]],
+ "VerLanguageNameA" => ["long", ["long", "str", "long"]],
+ "VerLanguageNameW" => ["long", ["long", "wstr", "long"]],
+ "VirtualAlloc" => ["ptr", ["ptr", "long", "long", "long"]],
+ "VirtualAllocEx" => ["ptr", ["long", "ptr", "long", "long", "long"]],
+ "VirtualFree" => ["long", ["ptr", "long", "long"]],
+ "VirtualLock" => ["long", ["ptr", "long"]],
+ "VirtualProtect" => ["long", ["ptr", "long", "long", "ptr"]],
+ "VirtualProtectEx" => ["long", ["long", "ptr", "long", "long", "ptr"]],
+ "VirtualQuery" => ["long", ["ptr", "ptr", "long"]],
+ "VirtualQueryEx" => ["long", ["long", "ptr", "ptr", "long"]],
+ "VirtualUnlock" => ["long", ["ptr", "long"]],
+ "WaitCommEvent" => ["long", ["long", "ptr", "ptr"]],
+ "WaitForDebugEvent" => ["long", ["ptr", "long"]],
+ "WaitForMultipleObjects" => ["long", ["long", "ptr", "long", "long"]],
+ "WaitForMultipleObjectsEx" => ["long", ["long", "ptr", "long", "long", "long"]],
+ "WaitForSingleObject" => ["long", ["long", "long"]],
+ "WaitForSingleObjectEx" => ["long", ["long", "long", "long"]],
+ "WaitNamedPipeA" => ["long", ["str", "long"]],
+ "WaitNamedPipeW" => ["long", ["wstr", "long"]],
+ "WideCharToMultiByte" => ["long", ["long", "long", "wstr", "long", "str", "long", "str", "ptr"]],
+ "WinExec" => ["long", ["str", "long"]],
+ "WinExec16" => ["long", ["str", "long"]],
+ "WriteConsoleA" => ["long", ["long", "ptr", "long", "ptr", "ptr"]],
+ "WriteConsoleInputA" => ["long", ["long", "ptr", "long", "ptr"]],
+ "WriteConsoleInputW" => ["long", ["long", "ptr", "long", "ptr"]],
+ "WriteConsoleOutputA" => ["long", ["long", "ptr", "long", "long", "ptr"]],
+ "WriteConsoleOutputAttribute" => ["long", ["long", "ptr", "long", "long", "ptr"]],
+ "WriteConsoleOutputCharacterA" => ["long", ["long", "str", "long", "long", "ptr"]],
+ "WriteConsoleOutputCharacterW" => ["long", ["long", "wstr", "long", "long", "ptr"]],
+ "WriteConsoleOutputW" => ["long", ["long", "ptr", "long", "long", "ptr"]],
+ "WriteConsoleW" => ["long", ["long", "ptr", "long", "ptr", "ptr"]],
+ "WriteFile" => ["long", ["long", "ptr", "long", "ptr", "ptr"]],
+ "WriteFileEx" => ["long", ["long", "ptr", "long", "ptr", "ptr"]],
+ "WritePrivateProfileSectionA" => ["long", ["str", "str", "str"]],
+ "WritePrivateProfileSectionW" => ["long", ["wstr", "wstr", "wstr"]],
+ "WritePrivateProfileStringA" => ["long", ["str", "str", "str", "str"]],
+ "WritePrivateProfileStringW" => ["long", ["wstr", "wstr", "wstr", "wstr"]],
+ "WritePrivateProfileStructA" => ["long", ["str", "str", "ptr", "long", "str"]],
+ "WritePrivateProfileStructW" => ["long", ["wstr", "wstr", "ptr", "long", "wstr"]],
+ "WriteProcessMemory" => ["long", ["long", "ptr", "ptr", "long", "ptr"]],
+ "WriteProfileSectionA" => ["long", ["str", "str"]],
+ "WriteProfileSectionW" => ["long", ["wstr", "wstr"]],
+ "WriteProfileStringA" => ["long", ["str", "str", "str"]],
+ "WriteProfileStringW" => ["long", ["wstr", "wstr", "wstr"]],
+ "WriteTapemark" => ["long", ["long", "long", "long", "long"]],
+ "_hread" => ["long", ["long", "ptr", "long"]],
+ "_hwrite" => ["long", ["long", "str", "long"]],
+ "_lclose" => ["long", ["long"]],
+ "_lcreat" => ["long", ["str", "long"]],
+ "_llseek" => ["long", ["long", "long", "long"]],
+ "_lopen" => ["long", ["str", "long"]],
+ "_lread" => ["long", ["long", "ptr", "long"]],
+ "_lwrite" => ["long", ["long", "str", "long"]],
+ "lstrcat" => ["str", ["str", "str"]],
+ "lstrcatA" => ["str", ["str", "str"]],
+ "lstrcatW" => ["wstr", ["wstr", "wstr"]],
+ "lstrcmp" => ["long", ["str", "str"]],
+ "lstrcmpA" => ["long", ["str", "str"]],
+ "lstrcmpW" => ["long", ["wstr", "wstr"]],
+ "lstrcmpi" => ["long", ["str", "str"]],
+ "lstrcmpiA" => ["long", ["str", "str"]],
+ "lstrcmpiW" => ["long", ["wstr", "wstr"]],
+ "lstrcpy" => ["str", ["str", "str"]],
+ "lstrcpyA" => ["str", ["str", "str"]],
+ "lstrcpyW" => ["wstr", ["wstr", "wstr"]],
+ "lstrcpyn" => ["str", ["str", "str", "long"]],
+ "lstrcpynA" => ["str", ["str", "str", "long"]],
+ "lstrcpynW" => ["wstr", ["wstr", "wstr", "long"]],
+ "lstrlen" => ["long", ["str"]],
+ "lstrlenA" => ["long", ["str"]],
+ "lstrlenW" => ["long", ["wstr"]],
+ "wine_call_to_16_long" => ["long", ["ptr", "long"]],
+ "wine_call_to_16_regs_long" => ["void", ["ptr", "long"]],
+ "wine_call_to_16_regs_short" => ["void", ["ptr", "long"]],
+ "wine_call_to_16_word" => ["long", ["ptr", "long"]],
+ "wine_get_unix_file_name" => ["long", ["str", "str", "long"]]
+};
+
+&wine::declare("kernel32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/lz32.pm b/programs/winetest/include/lz32.pm
new file mode 100644
index 0000000..0a983b2
--- /dev/null
+++ b/programs/winetest/include/lz32.pm
@@ -0,0 +1,31 @@
+package lz32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "CopyLZFile" => ["long", ["long", "long"]],
+ "GetExpandedNameA" => ["long", ["str", "str"]],
+ "GetExpandedNameW" => ["long", ["wstr", "wstr"]],
+ "LZClose" => ["void", ["long"]],
+ "LZCopy" => ["long", ["long", "long"]],
+ "LZDone" => ["void", []],
+ "LZInit" => ["long", ["long"]],
+ "LZOpenFileA" => ["long", ["str", "ptr", "long"]],
+ "LZOpenFileW" => ["long", ["wstr", "ptr", "long"]],
+ "LZRead" => ["long", ["long", "ptr", "long"]],
+ "LZSeek" => ["long", ["long", "long", "long"]],
+ "LZStart" => ["long", []]
+};
+
+&wine::declare("lz32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/mcianim_drv.pm b/programs/winetest/include/mcianim_drv.pm
new file mode 100644
index 0000000..f2f42b4
--- /dev/null
+++ b/programs/winetest/include/mcianim_drv.pm
@@ -0,0 +1,20 @@
+package mcianim_drv;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DriverProc" => ["long", ["long", "long", "long", "long", "long"]]
+};
+
+&wine::declare("mcianim.drv",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/mciavi_drv.pm b/programs/winetest/include/mciavi_drv.pm
new file mode 100644
index 0000000..0c44b7e
--- /dev/null
+++ b/programs/winetest/include/mciavi_drv.pm
@@ -0,0 +1,20 @@
+package mciavi_drv;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DriverProc" => ["long", ["long", "long", "long", "long", "long"]]
+};
+
+&wine::declare("mciavi.drv",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/mcicda_drv.pm b/programs/winetest/include/mcicda_drv.pm
new file mode 100644
index 0000000..ff020f5
--- /dev/null
+++ b/programs/winetest/include/mcicda_drv.pm
@@ -0,0 +1,20 @@
+package mcicda_drv;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DriverProc" => ["long", ["long", "long", "long", "long", "long"]]
+};
+
+&wine::declare("mcicda.drv",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/mciseq_drv.pm b/programs/winetest/include/mciseq_drv.pm
new file mode 100644
index 0000000..25e0e12
--- /dev/null
+++ b/programs/winetest/include/mciseq_drv.pm
@@ -0,0 +1,20 @@
+package mciseq_drv;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DriverProc" => ["long", ["long", "long", "long", "long", "long"]]
+};
+
+&wine::declare("mciseq.drv",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/mciwave_drv.pm b/programs/winetest/include/mciwave_drv.pm
new file mode 100644
index 0000000..fe71d70
--- /dev/null
+++ b/programs/winetest/include/mciwave_drv.pm
@@ -0,0 +1,20 @@
+package mciwave_drv;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DriverProc" => ["long", ["long", "long", "long", "long", "long"]]
+};
+
+&wine::declare("mciwave.drv",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/midimap_drv.pm b/programs/winetest/include/midimap_drv.pm
new file mode 100644
index 0000000..2127ea4
--- /dev/null
+++ b/programs/winetest/include/midimap_drv.pm
@@ -0,0 +1,21 @@
+package midimap_drv;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DriverProc" => ["long", ["long", "long", "long", "long", "long"]],
+ "modMessage" => ["long", ["long", "long", "long", "long", "long"]]
+};
+
+&wine::declare("midimap.drv",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/mpr.pm b/programs/winetest/include/mpr.pm
new file mode 100644
index 0000000..4faa1b8
--- /dev/null
+++ b/programs/winetest/include/mpr.pm
@@ -0,0 +1,87 @@
+package mpr;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "MultinetGetConnectionPerformanceA" => ["long", ["ptr", "ptr"]],
+ "MultinetGetConnectionPerformanceW" => ["long", ["ptr", "ptr"]],
+ "MultinetGetErrorTextA" => ["long", ["long", "long", "long"]],
+ "MultinetGetErrorTextW" => ["long", ["long", "long", "long"]],
+ "NPSAuthenticationDialogA" => ["long", ["ptr"]],
+ "NPSCopyStringA" => ["long", ["str", "ptr", "ptr"]],
+ "NPSDeviceGetNumberA" => ["long", ["str", "ptr", "ptr"]],
+ "NPSDeviceGetStringA" => ["long", ["long", "long", "str", "ptr"]],
+ "NPSGetProviderHandleA" => ["long", ["ptr"]],
+ "NPSGetProviderNameA" => ["long", ["long", "ptr"]],
+ "NPSGetSectionNameA" => ["long", ["long", "ptr"]],
+ "NPSNotifyGetContextA" => ["ptr", ["ptr"]],
+ "NPSNotifyRegisterA" => ["long", ["long", "ptr"]],
+ "NPSSetCustomTextA" => ["void", ["str"]],
+ "NPSSetExtendedErrorA" => ["long", ["long", "str"]],
+ "WNetAddConnection2A" => ["long", ["ptr", "str", "str", "long"]],
+ "WNetAddConnection2W" => ["long", ["ptr", "wstr", "wstr", "long"]],
+ "WNetAddConnection3A" => ["long", ["long", "ptr", "str", "str", "long"]],
+ "WNetAddConnection3W" => ["long", ["long", "ptr", "wstr", "wstr", "long"]],
+ "WNetAddConnectionA" => ["long", ["str", "str", "str"]],
+ "WNetAddConnectionW" => ["long", ["wstr", "wstr", "wstr"]],
+ "WNetCachePassword" => ["long", ["str", "long", "str", "long", "long", "long"]],
+ "WNetCancelConnection2A" => ["long", ["str", "long", "long"]],
+ "WNetCancelConnection2W" => ["long", ["wstr", "long", "long"]],
+ "WNetCancelConnectionA" => ["long", ["str", "long"]],
+ "WNetCancelConnectionW" => ["long", ["wstr", "long"]],
+ "WNetCloseEnum" => ["long", ["long"]],
+ "WNetConnectionDialog" => ["long", ["long", "long"]],
+ "WNetConnectionDialog1A" => ["long", ["ptr"]],
+ "WNetConnectionDialog1W" => ["long", ["ptr"]],
+ "WNetDisconnectDialog" => ["long", ["long", "long"]],
+ "WNetDisconnectDialog1A" => ["long", ["ptr"]],
+ "WNetDisconnectDialog1W" => ["long", ["ptr"]],
+ "WNetEnumCachedPasswords" => ["long", ["str", "long", "long", "ptr", "long"]],
+ "WNetEnumResourceA" => ["long", ["long", "ptr", "ptr", "ptr"]],
+ "WNetEnumResourceW" => ["long", ["long", "ptr", "ptr", "ptr"]],
+ "WNetGetCachedPassword" => ["long", ["str", "long", "str", "ptr", "long"]],
+ "WNetGetConnectionA" => ["long", ["str", "str", "ptr"]],
+ "WNetGetConnectionW" => ["long", ["wstr", "wstr", "ptr"]],
+ "WNetGetLastErrorA" => ["long", ["ptr", "str", "long", "str", "long"]],
+ "WNetGetLastErrorW" => ["long", ["ptr", "wstr", "long", "wstr", "long"]],
+ "WNetGetNetworkInformationA" => ["long", ["str", "ptr"]],
+ "WNetGetNetworkInformationW" => ["long", ["wstr", "ptr"]],
+ "WNetGetProviderNameA" => ["long", ["long", "str", "ptr"]],
+ "WNetGetProviderNameW" => ["long", ["long", "wstr", "ptr"]],
+ "WNetGetResourceInformationA" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
+ "WNetGetResourceInformationW" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
+ "WNetGetResourceParentA" => ["long", ["ptr", "ptr", "ptr"]],
+ "WNetGetResourceParentW" => ["long", ["ptr", "ptr", "ptr"]],
+ "WNetGetUniversalNameA" => ["long", ["str", "long", "ptr", "ptr"]],
+ "WNetGetUniversalNameW" => ["long", ["wstr", "long", "ptr", "ptr"]],
+ "WNetGetUserA" => ["long", ["str", "str", "ptr"]],
+ "WNetGetUserW" => ["long", ["wstr", "wstr", "ptr"]],
+ "WNetLogoffA" => ["long", ["str", "long"]],
+ "WNetLogoffW" => ["long", ["wstr", "long"]],
+ "WNetLogonA" => ["long", ["str", "long"]],
+ "WNetLogonW" => ["long", ["wstr", "long"]],
+ "WNetOpenEnumA" => ["long", ["long", "long", "long", "ptr", "ptr"]],
+ "WNetOpenEnumW" => ["long", ["long", "long", "long", "ptr", "ptr"]],
+ "WNetRemoveCachedPassword" => ["long", ["str", "long", "long"]],
+ "WNetRestoreConnectionA" => ["long", ["long", "str"]],
+ "WNetRestoreConnectionW" => ["long", ["long", "wstr"]],
+ "WNetSetConnectionA" => ["long", ["str", "long", "ptr"]],
+ "WNetSetConnectionW" => ["long", ["wstr", "long", "ptr"]],
+ "WNetUseConnectionA" => ["long", ["long", "ptr", "str", "str", "long", "str", "ptr", "ptr"]],
+ "WNetUseConnectionW" => ["long", ["long", "ptr", "wstr", "wstr", "long", "wstr", "ptr", "ptr"]],
+ "WNetVerifyPasswordA" => ["long", ["str", "ptr"]],
+ "WNetVerifyPasswordW" => ["long", ["wstr", "ptr"]]
+};
+
+&wine::declare("mpr",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/msacm32.pm b/programs/winetest/include/msacm32.pm
new file mode 100644
index 0000000..454712e
--- /dev/null
+++ b/programs/winetest/include/msacm32.pm
@@ -0,0 +1,62 @@
+package msacm32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DriverProc" => ["long", ["long", "long", "long", "long", "long"]],
+ "acmDriverAddA" => ["long", ["ptr", "long", "long", "long", "long"]],
+ "acmDriverAddW" => ["long", ["ptr", "long", "long", "long", "long"]],
+ "acmDriverClose" => ["long", ["long", "long"]],
+ "acmDriverDetailsA" => ["long", ["long", "ptr", "long"]],
+ "acmDriverDetailsW" => ["long", ["long", "ptr", "long"]],
+ "acmDriverEnum" => ["long", ["ptr", "long", "long"]],
+ "acmDriverID" => ["long", ["long", "ptr", "long"]],
+ "acmDriverMessage" => ["long", ["long", "long", "long", "long"]],
+ "acmDriverOpen" => ["long", ["ptr", "long", "long"]],
+ "acmDriverPriority" => ["long", ["long", "long", "long"]],
+ "acmDriverRemove" => ["long", ["long", "long"]],
+ "acmFilterChooseA" => ["long", ["ptr"]],
+ "acmFilterChooseW" => ["long", ["ptr"]],
+ "acmFilterDetailsA" => ["long", ["long", "ptr", "long"]],
+ "acmFilterDetailsW" => ["long", ["long", "ptr", "long"]],
+ "acmFilterEnumA" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "acmFilterEnumW" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "acmFilterTagDetailsA" => ["long", ["long", "ptr", "long"]],
+ "acmFilterTagDetailsW" => ["long", ["long", "ptr", "long"]],
+ "acmFilterTagEnumA" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "acmFilterTagEnumW" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "acmFormatChooseA" => ["long", ["ptr"]],
+ "acmFormatChooseW" => ["long", ["ptr"]],
+ "acmFormatDetailsA" => ["long", ["long", "ptr", "long"]],
+ "acmFormatDetailsW" => ["long", ["long", "ptr", "long"]],
+ "acmFormatEnumA" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "acmFormatEnumW" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "acmFormatSuggest" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "acmFormatTagDetailsA" => ["long", ["long", "ptr", "long"]],
+ "acmFormatTagDetailsW" => ["long", ["long", "ptr", "long"]],
+ "acmFormatTagEnumA" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "acmFormatTagEnumW" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "acmGetVersion" => ["long", []],
+ "acmMetrics" => ["long", ["long", "long", "ptr"]],
+ "acmStreamClose" => ["long", ["long", "long"]],
+ "acmStreamConvert" => ["long", ["long", "ptr", "long"]],
+ "acmStreamMessage" => ["long", ["long", "long", "long", "long"]],
+ "acmStreamOpen" => ["long", ["ptr", "long", "ptr", "ptr", "ptr", "long", "long", "long"]],
+ "acmStreamPrepareHeader" => ["long", ["long", "ptr", "long"]],
+ "acmStreamReset" => ["long", ["long", "long"]],
+ "acmStreamSize" => ["long", ["long", "long", "ptr", "long"]],
+ "acmStreamUnprepareHeader" => ["long", ["long", "ptr", "long"]]
+};
+
+&wine::declare("msacm32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/msacm_drv.pm b/programs/winetest/include/msacm_drv.pm
new file mode 100644
index 0000000..80143be
--- /dev/null
+++ b/programs/winetest/include/msacm_drv.pm
@@ -0,0 +1,22 @@
+package msacm_drv;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DriverProc" => ["long", ["long", "long", "long", "long", "long"]],
+ "widMessage" => ["long", ["long", "long", "long", "long", "long"]],
+ "wodMessage" => ["long", ["long", "long", "long", "long", "long"]]
+};
+
+&wine::declare("msacm.drv",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/msvcrt.pm b/programs/winetest/include/msvcrt.pm
new file mode 100644
index 0000000..d232f35
--- /dev/null
+++ b/programs/winetest/include/msvcrt.pm
@@ -0,0 +1,23 @@
+package msvcrt;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "\?\?8type_info\@\@QBEHABV0\@\@Z" => ["long", ["ptr", "ptr"]],
+ "\?\?9type_info\@\@QBEHABV0\@\@Z" => ["long", ["ptr", "ptr"]],
+ "\?name\@type_info\@\@QBEPBDXZ" => ["ptr", ["ptr"]],
+ "\?raw_name\@type_info\@\@QBEPBDXZ" => ["ptr", ["ptr"]]
+};
+
+&wine::declare("msvcrt",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/msvfw32.pm b/programs/winetest/include/msvfw32.pm
new file mode 100644
index 0000000..5c767b6
--- /dev/null
+++ b/programs/winetest/include/msvfw32.pm
@@ -0,0 +1,40 @@
+package msvfw32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "VideoForWindowsVersion" => ["long", []],
+ "DrawDibBegin" => ["long", ["long", "long", "long", "long", "ptr", "long", "long", "long"]],
+ "DrawDibClose" => ["long", ["long"]],
+ "DrawDibDraw" => ["long", ["long", "long", "long", "long", "long", "long", "ptr", "ptr", "long", "long", "long", "long", "long"]],
+ "DrawDibEnd" => ["long", ["long"]],
+ "DrawDibGetPalette" => ["long", ["long"]],
+ "DrawDibOpen" => ["long", []],
+ "DrawDibRealize" => ["long", ["long", "long", "long"]],
+ "DrawDibSetPalette" => ["long", ["long", "long"]],
+ "DrawDibStart" => ["long", ["long", "long"]],
+ "DrawDibStop" => ["long", ["long"]],
+ "ICClose" => ["long", ["long"]],
+ "ICGetDisplayFormat" => ["long", ["long", "ptr", "ptr", "long", "long", "long"]],
+ "ICGetInfo" => ["long", ["long", "ptr", "long"]],
+ "ICImageCompress" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "ptr"]],
+ "ICImageDecompress" => ["long", ["long", "long", "ptr", "ptr", "ptr"]],
+ "ICInfo" => ["long", ["long", "long", "ptr"]],
+ "ICLocate" => ["long", ["long", "long", "ptr", "ptr", "long"]],
+ "ICOpenFunction" => ["long", ["long", "long", "long", "ptr"]],
+ "ICSendMessage" => ["long", ["long", "long", "long", "long"]],
+ "MCIWndRegisterClass" => ["long", ["long"]]
+};
+
+&wine::declare("msvfw32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/ntdll.pm b/programs/winetest/include/ntdll.pm
new file mode 100644
index 0000000..be978d9
--- /dev/null
+++ b/programs/winetest/include/ntdll.pm
@@ -0,0 +1,339 @@
+package ntdll;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DbgBreakPoint" => ["void", []],
+ "DbgUserBreakPoint" => ["void", []],
+ "NtAcceptConnectPort" => ["long", ["long", "long", "long", "long", "long", "long"]],
+ "NtAccessCheck" => ["long", ["ptr", "long", "long", "ptr", "ptr", "ptr", "ptr", "ptr"]],
+ "NtAdjustPrivilegesToken" => ["long", ["long", "long", "ptr", "long", "ptr", "ptr"]],
+ "NtAllocateLocallyUniqueId" => ["long", ["ptr"]],
+ "NtAllocateUuids" => ["long", ["ptr", "ptr", "ptr"]],
+ "NtClearEvent" => ["long", ["long"]],
+ "NtClose" => ["long", ["long"]],
+ "NtCompleteConnectPort" => ["long", ["long"]],
+ "NtConnectPort" => ["long", ["long", "ptr", "long", "long", "long", "long", "long", "long"]],
+ "NtCreateDirectoryObject" => ["long", ["ptr", "long", "ptr"]],
+ "NtCreateEvent" => ["long", ["ptr", "long", "ptr", "long", "long"]],
+ "NtCreateFile" => ["long", ["ptr", "long", "ptr", "ptr", "ptr", "long", "long", "long", "long", "ptr", "long"]],
+ "NtCreateKey" => ["long", ["ptr", "long", "ptr", "long", "ptr", "long", "ptr"]],
+ "NtCreateMailslotFile" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long"]],
+ "NtCreatePagingFile" => ["long", ["ptr", "long", "long", "ptr"]],
+ "NtCreatePort" => ["long", ["long", "long", "long", "long", "long"]],
+ "NtCreateSection" => ["long", ["ptr", "long", "ptr", "ptr", "long", "long", "long"]],
+ "NtCreateSemaphore" => ["long", ["ptr", "long", "ptr", "long", "long"]],
+ "NtCreateSymbolicLinkObject" => ["long", ["ptr", "long", "ptr", "ptr"]],
+ "NtCreateTimer" => ["long", ["ptr", "long", "ptr", "long"]],
+ "NtCurrentTeb" => ["ptr", []],
+ "NtDeleteKey" => ["long", ["long"]],
+ "NtDeleteValueKey" => ["long", ["long", "ptr"]],
+ "NtDeviceIoControlFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "NtDisplayString" => ["long", ["ptr"]],
+ "NtDuplicateObject" => ["long", ["long", "ptr", "long", "ptr", "long", "long", "long"]],
+ "NtDuplicateToken" => ["long", ["long", "long", "ptr", "long", "long", "ptr"]],
+ "NtEnumerateKey" => ["long", ["long", "long", "long", "ptr", "long", "ptr"]],
+ "NtEnumerateValueKey" => ["long", ["long", "long", "long", "ptr", "long", "ptr"]],
+ "NtFlushKey" => ["long", ["long"]],
+ "NtFsControlFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "NtListenPort" => ["long", ["long", "long"]],
+ "NtLoadKey" => ["long", ["ptr", "ptr"]],
+ "NtMapViewOfSection" => ["long", ["long", "long", "ptr", "long", "long", "ptr", "ptr", "long", "long", "long"]],
+ "NtNotifyChangeKey" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "long", "ptr", "long", "long"]],
+ "NtOpenDirectoryObject" => ["long", ["ptr", "long", "ptr"]],
+ "NtOpenEvent" => ["long", ["ptr", "long", "ptr"]],
+ "NtOpenFile" => ["long", ["ptr", "long", "ptr", "ptr", "long", "long"]],
+ "NtOpenKey" => ["long", ["ptr", "long", "ptr"]],
+ "NtOpenProcessToken" => ["long", ["long", "long", "ptr"]],
+ "NtOpenSection" => ["long", ["ptr", "long", "ptr"]],
+ "NtOpenSemaphore" => ["long", ["ptr", "long", "ptr"]],
+ "NtOpenSymbolicLinkObject" => ["long", ["ptr", "long", "ptr"]],
+ "NtOpenThreadToken" => ["long", ["long", "long", "long", "ptr"]],
+ "NtPowerInformation" => ["long", ["long", "long", "long", "long", "long"]],
+ "NtPulseEvent" => ["long", ["long", "ptr"]],
+ "NtQueryDirectoryFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "long", "long", "ptr", "long"]],
+ "NtQueryDirectoryObject" => ["long", ["long", "ptr", "long", "long", "long", "ptr", "ptr"]],
+ "NtQueryEvent" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "NtQueryInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "NtQueryInformationProcess" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "NtQueryInformationThread" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "NtQueryInformationToken" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "NtQueryKey" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "NtQueryObject" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "NtQueryPerformanceCounter" => ["long", ["ptr", "ptr"]],
+ "NtQuerySection" => ["long", ["long", "ptr", "ptr", "long", "ptr"]],
+ "NtQuerySecurityObject" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "NtQuerySemaphore" => ["long", ["long", "ptr", "ptr", "long", "ptr"]],
+ "NtQuerySymbolicLinkObject" => ["long", ["long", "ptr", "ptr"]],
+ "NtQuerySystemInformation" => ["long", ["long", "ptr", "long", "ptr"]],
+ "NtQuerySystemTime" => ["void", ["ptr"]],
+ "NtQueryTimerResolution" => ["long", ["long", "long", "long"]],
+ "NtQueryValueKey" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr"]],
+ "NtQueryVolumeInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "NtRaiseException" => ["void", ["ptr", "ptr", "long", "ptr"]],
+ "NtReadFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "ptr", "ptr"]],
+ "NtRegisterThreadTerminatePort" => ["long", ["long"]],
+ "NtReleaseSemaphore" => ["long", ["long", "long", "ptr"]],
+ "NtReplaceKey" => ["long", ["ptr", "long", "ptr"]],
+ "NtReplyWaitReceivePort" => ["long", ["long", "long", "long", "long"]],
+ "NtRequestWaitReplyPort" => ["long", ["long", "long", "long"]],
+ "NtResetEvent" => ["long", ["long", "ptr"]],
+ "NtRestoreKey" => ["long", ["long", "long", "long"]],
+ "NtResumeThread" => ["long", ["long", "ptr"]],
+ "NtSaveKey" => ["long", ["long", "long"]],
+ "NtSetEvent" => ["long", ["long", "ptr"]],
+ "NtSetInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "NtSetInformationKey" => ["long", ["long", "long", "ptr", "long"]],
+ "NtSetInformationProcess" => ["long", ["long", "long", "ptr", "long"]],
+ "NtSetInformationThread" => ["long", ["long", "long", "ptr", "long"]],
+ "NtSetIntervalProfile" => ["long", ["long", "long"]],
+ "NtSetSecurityObject" => ["long", ["long", "long", "ptr"]],
+ "NtSetTimer" => ["long", ["long", "ptr", "ptr", "ptr", "long", "long", "ptr"]],
+ "NtSetValueKey" => ["long", ["long", "ptr", "long", "long", "ptr", "long"]],
+ "NtSetVolumeInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "NtTerminateProcess" => ["long", ["long", "long"]],
+ "NtTerminateThread" => ["long", ["long", "long"]],
+ "NtUnloadKey" => ["long", ["long"]],
+ "NtWaitForSingleObject" => ["long", ["ptr", "long", "ptr"]],
+ "RtlAcquirePebLock" => ["void", []],
+ "RtlAcquireResourceExclusive" => ["long", ["ptr", "long"]],
+ "RtlAcquireResourceShared" => ["long", ["ptr", "long"]],
+ "RtlAddAccessAllowedAce" => ["long", ["ptr", "long", "long", "ptr"]],
+ "RtlAddAce" => ["long", ["ptr", "long", "long", "ptr", "long"]],
+ "RtlAdjustPrivilege" => ["long", ["long", "long", "long", "long"]],
+ "RtlAllocateAndInitializeSid" => ["long", ["ptr", "long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
+ "RtlAllocateHeap" => ["ptr", ["long", "long", "long"]],
+ "RtlAnsiStringToUnicodeSize" => ["long", ["ptr"]],
+ "RtlAnsiStringToUnicodeString" => ["long", ["ptr", "ptr", "long"]],
+ "RtlAppendAsciizToString" => ["long", ["ptr", "str"]],
+ "RtlAppendStringToString" => ["long", ["ptr", "ptr"]],
+ "RtlAppendUnicodeStringToString" => ["long", ["ptr", "ptr"]],
+ "RtlAppendUnicodeToString" => ["long", ["ptr", "wstr"]],
+ "RtlAssert" => ["void", ["ptr", "ptr", "long", "long"]],
+ "RtlClearBits" => ["long", ["long", "long", "long"]],
+ "RtlCompactHeap" => ["long", ["long", "long"]],
+ "RtlCompareMemory" => ["long", ["ptr", "ptr", "long"]],
+ "RtlCompareString" => ["long", ["ptr", "ptr", "long"]],
+ "RtlCompareUnicodeString" => ["long", ["ptr", "ptr", "long"]],
+ "RtlConvertLongToLargeInteger" => ["longlong", ["long"]],
+ "RtlConvertSidToUnicodeString" => ["long", ["ptr", "ptr"]],
+ "RtlConvertUlongToLargeInteger" => ["longlong", ["long"]],
+ "RtlCopySid" => ["long", ["long", "ptr", "ptr"]],
+ "RtlCopyString" => ["void", ["ptr", "ptr"]],
+ "RtlCopyUnicodeString" => ["void", ["ptr", "ptr"]],
+ "RtlCreateAcl" => ["long", ["ptr", "long", "long"]],
+ "RtlCreateEnvironment" => ["long", ["long", "long"]],
+ "RtlCreateHeap" => ["long", ["long", "ptr", "long", "long", "ptr", "ptr"]],
+ "RtlCreateSecurityDescriptor" => ["long", ["ptr", "long"]],
+ "RtlCreateUnicodeString" => ["long", ["ptr", "wstr"]],
+ "RtlCreateUnicodeStringFromAsciiz" => ["long", ["ptr", "str"]],
+ "RtlDeleteCriticalSection" => ["long", ["ptr"]],
+ "RtlDeleteResource" => ["void", ["ptr"]],
+ "RtlDeleteSecurityObject" => ["long", ["long"]],
+ "RtlDestroyEnvironment" => ["long", ["long"]],
+ "RtlDestroyHeap" => ["long", ["long"]],
+ "RtlDosPathNameToNtPathName_U" => ["long", ["wstr", "ptr", "long", "long"]],
+ "RtlDumpResource" => ["void", ["ptr"]],
+ "RtlEnlargedIntegerMultiply" => ["longlong", ["long", "long"]],
+ "RtlEnlargedUnsignedDivide" => ["long", ["long", "long", "long", "ptr"]],
+ "RtlEnlargedUnsignedMultiply" => ["longlong", ["long", "long"]],
+ "RtlEnterCriticalSection" => ["long", ["ptr"]],
+ "RtlEqualPrefixSid" => ["long", ["ptr", "ptr"]],
+ "RtlEqualSid" => ["long", ["ptr", "ptr"]],
+ "RtlEqualString" => ["long", ["ptr", "ptr", "long"]],
+ "RtlEqualUnicodeString" => ["long", ["ptr", "ptr", "long"]],
+ "RtlEraseUnicodeString" => ["void", ["ptr"]],
+ "RtlExtendedIntegerMultiply" => ["longlong", ["long", "long", "long"]],
+ "RtlExtendedLargeIntegerDivide" => ["longlong", ["long", "long", "long", "ptr"]],
+ "RtlFillMemory" => ["void", ["ptr", "long", "long"]],
+ "RtlFindClearBits" => ["long", ["long", "long", "long"]],
+ "RtlFirstFreeAce" => ["long", ["ptr", "ptr"]],
+ "RtlFormatCurrentUserKeyPath" => ["long", ["ptr"]],
+ "RtlFreeAnsiString" => ["void", ["ptr"]],
+ "RtlFreeHeap" => ["long", ["long", "long", "ptr"]],
+ "RtlFreeOemString" => ["void", ["ptr"]],
+ "RtlFreeSid" => ["long", ["ptr"]],
+ "RtlFreeUnicodeString" => ["void", ["ptr"]],
+ "RtlGetAce" => ["long", ["ptr", "long", "ptr"]],
+ "RtlGetControlSecurityDescriptor" => ["long", ["ptr", "ptr", "ptr"]],
+ "RtlGetDaclSecurityDescriptor" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
+ "RtlGetGroupSecurityDescriptor" => ["long", ["ptr", "ptr", "ptr"]],
+ "RtlGetNtProductType" => ["long", ["ptr"]],
+ "RtlGetOwnerSecurityDescriptor" => ["long", ["ptr", "ptr", "ptr"]],
+ "RtlGetProcessHeaps" => ["long", ["long", "ptr"]],
+ "RtlGetSaclSecurityDescriptor" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
+ "RtlIdentifierAuthoritySid" => ["ptr", ["ptr"]],
+ "RtlImageNtHeader" => ["ptr", ["long"]],
+ "RtlImpersonateSelf" => ["long", ["long"]],
+ "RtlInitAnsiString" => ["void", ["ptr", "str"]],
+ "RtlInitString" => ["void", ["ptr", "str"]],
+ "RtlInitUnicodeString" => ["void", ["ptr", "wstr"]],
+ "RtlInitializeBitMap" => ["long", ["long", "long", "long"]],
+ "RtlInitializeCriticalSection" => ["long", ["ptr"]],
+ "RtlInitializeCriticalSectionAndSpinCount" => ["long", ["ptr", "long"]],
+ "RtlInitializeGenericTable" => ["long", []],
+ "RtlInitializeResource" => ["void", ["ptr"]],
+ "RtlInitializeSid" => ["long", ["ptr", "ptr", "long"]],
+ "RtlIntegerToChar" => ["long", ["long", "long", "long", "long"]],
+ "RtlIsTextUnicode" => ["long", ["ptr", "long", "ptr"]],
+ "RtlLargeIntegerAdd" => ["longlong", ["long", "long", "long", "long"]],
+ "RtlLargeIntegerArithmeticShift" => ["longlong", ["long", "long", "long"]],
+ "RtlLargeIntegerDivide" => ["longlong", ["long", "long", "long", "long", "ptr"]],
+ "RtlLargeIntegerNegate" => ["longlong", ["long", "long"]],
+ "RtlLargeIntegerShiftLeft" => ["longlong", ["long", "long", "long"]],
+ "RtlLargeIntegerShiftRight" => ["longlong", ["long", "long", "long"]],
+ "RtlLargeIntegerSubtract" => ["longlong", ["long", "long", "long", "long"]],
+ "RtlLeaveCriticalSection" => ["long", ["ptr"]],
+ "RtlLengthRequiredSid" => ["long", ["long"]],
+ "RtlLengthSecurityDescriptor" => ["long", ["ptr"]],
+ "RtlLengthSid" => ["long", ["ptr"]],
+ "RtlLockHeap" => ["long", ["long"]],
+ "RtlMakeSelfRelativeSD" => ["long", ["ptr", "ptr", "ptr"]],
+ "RtlMoveMemory" => ["void", ["ptr", "ptr", "long"]],
+ "RtlMultiByteToUnicodeN" => ["long", ["wstr", "long", "ptr", "str", "long"]],
+ "RtlMultiByteToUnicodeSize" => ["long", ["ptr", "str", "long"]],
+ "RtlNewSecurityObject" => ["long", ["long", "long", "long", "long", "long", "long"]],
+ "RtlNormalizeProcessParams" => ["ptr", ["ptr"]],
+ "RtlNtStatusToDosError" => ["long", ["long"]],
+ "RtlOemStringToUnicodeSize" => ["long", ["ptr"]],
+ "RtlOemStringToUnicodeString" => ["long", ["ptr", "ptr", "long"]],
+ "RtlOemToUnicodeN" => ["long", ["wstr", "long", "ptr", "str", "long"]],
+ "RtlOpenCurrentUser" => ["long", ["long", "ptr"]],
+ "RtlPrefixString" => ["long", ["ptr", "ptr", "long"]],
+ "RtlPrefixUnicodeString" => ["long", ["ptr", "ptr", "long"]],
+ "RtlQueryEnvironmentVariable_U" => ["long", ["long", "ptr", "ptr"]],
+ "RtlRaiseException" => ["void", ["ptr", "ptr"]],
+ "RtlRaiseStatus" => ["void", ["long"]],
+ "RtlReAllocateHeap" => ["ptr", ["long", "long", "ptr", "long"]],
+ "RtlReleasePebLock" => ["void", []],
+ "RtlReleaseResource" => ["void", ["ptr"]],
+ "RtlSecondsSince1970ToTime" => ["void", ["long", "ptr"]],
+ "RtlSecondsSince1980ToTime" => ["void", ["long", "ptr"]],
+ "RtlSetBits" => ["long", ["long", "long", "long"]],
+ "RtlSetDaclSecurityDescriptor" => ["long", ["ptr", "long", "ptr", "long"]],
+ "RtlSetEnvironmentVariable" => ["long", ["long", "ptr", "ptr"]],
+ "RtlSetGroupSecurityDescriptor" => ["long", ["ptr", "ptr", "long"]],
+ "RtlSetOwnerSecurityDescriptor" => ["long", ["ptr", "ptr", "long"]],
+ "RtlSetSaclSecurityDescriptor" => ["long", ["ptr", "long", "ptr", "long"]],
+ "RtlSizeHeap" => ["long", ["long", "long", "ptr"]],
+ "RtlSubAuthorityCountSid" => ["ptr", ["ptr"]],
+ "RtlSubAuthoritySid" => ["ptr", ["ptr", "long"]],
+ "RtlSystemTimeToLocalTime" => ["void", ["ptr", "ptr"]],
+ "RtlTimeFieldsToTime" => ["long", ["ptr", "ptr"]],
+ "RtlTimeToElapsedTimeFields" => ["void", ["ptr", "ptr"]],
+ "RtlTimeToSecondsSince1970" => ["long", ["ptr", "ptr"]],
+ "RtlTimeToSecondsSince1980" => ["long", ["ptr", "ptr"]],
+ "RtlTimeToTimeFields" => ["void", ["ptr", "ptr"]],
+ "RtlTryEnterCriticalSection" => ["long", ["ptr"]],
+ "RtlUnicodeStringToAnsiSize" => ["long", ["ptr"]],
+ "RtlUnicodeStringToAnsiString" => ["long", ["ptr", "ptr", "long"]],
+ "RtlUnicodeStringToOemSize" => ["long", ["ptr"]],
+ "RtlUnicodeStringToOemString" => ["long", ["ptr", "ptr", "long"]],
+ "RtlUnicodeToMultiByteN" => ["long", ["str", "long", "ptr", "wstr", "long"]],
+ "RtlUnicodeToMultiByteSize" => ["long", ["ptr", "wstr", "long"]],
+ "RtlUnicodeToOemN" => ["long", ["str", "long", "ptr", "wstr", "long"]],
+ "RtlUnlockHeap" => ["long", ["long"]],
+ "RtlUnwind" => ["void", ["ptr", "ptr", "ptr", "long", "ptr"]],
+ "RtlUpcaseUnicodeString" => ["long", ["ptr", "ptr", "long"]],
+ "RtlUpcaseUnicodeStringToAnsiString" => ["long", ["ptr", "ptr", "long"]],
+ "RtlUpcaseUnicodeStringToOemString" => ["long", ["ptr", "ptr", "long"]],
+ "RtlUpcaseUnicodeToMultiByteN" => ["long", ["str", "long", "ptr", "wstr", "long"]],
+ "RtlUpcaseUnicodeToOemN" => ["long", ["str", "long", "ptr", "wstr", "long"]],
+ "RtlUpperString" => ["void", ["ptr", "ptr"]],
+ "RtlValidSecurityDescriptor" => ["long", ["ptr"]],
+ "RtlValidSid" => ["long", ["ptr"]],
+ "RtlValidateHeap" => ["long", ["long", "long", "ptr"]],
+ "RtlWalkHeap" => ["long", ["long", "ptr"]],
+ "RtlZeroMemory" => ["void", ["ptr", "long"]],
+ "RtlpUnWaitCriticalSection" => ["long", ["ptr"]],
+ "RtlpWaitForCriticalSection" => ["long", ["ptr"]],
+ "RtlxAnsiStringToUnicodeSize" => ["long", ["ptr"]],
+ "RtlxOemStringToUnicodeSize" => ["long", ["ptr"]],
+ "RtlxUnicodeStringToAnsiSize" => ["long", ["ptr"]],
+ "RtlxUnicodeStringToOemSize" => ["long", ["ptr"]],
+ "ZwAcceptConnectPort" => ["long", ["long", "long", "long", "long", "long", "long"]],
+ "ZwAdjustGroupsToken" => ["long", ["long", "long", "ptr", "long", "ptr", "ptr"]],
+ "ZwCompleteConnectPort" => ["long", ["long"]],
+ "ZwConnectPort" => ["long", ["long", "ptr", "long", "long", "long", "long", "long", "long"]],
+ "ZwCreateDirectoryObject" => ["long", ["ptr", "long", "ptr"]],
+ "ZwCreateEvent" => ["long", ["ptr", "long", "ptr", "long", "long"]],
+ "ZwCreateFile" => ["long", ["ptr", "long", "ptr", "ptr", "ptr", "long", "long", "long", "long", "ptr", "long"]],
+ "ZwCreateKey" => ["long", ["ptr", "long", "ptr", "long", "ptr", "long", "ptr"]],
+ "ZwCreateMailslotFile" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long"]],
+ "ZwCreatePagingFile" => ["long", ["ptr", "long", "long", "ptr"]],
+ "ZwCreatePort" => ["long", ["long", "long", "long", "long", "long"]],
+ "ZwCreateSection" => ["long", ["ptr", "long", "ptr", "ptr", "long", "long", "long"]],
+ "ZwCreateTimer" => ["long", ["ptr", "long", "ptr", "long"]],
+ "ZwDeleteKey" => ["long", ["long"]],
+ "ZwDeleteValueKey" => ["long", ["long", "ptr"]],
+ "ZwDeviceIoControlFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "ZwDuplicateObject" => ["long", ["long", "ptr", "long", "ptr", "long", "long", "long"]],
+ "ZwDuplicateToken" => ["long", ["long", "long", "ptr", "long", "long", "ptr"]],
+ "ZwEnumerateKey" => ["long", ["long", "long", "long", "ptr", "long", "ptr"]],
+ "ZwEnumerateValueKey" => ["long", ["long", "long", "long", "ptr", "long", "ptr"]],
+ "ZwFlushKey" => ["long", ["long"]],
+ "ZwFsControlFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "ZwListenPort" => ["long", ["long", "long"]],
+ "ZwLoadKey" => ["long", ["ptr", "ptr"]],
+ "ZwMapViewOfSection" => ["long", ["long", "long", "ptr", "long", "long", "ptr", "ptr", "long", "long", "long"]],
+ "ZwNotifyChangeKey" => ["long", ["long", "long", "ptr", "ptr", "ptr", "long", "long", "ptr", "long", "long"]],
+ "ZwOpenDirectoryObject" => ["long", ["ptr", "long", "ptr"]],
+ "ZwOpenEvent" => ["long", ["ptr", "long", "ptr"]],
+ "ZwOpenFile" => ["long", ["ptr", "long", "ptr", "ptr", "long", "long"]],
+ "ZwOpenKey" => ["long", ["ptr", "long", "ptr"]],
+ "ZwOpenProcessToken" => ["long", ["long", "long", "ptr"]],
+ "ZwOpenSection" => ["long", ["ptr", "long", "ptr"]],
+ "ZwOpenThreadToken" => ["long", ["long", "long", "long", "ptr"]],
+ "ZwQueryDirectoryFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "long", "long", "ptr", "long"]],
+ "ZwQueryDirectoryObject" => ["long", ["long", "ptr", "long", "long", "long", "ptr", "ptr"]],
+ "ZwQueryInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "ZwQueryInformationProcess" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "ZwQueryInformationThread" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "ZwQueryInformationToken" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "ZwQueryKey" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "ZwQueryObject" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "ZwQuerySystemInformation" => ["long", ["long", "ptr", "long", "ptr"]],
+ "ZwQuerySystemTime" => ["void", ["ptr"]],
+ "ZwQueryValueKey" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr"]],
+ "ZwQueryVolumeInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "ZwReadFile" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr", "long", "ptr", "ptr"]],
+ "ZwRegisterThreadTerminatePort" => ["long", ["long"]],
+ "ZwReplaceKey" => ["long", ["ptr", "long", "ptr"]],
+ "ZwReplyWaitReceivePort" => ["long", ["long", "long", "long", "long"]],
+ "ZwRequestWaitReplyPort" => ["long", ["long", "long", "long"]],
+ "ZwRestoreKey" => ["long", ["long", "long", "long"]],
+ "ZwResumeThread" => ["long", ["long", "ptr"]],
+ "ZwSaveKey" => ["long", ["long", "long"]],
+ "ZwSetEvent" => ["long", ["long", "ptr"]],
+ "ZwSetInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "ZwSetInformationKey" => ["long", ["long", "long", "ptr", "long"]],
+ "ZwSetInformationProcess" => ["long", ["long", "long", "ptr", "long"]],
+ "ZwSetInformationThread" => ["long", ["long", "long", "ptr", "long"]],
+ "ZwSetIntervalProfile" => ["long", ["long", "long"]],
+ "ZwSetTimer" => ["long", ["long", "ptr", "ptr", "ptr", "long", "long", "ptr"]],
+ "ZwSetValueKey" => ["long", ["long", "ptr", "long", "long", "ptr", "long"]],
+ "ZwSetVolumeInformationFile" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "ZwTerminateThread" => ["long", ["long", "long"]],
+ "ZwUnloadKey" => ["long", ["long"]],
+ "ZwWaitForSingleObject" => ["long", ["ptr", "long", "ptr"]],
+ "_alldiv" => ["longlong", ["long", "long", "long", "long"]],
+ "_allmul" => ["longlong", ["long", "long", "long", "long"]],
+ "_alloca_probe" => ["void", ["ptr"]],
+ "_allrem" => ["longlong", ["long", "long", "long", "long"]],
+ "_aulldiv" => ["longlong", ["long", "long", "long", "long"]],
+ "_aullrem" => ["longlong", ["long", "long", "long", "long"]],
+ "_chkstk" => ["void", ["ptr"]]
+};
+
+&wine::declare("ntdll",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/odbc32.pm b/programs/winetest/include/odbc32.pm
new file mode 100644
index 0000000..5995b21
--- /dev/null
+++ b/programs/winetest/include/odbc32.pm
@@ -0,0 +1,97 @@
+package odbc32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "SQLAllocConnect" => ["long", ["long", "ptr"]],
+ "SQLAllocEnv" => ["long", ["ptr"]],
+ "SQLAllocStmt" => ["long", ["long", "ptr"]],
+ "SQLBindCol" => ["long", ["long", "long", "long", "ptr", "long", "ptr"]],
+ "SQLCancel" => ["long", ["long"]],
+ "SQLColAttributes" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr"]],
+ "SQLConnect" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "SQLDescribeCol" => ["long", ["long", "long", "ptr", "long", "ptr", "ptr", "ptr", "ptr", "ptr"]],
+ "SQLDisconnect" => ["long", ["long"]],
+ "SQLError" => ["long", ["long", "long", "long", "ptr", "ptr", "ptr", "long", "ptr"]],
+ "SQLExecDirect" => ["long", ["long", "ptr", "long"]],
+ "SQLExecute" => ["long", ["long"]],
+ "SQLFetch" => ["long", ["long"]],
+ "SQLFreeConnect" => ["long", ["long"]],
+ "SQLFreeEnv" => ["long", ["long"]],
+ "SQLFreeStmt" => ["long", ["long", "long"]],
+ "SQLGetCursorName" => ["long", ["long", "ptr", "long", "ptr"]],
+ "SQLNumResultCols" => ["long", ["long", "ptr"]],
+ "SQLPrepare" => ["long", ["long", "ptr", "long"]],
+ "SQLRowCount" => ["long", ["long", "ptr"]],
+ "SQLSetCursorName" => ["long", ["long", "ptr", "long"]],
+ "SQLSetParam" => ["long", ["long", "long", "long", "long", "long", "long", "ptr", "ptr"]],
+ "SQLTransact" => ["long", ["long", "long", "long"]],
+ "SQLAllocHandle" => ["long", ["long", "long", "ptr"]],
+ "SQLBindParam" => ["long", ["long", "long", "long", "long", "long", "long", "ptr", "ptr"]],
+ "SQLCloseCursor" => ["long", ["long"]],
+ "SQLColAttribute" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr"]],
+ "SQLCopyDesc" => ["long", ["long", "long"]],
+ "SQLEndTran" => ["long", ["long", "long", "long"]],
+ "SQLFetchScroll" => ["long", ["long", "long", "long"]],
+ "SQLFreeHandle" => ["long", ["long", "long"]],
+ "SQLGetConnectAttr" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "SQLGetDescField" => ["long", ["long", "long", "long", "ptr", "long", "ptr"]],
+ "SQLGetDescRec" => ["long", ["long", "long", "ptr", "long", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
+ "SQLGetDiagField" => ["long", ["long", "long", "long", "long", "ptr", "long", "ptr"]],
+ "SQLGetDiagRec" => ["long", ["long", "long", "long", "ptr", "ptr", "ptr", "long", "ptr"]],
+ "SQLGetEnvAttr" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "SQLGetStmtAttr" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "SQLSetConnectAttr" => ["long", ["long", "long", "ptr", "long"]],
+ "SQLColumns" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "SQLDriverConnect" => ["long", ["long", "long", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "SQLGetConnectOption" => ["long", ["long", "long", "ptr"]],
+ "SQLGetData" => ["long", ["long", "long", "long", "ptr", "long", "ptr"]],
+ "SQLGetFunctions" => ["long", ["long", "long", "ptr"]],
+ "SQLGetInfo" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "SQLGetStmtOption" => ["long", ["long", "long", "ptr"]],
+ "SQLGetTypeInfo" => ["long", ["long", "long"]],
+ "SQLParamData" => ["long", ["long", "ptr"]],
+ "SQLPutData" => ["long", ["long", "ptr", "long"]],
+ "SQLSetConnectOption" => ["long", ["long", "long", "long"]],
+ "SQLSetStmtOption" => ["long", ["long", "long", "long"]],
+ "SQLSpecialColumns" => ["long", ["long", "long", "ptr", "long", "ptr", "long", "ptr", "long", "long", "long"]],
+ "SQLStatistics" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "long", "long", "long"]],
+ "SQLTables" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "SQLBrowseConnect" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr"]],
+ "SQLColumnPrivileges" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "SQLDataSources" => ["long", ["long", "long", "ptr", "long", "ptr", "ptr", "long", "ptr"]],
+ "SQLDescribeParam" => ["long", ["long", "long", "ptr", "ptr", "ptr", "ptr"]],
+ "SQLExtendedFetch" => ["long", ["long", "long", "long", "ptr", "ptr"]],
+ "SQLForeignKeys" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "long", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "SQLMoreResults" => ["long", ["long"]],
+ "SQLNativeSql" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr"]],
+ "SQLNumParams" => ["long", ["long", "ptr"]],
+ "SQLParamOptions" => ["long", ["long", "long", "ptr"]],
+ "SQLPrimaryKeys" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "SQLProcedureColumns" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "SQLProcedures" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "SQLSetPos" => ["long", ["long", "long", "long", "long"]],
+ "SQLSetScrollOptions" => ["long", ["long", "long", "long", "long"]],
+ "SQLTablePrivileges" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "SQLDrivers" => ["long", ["long", "long", "ptr", "long", "ptr", "ptr", "long", "ptr"]],
+ "SQLBindParameter" => ["long", ["long", "long", "long", "long", "long", "long", "long", "ptr", "long", "ptr"]],
+ "SQLSetDescField" => ["long", ["long", "long", "long", "ptr", "long"]],
+ "SQLSetDescRec" => ["long", ["long", "long", "long", "long", "long", "long", "long", "ptr", "ptr", "ptr"]],
+ "SQLSetEnvAttr" => ["long", ["long", "long", "ptr", "long"]],
+ "SQLSetStmtAttr" => ["long", ["long", "long", "ptr", "long"]],
+ "SQLAllocHandleStd" => ["long", ["long", "long", "ptr"]],
+ "SQLBulkOperations" => ["long", ["long", "long"]]
+};
+
+&wine::declare("odbc32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/ole32.pm b/programs/winetest/include/ole32.pm
new file mode 100644
index 0000000..7e2ad77
--- /dev/null
+++ b/programs/winetest/include/ole32.pm
@@ -0,0 +1,144 @@
+package ole32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "CLSIDFromProgID" => ["long", ["str", "ptr"]],
+ "CLSIDFromString" => ["long", ["str", "ptr"]],
+ "CoBuildVersion" => ["long", []],
+ "CoCreateFreeThreadedMarshaler" => ["long", ["ptr", "ptr"]],
+ "CoCreateGuid" => ["long", ["ptr"]],
+ "CoCreateInstance" => ["long", ["ptr", "ptr", "long", "ptr", "ptr"]],
+ "CoDisconnectObject" => ["long", ["ptr", "long"]],
+ "CoFileTimeNow" => ["long", ["ptr"]],
+ "CoFreeAllLibraries" => ["void", []],
+ "CoFreeLibrary" => ["void", ["long"]],
+ "CoFreeUnusedLibraries" => ["void", []],
+ "CoGetClassObject" => ["long", ["ptr", "long", "ptr", "ptr", "ptr"]],
+ "CoGetCurrentProcess" => ["long", []],
+ "CoGetMalloc" => ["long", ["long", "ptr"]],
+ "CoGetPSClsid" => ["long", ["ptr", "ptr"]],
+ "CoInitialize" => ["long", ["ptr"]],
+ "CoInitializeWOW" => ["long", ["long", "long"]],
+ "CoIsOle1Class" => ["long", ["ptr"]],
+ "CoLoadLibrary" => ["long", ["str", "long"]],
+ "CoLockObjectExternal" => ["long", ["ptr", "long", "long"]],
+ "CoRegisterClassObject" => ["long", ["ptr", "ptr", "long", "long", "ptr"]],
+ "CoRegisterMessageFilter" => ["long", ["ptr", "ptr"]],
+ "CoRevokeClassObject" => ["long", ["long"]],
+ "CoSetState" => ["long", ["ptr"]],
+ "CoTaskMemAlloc" => ["ptr", ["long"]],
+ "CoTaskMemFree" => ["void", ["ptr"]],
+ "CoTaskMemRealloc" => ["ptr", ["ptr", "long"]],
+ "CoTreatAsClass" => ["long", ["ptr", "ptr"]],
+ "CoUninitialize" => ["void", []],
+ "CreateAntiMoniker" => ["long", ["ptr"]],
+ "CreateBindCtx" => ["long", ["long", "ptr"]],
+ "CreateDataAdviseHolder" => ["long", ["ptr"]],
+ "CreateDataCache" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
+ "CreateFileMoniker" => ["long", ["str", "ptr"]],
+ "CreateGenericComposite" => ["long", ["ptr", "ptr", "ptr"]],
+ "CreateILockBytesOnHGlobal" => ["long", ["long", "long", "ptr"]],
+ "CreateItemMoniker" => ["long", ["str", "str", "ptr"]],
+ "CreateOleAdviseHolder" => ["long", ["ptr"]],
+ "CreateStreamOnHGlobal" => ["long", ["long", "long", "ptr"]],
+ "DllDebugObjectRPCHook" => ["long", ["long", "ptr"]],
+ "DllGetClassObject" => ["long", ["ptr", "ptr", "ptr"]],
+ "DoDragDrop" => ["long", ["ptr", "ptr", "long", "ptr"]],
+ "GetClassFile" => ["long", ["str", "ptr"]],
+ "GetConvertStg" => ["long", ["ptr"]],
+ "GetHGlobalFromILockBytes" => ["long", ["ptr", "ptr"]],
+ "GetHGlobalFromStream" => ["long", ["ptr", "ptr"]],
+ "GetRunningObjectTable" => ["long", ["long", "ptr"]],
+ "IIDFromString" => ["long", ["str", "ptr"]],
+ "IsAccelerator" => ["long", ["long", "long", "ptr", "ptr"]],
+ "IsEqualGUID" => ["long", ["ptr", "ptr"]],
+ "IsValidInterface" => ["long", ["ptr"]],
+ "MkParseDisplayName" => ["long", ["ptr", "str", "ptr", "ptr"]],
+ "MonikerCommonPrefixWith" => ["long", ["ptr", "ptr", "ptr"]],
+ "OleBuildVersion" => ["long", []],
+ "OleConvertIStorageToOLESTREAM" => ["long", ["ptr", "ptr"]],
+ "OleConvertOLESTREAMToIStorage" => ["long", ["ptr", "ptr", "ptr"]],
+ "OleCreate" => ["long", ["ptr", "ptr", "long", "ptr", "ptr", "ptr", "ptr"]],
+ "OleCreateDefaultHandler" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
+ "OleCreateFromData" => ["long", ["ptr", "ptr", "long", "ptr", "ptr", "ptr", "ptr"]],
+ "OleCreateFromFile" => ["long", ["ptr", "str", "ptr", "long", "ptr", "ptr", "ptr", "ptr"]],
+ "OleCreateLink" => ["long", ["ptr", "ptr", "long", "ptr", "ptr", "ptr", "ptr"]],
+ "OleCreateLinkFromData" => ["long", ["ptr", "ptr", "long", "ptr", "ptr", "ptr", "ptr"]],
+ "OleCreateLinkToFile" => ["long", ["str", "ptr", "long", "ptr", "ptr", "ptr", "ptr"]],
+ "OleCreateMenuDescriptor" => ["long", ["long", "ptr"]],
+ "OleCreateStaticFromData" => ["long", ["ptr", "ptr", "long", "ptr", "ptr", "ptr", "ptr"]],
+ "OleDestroyMenuDescriptor" => ["long", ["long"]],
+ "OleDuplicateData" => ["long", ["long", "long", "long"]],
+ "OleFlushClipboard" => ["long", ["undef"]],
+ "OleGetAutoConvert" => ["long", ["ptr", "ptr"]],
+ "OleGetClipboard" => ["long", ["ptr"]],
+ "OleGetIconOfClass" => ["long", ["ptr", "str", "long"]],
+ "OleInitialize" => ["long", ["ptr"]],
+ "OleInitializeWOW" => ["long", ["long"]],
+ "OleIsCurrentClipboard" => ["long", ["ptr"]],
+ "OleIsRunning" => ["long", ["ptr"]],
+ "OleLoad" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
+ "OleLoadFromStream" => ["long", ["ptr", "ptr", "ptr"]],
+ "OleLockRunning" => ["long", ["ptr", "long", "long"]],
+ "OleQueryCreateFromData" => ["long", ["ptr"]],
+ "OleQueryLinkFromData" => ["long", ["ptr"]],
+ "OleRegEnumFormatEtc" => ["long", ["ptr", "long", "ptr"]],
+ "OleRegEnumVerbs" => ["long", ["ptr", "ptr"]],
+ "OleRegGetMiscStatus" => ["long", ["ptr", "long", "ptr"]],
+ "OleRegGetUserType" => ["long", ["ptr", "long", "ptr"]],
+ "OleRun" => ["long", ["ptr"]],
+ "OleSave" => ["long", ["ptr", "ptr", "long"]],
+ "OleSaveToStream" => ["long", ["ptr", "ptr"]],
+ "OleSetAutoConvert" => ["long", ["ptr", "ptr"]],
+ "OleSetClipboard" => ["long", ["ptr"]],
+ "OleSetContainedObject" => ["long", ["ptr", "long"]],
+ "OleSetMenuDescriptor" => ["long", ["long", "long", "long", "ptr", "ptr"]],
+ "OleTranslateAccelerator" => ["long", ["ptr", "ptr", "ptr"]],
+ "OleUninitialize" => ["void", []],
+ "ProgIDFromCLSID" => ["long", ["ptr", "ptr"]],
+ "ReadClassStg" => ["long", ["ptr", "ptr"]],
+ "ReadClassStm" => ["long", ["ptr", "ptr"]],
+ "ReadFmtUserTypeStg" => ["long", ["ptr", "ptr", "ptr"]],
+ "RegisterDragDrop" => ["long", ["long", "ptr"]],
+ "ReleaseStgMedium" => ["void", ["ptr"]],
+ "RevokeDragDrop" => ["long", ["long"]],
+ "SetConvertStg" => ["long", ["ptr", "long"]],
+ "StgCreateDocfile" => ["long", ["str", "long", "long", "ptr"]],
+ "StgCreateDocfileOnILockBytes" => ["long", ["ptr", "long", "long", "ptr"]],
+ "StgIsStorageFile" => ["long", ["str"]],
+ "StgIsStorageILockBytes" => ["long", ["ptr"]],
+ "StgOpenStorage" => ["long", ["ptr", "ptr", "long", "ptr", "long", "ptr"]],
+ "StgOpenStorageOnILockBytes" => ["long", ["ptr", "ptr", "long", "ptr", "long", "ptr"]],
+ "StgSetTimes" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
+ "StringFromCLSID" => ["long", ["ptr", "ptr"]],
+ "StringFromGUID2" => ["long", ["ptr", "str", "long"]],
+ "StringFromIID" => ["long", ["ptr", "ptr"]],
+ "WriteClassStg" => ["long", ["ptr", "ptr"]],
+ "WriteClassStm" => ["long", ["ptr", "ptr"]],
+ "WriteFmtUserTypeStg" => ["long", ["ptr", "long", "str"]],
+ "CoInitializeEx" => ["long", ["ptr", "long"]],
+ "CoCreateInstanceEx" => ["long", ["ptr", "ptr", "long", "ptr", "long", "ptr"]],
+ "PropVariantClear" => ["long", ["ptr"]],
+ "CoResumeClassObjects" => ["long", []],
+ "CreateErrorInfo" => ["long", ["ptr"]],
+ "DllRegisterServer" => ["long", ["undef"]],
+ "FreePropVariantArray" => ["long", ["long", "ptr"]],
+ "GetErrorInfo" => ["long", ["long", "ptr"]],
+ "PropVariantCopy" => ["long", ["ptr", "ptr"]],
+ "SetErrorInfo" => ["long", ["long", "ptr"]],
+ "DllEntryPoint" => ["long", ["long", "long", "ptr"]]
+};
+
+&wine::declare("ole32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/oleaut32.pm b/programs/winetest/include/oleaut32.pm
new file mode 100644
index 0000000..0ff4129
--- /dev/null
+++ b/programs/winetest/include/oleaut32.pm
@@ -0,0 +1,226 @@
+package oleaut32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "OleCreatePropertyFrame" => ["long", ["long", "long", "long", "str", "long", "ptr", "long", "ptr", "long", "long", "ptr"]],
+ "OleCreatePropertyFrameIndirect" => ["long", ["ptr"]],
+ "DllGetClassObject" => ["long", ["ptr", "ptr", "ptr"]],
+ "SysAllocString" => ["wstr", ["str"]],
+ "SysReAllocString" => ["long", ["ptr", "str"]],
+ "SysAllocStringLen" => ["wstr", ["ptr", "long"]],
+ "SysReAllocStringLen" => ["long", ["ptr", "ptr", "long"]],
+ "SysFreeString" => ["void", ["wstr"]],
+ "SysStringLen" => ["long", ["wstr"]],
+ "VariantInit" => ["void", ["ptr"]],
+ "VariantClear" => ["long", ["ptr"]],
+ "VariantCopy" => ["long", ["ptr", "ptr"]],
+ "VariantCopyInd" => ["long", ["ptr", "ptr"]],
+ "VariantChangeType" => ["long", ["ptr", "ptr", "long", "long"]],
+ "VariantTimeToDosDateTime" => ["long", ["double", "ptr", "ptr"]],
+ "DosDateTimeToVariantTime" => ["long", ["long", "long", "ptr"]],
+ "SafeArrayCreate" => ["ptr", ["long", "long", "ptr"]],
+ "SafeArrayDestroy" => ["long", ["ptr"]],
+ "SafeArrayGetDim" => ["long", ["ptr"]],
+ "SafeArrayGetElemsize" => ["long", ["ptr"]],
+ "SafeArrayGetUBound" => ["long", ["ptr", "long", "ptr"]],
+ "SafeArrayGetLBound" => ["long", ["ptr", "long", "ptr"]],
+ "SafeArrayLock" => ["long", ["ptr"]],
+ "SafeArrayUnlock" => ["long", ["ptr"]],
+ "SafeArrayAccessData" => ["long", ["ptr", "ptr"]],
+ "SafeArrayUnaccessData" => ["long", ["ptr"]],
+ "SafeArrayGetElement" => ["long", ["ptr", "ptr", "ptr"]],
+ "SafeArrayPutElement" => ["long", ["ptr", "ptr", "ptr"]],
+ "SafeArrayCopy" => ["long", ["ptr", "ptr"]],
+ "DispGetParam" => ["long", ["ptr", "long", "long", "ptr", "ptr"]],
+ "DispGetIDsOfNames" => ["long", ["ptr", "ptr", "long", "ptr"]],
+ "DispInvoke" => ["long", ["ptr", "ptr", "long", "long", "ptr", "ptr", "ptr", "ptr"]],
+ "CreateDispTypeInfo" => ["long", ["ptr", "long", "ptr"]],
+ "CreateStdDispatch" => ["long", ["ptr", "ptr", "ptr", "ptr"]],
+ "RegisterActiveObject" => ["long", ["ptr", "ptr", "long", "ptr"]],
+ "RevokeActiveObject" => ["long", ["long", "ptr"]],
+ "GetActiveObject" => ["long", ["ptr", "ptr", "ptr"]],
+ "SafeArrayAllocDescriptor" => ["long", ["long", "ptr"]],
+ "SafeArrayAllocData" => ["long", ["ptr"]],
+ "SafeArrayDestroyDescriptor" => ["long", ["ptr"]],
+ "SafeArrayDestroyData" => ["long", ["ptr"]],
+ "SafeArrayRedim" => ["long", ["ptr", "ptr"]],
+ "VarParseNumFromStr" => ["long", ["ptr", "long", "long", "ptr", "ptr"]],
+ "VarNumFromParseNum" => ["long", ["ptr", "ptr", "long", "ptr"]],
+ "VarI2FromUI1" => ["long", ["long", "ptr"]],
+ "VarI2FromI4" => ["long", ["long", "ptr"]],
+ "VarI2FromR4" => ["long", ["long", "ptr"]],
+ "VarI2FromR8" => ["long", ["double", "ptr"]],
+ "VarI2FromCy" => ["long", ["double", "ptr"]],
+ "VarI2FromDate" => ["long", ["double", "ptr"]],
+ "VarI2FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
+ "VarI2FromBool" => ["long", ["long", "ptr"]],
+ "VarI4FromUI1" => ["long", ["long", "ptr"]],
+ "VarI4FromI2" => ["long", ["long", "ptr"]],
+ "VarI4FromR4" => ["long", ["long", "ptr"]],
+ "VarI4FromR8" => ["long", ["double", "ptr"]],
+ "VarI4FromCy" => ["long", ["double", "ptr"]],
+ "VarI4FromDate" => ["long", ["double", "ptr"]],
+ "VarI4FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
+ "VarI4FromBool" => ["long", ["long", "ptr"]],
+ "VarR4FromUI1" => ["long", ["long", "ptr"]],
+ "VarR4FromI2" => ["long", ["long", "ptr"]],
+ "VarR4FromI4" => ["long", ["long", "ptr"]],
+ "VarR4FromR8" => ["long", ["double", "ptr"]],
+ "VarR4FromCy" => ["long", ["double", "ptr"]],
+ "VarR4FromDate" => ["long", ["double", "ptr"]],
+ "VarR4FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
+ "VarR4FromBool" => ["long", ["long", "ptr"]],
+ "SafeArrayGetVarType" => ["long", ["ptr", "ptr"]],
+ "VarR8FromUI1" => ["long", ["long", "ptr"]],
+ "VarR8FromI2" => ["long", ["long", "ptr"]],
+ "VarR8FromI4" => ["long", ["long", "ptr"]],
+ "VarR8FromR4" => ["long", ["long", "ptr"]],
+ "VarR8FromCy" => ["long", ["double", "ptr"]],
+ "VarR8FromDate" => ["long", ["double", "ptr"]],
+ "VarR8FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
+ "VarR8FromBool" => ["long", ["long", "ptr"]],
+ "VarDateFromUI1" => ["long", ["long", "ptr"]],
+ "VarDateFromI2" => ["long", ["long", "ptr"]],
+ "VarDateFromI4" => ["long", ["long", "ptr"]],
+ "VarDateFromR4" => ["long", ["long", "ptr"]],
+ "VarDateFromR8" => ["long", ["double", "ptr"]],
+ "VarDateFromCy" => ["long", ["double", "ptr"]],
+ "VarDateFromStr" => ["long", ["ptr", "long", "long", "ptr"]],
+ "VarDateFromBool" => ["long", ["long", "ptr"]],
+ "VarCyFromUI1" => ["long", ["long", "ptr"]],
+ "VarCyFromI2" => ["long", ["long", "ptr"]],
+ "VarCyFromI4" => ["long", ["long", "ptr"]],
+ "VarCyFromR4" => ["long", ["long", "ptr"]],
+ "VarCyFromR8" => ["long", ["double", "ptr"]],
+ "VarCyFromDate" => ["long", ["double", "ptr"]],
+ "VarCyFromStr" => ["long", ["ptr", "long", "long", "ptr"]],
+ "VarCyFromBool" => ["long", ["long", "ptr"]],
+ "VarBstrFromUI1" => ["long", ["long", "long", "long", "ptr"]],
+ "VarBstrFromI2" => ["long", ["long", "long", "long", "ptr"]],
+ "VarBstrFromI4" => ["long", ["long", "long", "long", "ptr"]],
+ "VarBstrFromR4" => ["long", ["long", "long", "long", "ptr"]],
+ "VarBstrFromR8" => ["long", ["double", "long", "long", "ptr"]],
+ "VarBstrFromCy" => ["long", ["double", "long", "long", "ptr"]],
+ "VarBstrFromDate" => ["long", ["double", "long", "long", "ptr"]],
+ "VarBstrFromBool" => ["long", ["long", "long", "long", "ptr"]],
+ "VarBoolFromUI1" => ["long", ["long", "ptr"]],
+ "VarBoolFromI2" => ["long", ["long", "ptr"]],
+ "VarBoolFromI4" => ["long", ["long", "ptr"]],
+ "VarBoolFromR4" => ["long", ["long", "ptr"]],
+ "VarBoolFromR8" => ["long", ["double", "ptr"]],
+ "VarBoolFromDate" => ["long", ["double", "ptr"]],
+ "VarBoolFromCy" => ["long", ["double", "ptr"]],
+ "VarBoolFromStr" => ["long", ["ptr", "long", "long", "ptr"]],
+ "VarUI1FromI2" => ["long", ["long", "ptr"]],
+ "VarUI1FromI4" => ["long", ["long", "ptr"]],
+ "VarUI1FromR4" => ["long", ["long", "ptr"]],
+ "VarUI1FromR8" => ["long", ["double", "ptr"]],
+ "VarUI1FromCy" => ["long", ["double", "ptr"]],
+ "VarUI1FromDate" => ["long", ["double", "ptr"]],
+ "VarUI1FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
+ "VarUI1FromBool" => ["long", ["long", "ptr"]],
+ "VariantChangeTypeEx" => ["long", ["ptr", "ptr", "long", "long", "long"]],
+ "SafeArrayPtrOfIndex" => ["long", ["ptr", "ptr", "ptr"]],
+ "SysStringByteLen" => ["long", ["wstr"]],
+ "SysAllocStringByteLen" => ["wstr", ["str", "long"]],
+ "CreateTypeLib" => ["long", ["long", "str", "ptr"]],
+ "LoadTypeLib" => ["long", ["ptr", "ptr"]],
+ "LoadRegTypeLib" => ["long", ["ptr", "long", "long", "long", "ptr"]],
+ "RegisterTypeLib" => ["long", ["ptr", "ptr", "ptr"]],
+ "QueryPathOfRegTypeLib" => ["long", ["ptr", "long", "long", "long", "ptr"]],
+ "LHashValOfNameSys" => ["long", ["long", "long", "str"]],
+ "LHashValOfNameSysA" => ["long", ["long", "long", "str"]],
+ "OaBuildVersion" => ["long", ["undef"]],
+ "LoadTypeLibEx" => ["long", ["str", "long", "ptr"]],
+ "SystemTimeToVariantTime" => ["long", ["ptr", "ptr"]],
+ "VariantTimeToSystemTime" => ["long", ["double", "ptr"]],
+ "UnRegisterTypeLib" => ["long", ["ptr", "long", "long", "long", "long"]],
+ "VarI2FromI1" => ["long", ["long", "ptr"]],
+ "VarI2FromUI2" => ["long", ["long", "ptr"]],
+ "VarI2FromUI4" => ["long", ["long", "ptr"]],
+ "VarI4FromI1" => ["long", ["long", "ptr"]],
+ "VarI4FromUI2" => ["long", ["long", "ptr"]],
+ "VarI4FromUI4" => ["long", ["long", "ptr"]],
+ "VarR4FromI1" => ["long", ["long", "ptr"]],
+ "VarR4FromUI2" => ["long", ["long", "ptr"]],
+ "VarR4FromUI4" => ["long", ["long", "ptr"]],
+ "VarR8FromI1" => ["long", ["long", "ptr"]],
+ "VarR8FromUI2" => ["long", ["long", "ptr"]],
+ "VarR8FromUI4" => ["long", ["long", "ptr"]],
+ "VarDateFromI1" => ["long", ["long", "ptr"]],
+ "VarDateFromUI2" => ["long", ["long", "ptr"]],
+ "VarDateFromUI4" => ["long", ["long", "ptr"]],
+ "VarCyFromI1" => ["long", ["long", "ptr"]],
+ "VarCyFromUI2" => ["long", ["long", "ptr"]],
+ "VarCyFromUI4" => ["long", ["long", "ptr"]],
+ "VarBstrFromI1" => ["long", ["long", "long", "long", "ptr"]],
+ "VarBstrFromUI2" => ["long", ["long", "long", "long", "ptr"]],
+ "VarBstrFromUI4" => ["long", ["long", "long", "long", "ptr"]],
+ "VarBoolFromI1" => ["long", ["long", "ptr"]],
+ "VarBoolFromUI2" => ["long", ["long", "ptr"]],
+ "VarBoolFromUI4" => ["long", ["long", "ptr"]],
+ "VarUI1FromI1" => ["long", ["long", "ptr"]],
+ "VarUI1FromUI2" => ["long", ["long", "ptr"]],
+ "VarUI1FromUI4" => ["long", ["long", "ptr"]],
+ "VarI1FromUI1" => ["long", ["long", "ptr"]],
+ "VarI1FromI2" => ["long", ["long", "ptr"]],
+ "VarI1FromI4" => ["long", ["long", "ptr"]],
+ "VarI1FromR4" => ["long", ["long", "ptr"]],
+ "VarI1FromR8" => ["long", ["double", "ptr"]],
+ "VarI1FromDate" => ["long", ["double", "ptr"]],
+ "VarI1FromCy" => ["long", ["double", "ptr"]],
+ "VarI1FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
+ "VarI1FromBool" => ["long", ["long", "ptr"]],
+ "VarI1FromUI2" => ["long", ["long", "ptr"]],
+ "VarI1FromUI4" => ["long", ["long", "ptr"]],
+ "VarUI2FromUI1" => ["long", ["long", "ptr"]],
+ "VarUI2FromI2" => ["long", ["long", "ptr"]],
+ "VarUI2FromI4" => ["long", ["long", "ptr"]],
+ "VarUI2FromR4" => ["long", ["long", "ptr"]],
+ "VarUI2FromR8" => ["long", ["double", "ptr"]],
+ "VarUI2FromDate" => ["long", ["double", "ptr"]],
+ "VarUI2FromCy" => ["long", ["double", "ptr"]],
+ "VarUI2FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
+ "VarUI2FromBool" => ["long", ["long", "ptr"]],
+ "VarUI2FromI1" => ["long", ["long", "ptr"]],
+ "VarUI2FromUI4" => ["long", ["long", "ptr"]],
+ "VarUI4FromUI1" => ["long", ["long", "ptr"]],
+ "VarUI4FromI2" => ["long", ["long", "ptr"]],
+ "VarUI4FromI4" => ["long", ["long", "ptr"]],
+ "VarUI4FromR4" => ["long", ["long", "ptr"]],
+ "VarUI4FromR8" => ["long", ["double", "ptr"]],
+ "VarUI4FromDate" => ["long", ["double", "ptr"]],
+ "VarUI4FromCy" => ["long", ["double", "ptr"]],
+ "VarUI4FromStr" => ["long", ["ptr", "long", "long", "ptr"]],
+ "VarUI4FromBool" => ["long", ["long", "ptr"]],
+ "VarUI4FromI1" => ["long", ["long", "ptr"]],
+ "VarUI4FromUI2" => ["long", ["long", "ptr"]],
+ "DllRegisterServer" => ["long", ["undef"]],
+ "VarDateFromUdate" => ["long", ["ptr", "long", "ptr"]],
+ "VarUdateFromDate" => ["long", ["double", "long", "ptr"]],
+ "DllCanUnloadNow" => ["long", ["undef"]],
+ "SafeArrayCreateVector" => ["ptr", ["long", "long", "long"]],
+ "SafeArrayCopyData" => ["long", ["ptr", "ptr"]],
+ "OleIconToCursor" => ["long", ["long", "long"]],
+ "OleLoadPicture" => ["long", ["ptr", "long", "long", "ptr", "ptr"]],
+ "OleCreatePictureIndirect" => ["long", ["ptr", "ptr", "long", "ptr"]],
+ "OleCreateFontIndirect" => ["long", ["ptr", "ptr", "ptr"]],
+ "OleTranslateColor" => ["long", ["long", "long", "ptr"]],
+ "OleLoadPictureEx" => ["long", ["ptr", "long", "long", "ptr", "long", "long", "long", "ptr"]],
+ "VarBstrCat" => ["long", ["wstr", "wstr", "ptr"]],
+ "VarBstrCmp" => ["long", ["wstr", "wstr", "long", "long"]]
+};
+
+&wine::declare("oleaut32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/olecli32.pm b/programs/winetest/include/olecli32.pm
new file mode 100644
index 0000000..8ec0db7
--- /dev/null
+++ b/programs/winetest/include/olecli32.pm
@@ -0,0 +1,30 @@
+package olecli32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "OleQueryLinkFromClip" => ["long", ["str", "long", "long"]],
+ "OleQueryCreateFromClip" => ["long", ["str", "long", "long"]],
+ "OleCreateLinkFromClip" => ["long", ["str", "ptr", "long", "str", "ptr", "long", "long"]],
+ "OleCreateFromClip" => ["long", ["str", "ptr", "long", "str", "ptr", "long", "long"]],
+ "OleQueryType" => ["long", ["ptr", "ptr"]],
+ "OleSetHostNames" => ["long", ["ptr", "str", "str"]],
+ "OleRegisterClientDoc" => ["long", ["str", "str", "long", "ptr"]],
+ "OleRevokeClientDoc" => ["long", ["long"]],
+ "OleRenameClientDoc" => ["long", ["long", "str"]],
+ "OleSavedClientDoc" => ["long", ["long"]],
+ "OleIsDcMeta" => ["long", ["long"]]
+};
+
+&wine::declare("olecli32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/oledlg.pm b/programs/winetest/include/oledlg.pm
new file mode 100644
index 0000000..0f81ea5
--- /dev/null
+++ b/programs/winetest/include/oledlg.pm
@@ -0,0 +1,40 @@
+package oledlg;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "OleUIAddVerbMenuA" => ["long", ["ptr", "str", "long", "long", "long", "long", "long", "long", "ptr"]],
+ "OleUICanConvertOrActivateAs" => ["long", ["ptr", "long", "long"]],
+ "OleUIInsertObjectA" => ["long", ["ptr"]],
+ "OleUIPasteSpecialA" => ["long", ["ptr"]],
+ "OleUIEditLinksA" => ["long", ["ptr"]],
+ "OleUIChangeIconA" => ["long", ["ptr"]],
+ "OleUIConvertA" => ["long", ["ptr"]],
+ "OleUIBusyA" => ["long", ["ptr"]],
+ "OleUIUpdateLinksA" => ["long", ["ptr", "long", "str", "long"]],
+ "OleUIObjectPropertiesA" => ["long", ["ptr"]],
+ "OleUIChangeSourceA" => ["long", ["ptr"]],
+ "OleUIAddVerbMenuW" => ["long", ["ptr", "wstr", "long", "long", "long", "long", "long", "long", "ptr"]],
+ "OleUIBusyW" => ["long", ["ptr"]],
+ "OleUIChangeIconW" => ["long", ["ptr"]],
+ "OleUIChangeSourceW" => ["long", ["ptr"]],
+ "OleUIConvertW" => ["long", ["ptr"]],
+ "OleUIEditLinksW" => ["long", ["ptr"]],
+ "OleUIInsertObjectW" => ["long", ["ptr"]],
+ "OleUIObjectPropertiesW" => ["long", ["ptr"]],
+ "OleUIPasteSpecialW" => ["long", ["ptr"]],
+ "OleUIUpdateLinksW" => ["long", ["ptr", "long", "wstr", "long"]]
+};
+
+&wine::declare("oledlg",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/olepro32.pm b/programs/winetest/include/olepro32.pm
new file mode 100644
index 0000000..4efc7e3
--- /dev/null
+++ b/programs/winetest/include/olepro32.pm
@@ -0,0 +1,23 @@
+package olepro32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DllCanUnloadNow" => ["long", ["undef"]],
+ "DllGetClassObject" => ["long", ["ptr", "ptr", "ptr"]],
+ "DllRegisterServer" => ["long", ["undef"]],
+ "DllUnregisterServer" => ["long", ["undef"]]
+};
+
+&wine::declare("olepro32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/olesvr32.pm b/programs/winetest/include/olesvr32.pm
new file mode 100644
index 0000000..b7b9898
--- /dev/null
+++ b/programs/winetest/include/olesvr32.pm
@@ -0,0 +1,25 @@
+package olesvr32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "OleRegisterServer" => ["long", ["str", "ptr", "ptr", "long", "long"]],
+ "OleBlockServer" => ["long", ["long"]],
+ "OleUnblockServer" => ["long", ["long", "ptr"]],
+ "OleRegisterServerDoc" => ["long", ["long", "str", "ptr", "ptr"]],
+ "OleRevokeServerDoc" => ["long", ["long"]],
+ "OleRenameServerDoc" => ["long", ["long", "str"]]
+};
+
+&wine::declare("olesvr32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/opengl32.pm b/programs/winetest/include/opengl32.pm
new file mode 100644
index 0000000..df1316d
--- /dev/null
+++ b/programs/winetest/include/opengl32.pm
@@ -0,0 +1,443 @@
+package opengl32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "glAccum" => ["void", ["long", "long"]],
+ "glActiveTextureARB" => ["void", ["long"]],
+ "glAlphaFunc" => ["void", ["long", "long"]],
+ "glAreTexturesResident" => ["long", ["long", "ptr", "ptr"]],
+ "glArrayElement" => ["void", ["long"]],
+ "glBegin" => ["void", ["long"]],
+ "glBindTexture" => ["void", ["long", "long"]],
+ "glBitmap" => ["void", ["long", "long", "long", "long", "long", "long", "ptr"]],
+ "glBlendColor" => ["void", ["long", "long", "long", "long"]],
+ "glBlendEquation" => ["void", ["long"]],
+ "glBlendFunc" => ["void", ["long", "long"]],
+ "glCallList" => ["void", ["long"]],
+ "glCallLists" => ["void", ["long", "long", "ptr"]],
+ "glClear" => ["void", ["long"]],
+ "glClearAccum" => ["void", ["long", "long", "long", "long"]],
+ "glClearColor" => ["void", ["long", "long", "long", "long"]],
+ "glClearDepth" => ["void", ["double"]],
+ "glClearIndex" => ["void", ["long"]],
+ "glClearStencil" => ["void", ["long"]],
+ "glClientActiveTextureARB" => ["void", ["long"]],
+ "glClipPlane" => ["void", ["long", "ptr"]],
+ "glColor3b" => ["void", ["long", "long", "long"]],
+ "glColor3bv" => ["void", ["ptr"]],
+ "glColor3d" => ["void", ["double", "double", "double"]],
+ "glColor3dv" => ["void", ["ptr"]],
+ "glColor3f" => ["void", ["long", "long", "long"]],
+ "glColor3fv" => ["void", ["ptr"]],
+ "glColor3i" => ["void", ["long", "long", "long"]],
+ "glColor3iv" => ["void", ["ptr"]],
+ "glColor3s" => ["void", ["long", "long", "long"]],
+ "glColor3sv" => ["void", ["ptr"]],
+ "glColor3ub" => ["void", ["long", "long", "long"]],
+ "glColor3ubv" => ["void", ["ptr"]],
+ "glColor3ui" => ["void", ["long", "long", "long"]],
+ "glColor3uiv" => ["void", ["ptr"]],
+ "glColor3us" => ["void", ["long", "long", "long"]],
+ "glColor3usv" => ["void", ["ptr"]],
+ "glColor4b" => ["void", ["long", "long", "long", "long"]],
+ "glColor4bv" => ["void", ["ptr"]],
+ "glColor4d" => ["void", ["double", "double", "double", "double"]],
+ "glColor4dv" => ["void", ["ptr"]],
+ "glColor4f" => ["void", ["long", "long", "long", "long"]],
+ "glColor4fv" => ["void", ["ptr"]],
+ "glColor4i" => ["void", ["long", "long", "long", "long"]],
+ "glColor4iv" => ["void", ["ptr"]],
+ "glColor4s" => ["void", ["long", "long", "long", "long"]],
+ "glColor4sv" => ["void", ["ptr"]],
+ "glColor4ub" => ["void", ["long", "long", "long", "long"]],
+ "glColor4ubv" => ["void", ["ptr"]],
+ "glColor4ui" => ["void", ["long", "long", "long", "long"]],
+ "glColor4uiv" => ["void", ["ptr"]],
+ "glColor4us" => ["void", ["long", "long", "long", "long"]],
+ "glColor4usv" => ["void", ["ptr"]],
+ "glColorMask" => ["void", ["long", "long", "long", "long"]],
+ "glColorMaterial" => ["void", ["long", "long"]],
+ "glColorPointer" => ["void", ["long", "long", "long", "ptr"]],
+ "glColorSubTable" => ["void", ["long", "long", "long", "long", "long", "ptr"]],
+ "glColorTable" => ["void", ["long", "long", "long", "long", "long", "ptr"]],
+ "glColorTableParameterfv" => ["void", ["long", "long", "ptr"]],
+ "glColorTableParameteriv" => ["void", ["long", "long", "ptr"]],
+ "glConvolutionFilter1D" => ["void", ["long", "long", "long", "long", "long", "ptr"]],
+ "glConvolutionFilter2D" => ["void", ["long", "long", "long", "long", "long", "long", "ptr"]],
+ "glConvolutionParameterf" => ["void", ["long", "long", "long"]],
+ "glConvolutionParameterfv" => ["void", ["long", "long", "ptr"]],
+ "glConvolutionParameteri" => ["void", ["long", "long", "long"]],
+ "glConvolutionParameteriv" => ["void", ["long", "long", "ptr"]],
+ "glCopyColorSubTable" => ["void", ["long", "long", "long", "long", "long"]],
+ "glCopyColorTable" => ["void", ["long", "long", "long", "long", "long"]],
+ "glCopyConvolutionFilter1D" => ["void", ["long", "long", "long", "long", "long"]],
+ "glCopyConvolutionFilter2D" => ["void", ["long", "long", "long", "long", "long", "long"]],
+ "glCopyPixels" => ["void", ["long", "long", "long", "long", "long"]],
+ "glCopyTexImage1D" => ["void", ["long", "long", "long", "long", "long", "long", "long"]],
+ "glCopyTexImage2D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long"]],
+ "glCopyTexSubImage1D" => ["void", ["long", "long", "long", "long", "long", "long"]],
+ "glCopyTexSubImage2D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long"]],
+ "glCopyTexSubImage3D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long", "long"]],
+ "glCullFace" => ["void", ["long"]],
+ "glDeleteLists" => ["void", ["long", "long"]],
+ "glDeleteTextures" => ["void", ["long", "ptr"]],
+ "glDepthFunc" => ["void", ["long"]],
+ "glDepthMask" => ["void", ["long"]],
+ "glDepthRange" => ["void", ["double", "double"]],
+ "glDisable" => ["void", ["long"]],
+ "glDisableClientState" => ["void", ["long"]],
+ "glDrawArrays" => ["void", ["long", "long", "long"]],
+ "glDrawBuffer" => ["void", ["long"]],
+ "glDrawElements" => ["void", ["long", "long", "long", "ptr"]],
+ "glDrawPixels" => ["void", ["long", "long", "long", "long", "ptr"]],
+ "glDrawRangeElements" => ["void", ["long", "long", "long", "long", "long", "ptr"]],
+ "glEdgeFlag" => ["void", ["long"]],
+ "glEdgeFlagPointer" => ["void", ["long", "ptr"]],
+ "glEdgeFlagv" => ["void", ["ptr"]],
+ "glEnable" => ["void", ["long"]],
+ "glEnableClientState" => ["void", ["long"]],
+ "glEnd" => ["void", ["undef"]],
+ "glEndList" => ["void", ["undef"]],
+ "glEvalCoord1d" => ["void", ["double"]],
+ "glEvalCoord1dv" => ["void", ["ptr"]],
+ "glEvalCoord1f" => ["void", ["long"]],
+ "glEvalCoord1fv" => ["void", ["ptr"]],
+ "glEvalCoord2d" => ["void", ["double", "double"]],
+ "glEvalCoord2dv" => ["void", ["ptr"]],
+ "glEvalCoord2f" => ["void", ["long", "long"]],
+ "glEvalCoord2fv" => ["void", ["ptr"]],
+ "glEvalMesh1" => ["void", ["long", "long", "long"]],
+ "glEvalMesh2" => ["void", ["long", "long", "long", "long", "long"]],
+ "glEvalPoint1" => ["void", ["long"]],
+ "glEvalPoint2" => ["void", ["long", "long"]],
+ "glFeedbackBuffer" => ["void", ["long", "long", "ptr"]],
+ "glFinish" => ["void", ["undef"]],
+ "glFlush" => ["void", ["undef"]],
+ "glFogf" => ["void", ["long", "long"]],
+ "glFogfv" => ["void", ["long", "ptr"]],
+ "glFogi" => ["void", ["long", "long"]],
+ "glFogiv" => ["void", ["long", "ptr"]],
+ "glFrontFace" => ["void", ["long"]],
+ "glFrustum" => ["void", ["double", "double", "double", "double", "double", "double"]],
+ "glGenLists" => ["long", ["long"]],
+ "glGenTextures" => ["void", ["long", "ptr"]],
+ "glGetBooleanv" => ["void", ["long", "ptr"]],
+ "glGetClipPlane" => ["void", ["long", "ptr"]],
+ "glGetColorTable" => ["void", ["long", "long", "long", "ptr"]],
+ "glGetColorTableParameterfv" => ["void", ["long", "long", "ptr"]],
+ "glGetColorTableParameteriv" => ["void", ["long", "long", "ptr"]],
+ "glGetConvolutionFilter" => ["void", ["long", "long", "long", "ptr"]],
+ "glGetConvolutionParameterfv" => ["void", ["long", "long", "ptr"]],
+ "glGetConvolutionParameteriv" => ["void", ["long", "long", "ptr"]],
+ "glGetDoublev" => ["void", ["long", "ptr"]],
+ "glGetError" => ["long", ["undef"]],
+ "glGetFloatv" => ["void", ["long", "ptr"]],
+ "glGetHistogram" => ["void", ["long", "long", "long", "long", "ptr"]],
+ "glGetHistogramParameterfv" => ["void", ["long", "long", "ptr"]],
+ "glGetHistogramParameteriv" => ["void", ["long", "long", "ptr"]],
+ "glGetIntegerv" => ["void", ["long", "ptr"]],
+ "glGetLightfv" => ["void", ["long", "long", "ptr"]],
+ "glGetLightiv" => ["void", ["long", "long", "ptr"]],
+ "glGetMapdv" => ["void", ["long", "long", "ptr"]],
+ "glGetMapfv" => ["void", ["long", "long", "ptr"]],
+ "glGetMapiv" => ["void", ["long", "long", "ptr"]],
+ "glGetMaterialfv" => ["void", ["long", "long", "ptr"]],
+ "glGetMaterialiv" => ["void", ["long", "long", "ptr"]],
+ "glGetMinmax" => ["void", ["long", "long", "long", "long", "ptr"]],
+ "glGetMinmaxParameterfv" => ["void", ["long", "long", "ptr"]],
+ "glGetMinmaxParameteriv" => ["void", ["long", "long", "ptr"]],
+ "glGetPixelMapfv" => ["void", ["long", "ptr"]],
+ "glGetPixelMapuiv" => ["void", ["long", "ptr"]],
+ "glGetPixelMapusv" => ["void", ["long", "ptr"]],
+ "glGetPointerv" => ["void", ["long", "ptr"]],
+ "glGetPolygonStipple" => ["void", ["ptr"]],
+ "glGetSeparableFilter" => ["void", ["long", "long", "long", "ptr", "ptr", "ptr"]],
+ "glGetString" => ["ptr", ["long"]],
+ "glGetTexEnvfv" => ["void", ["long", "long", "ptr"]],
+ "glGetTexEnviv" => ["void", ["long", "long", "ptr"]],
+ "glGetTexGendv" => ["void", ["long", "long", "ptr"]],
+ "glGetTexGenfv" => ["void", ["long", "long", "ptr"]],
+ "glGetTexGeniv" => ["void", ["long", "long", "ptr"]],
+ "glGetTexImage" => ["void", ["long", "long", "long", "long", "ptr"]],
+ "glGetTexLevelParameterfv" => ["void", ["long", "long", "long", "ptr"]],
+ "glGetTexLevelParameteriv" => ["void", ["long", "long", "long", "ptr"]],
+ "glGetTexParameterfv" => ["void", ["long", "long", "ptr"]],
+ "glGetTexParameteriv" => ["void", ["long", "long", "ptr"]],
+ "glHint" => ["void", ["long", "long"]],
+ "glHistogram" => ["void", ["long", "long", "long", "long"]],
+ "glIndexMask" => ["void", ["long"]],
+ "glIndexPointer" => ["void", ["long", "long", "ptr"]],
+ "glIndexd" => ["void", ["double"]],
+ "glIndexdv" => ["void", ["ptr"]],
+ "glIndexf" => ["void", ["long"]],
+ "glIndexfv" => ["void", ["ptr"]],
+ "glIndexi" => ["void", ["long"]],
+ "glIndexiv" => ["void", ["ptr"]],
+ "glIndexs" => ["void", ["long"]],
+ "glIndexsv" => ["void", ["ptr"]],
+ "glIndexub" => ["void", ["long"]],
+ "glIndexubv" => ["void", ["ptr"]],
+ "glInitNames" => ["void", ["undef"]],
+ "glInterleavedArrays" => ["void", ["long", "long", "ptr"]],
+ "glIsEnabled" => ["long", ["long"]],
+ "glIsList" => ["long", ["long"]],
+ "glIsTexture" => ["long", ["long"]],
+ "glLightModelf" => ["void", ["long", "long"]],
+ "glLightModelfv" => ["void", ["long", "ptr"]],
+ "glLightModeli" => ["void", ["long", "long"]],
+ "glLightModeliv" => ["void", ["long", "ptr"]],
+ "glLightf" => ["void", ["long", "long", "long"]],
+ "glLightfv" => ["void", ["long", "long", "ptr"]],
+ "glLighti" => ["void", ["long", "long", "long"]],
+ "glLightiv" => ["void", ["long", "long", "ptr"]],
+ "glLineStipple" => ["void", ["long", "long"]],
+ "glLineWidth" => ["void", ["long"]],
+ "glListBase" => ["void", ["long"]],
+ "glLoadIdentity" => ["void", ["undef"]],
+ "glLoadMatrixd" => ["void", ["ptr"]],
+ "glLoadMatrixf" => ["void", ["ptr"]],
+ "glLoadName" => ["void", ["long"]],
+ "glLogicOp" => ["void", ["long"]],
+ "glMap1d" => ["void", ["long", "double", "double", "long", "long", "ptr"]],
+ "glMap1f" => ["void", ["long", "long", "long", "long", "long", "ptr"]],
+ "glMap2d" => ["void", ["long", "double", "double", "long", "long", "double", "double", "long", "long", "ptr"]],
+ "glMap2f" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
+ "glMapGrid1d" => ["void", ["long", "double", "double"]],
+ "glMapGrid1f" => ["void", ["long", "long", "long"]],
+ "glMapGrid2d" => ["void", ["long", "double", "double", "long", "double", "double"]],
+ "glMapGrid2f" => ["void", ["long", "long", "long", "long", "long", "long"]],
+ "glMaterialf" => ["void", ["long", "long", "long"]],
+ "glMaterialfv" => ["void", ["long", "long", "ptr"]],
+ "glMateriali" => ["void", ["long", "long", "long"]],
+ "glMaterialiv" => ["void", ["long", "long", "ptr"]],
+ "glMatrixMode" => ["void", ["long"]],
+ "glMinmax" => ["void", ["long", "long", "long"]],
+ "glMultMatrixd" => ["void", ["ptr"]],
+ "glMultMatrixf" => ["void", ["ptr"]],
+ "glMultiTexCoord1dARB" => ["void", ["long", "double"]],
+ "glMultiTexCoord1dvARB" => ["void", ["long", "ptr"]],
+ "glMultiTexCoord1fARB" => ["void", ["long", "long"]],
+ "glMultiTexCoord1fvARB" => ["void", ["long", "ptr"]],
+ "glMultiTexCoord1iARB" => ["void", ["long", "long"]],
+ "glMultiTexCoord1ivARB" => ["void", ["long", "ptr"]],
+ "glMultiTexCoord1sARB" => ["void", ["long", "long"]],
+ "glMultiTexCoord1svARB" => ["void", ["long", "ptr"]],
+ "glMultiTexCoord2dARB" => ["void", ["long", "double", "double"]],
+ "glMultiTexCoord2dvARB" => ["void", ["long", "ptr"]],
+ "glMultiTexCoord2fARB" => ["void", ["long", "long", "long"]],
+ "glMultiTexCoord2fvARB" => ["void", ["long", "ptr"]],
+ "glMultiTexCoord2iARB" => ["void", ["long", "long", "long"]],
+ "glMultiTexCoord2ivARB" => ["void", ["long", "ptr"]],
+ "glMultiTexCoord2sARB" => ["void", ["long", "long", "long"]],
+ "glMultiTexCoord2svARB" => ["void", ["long", "ptr"]],
+ "glMultiTexCoord3dARB" => ["void", ["long", "double", "double", "double"]],
+ "glMultiTexCoord3dvARB" => ["void", ["long", "ptr"]],
+ "glMultiTexCoord3fARB" => ["void", ["long", "long", "long", "long"]],
+ "glMultiTexCoord3fvARB" => ["void", ["long", "ptr"]],
+ "glMultiTexCoord3iARB" => ["void", ["long", "long", "long", "long"]],
+ "glMultiTexCoord3ivARB" => ["void", ["long", "ptr"]],
+ "glMultiTexCoord3sARB" => ["void", ["long", "long", "long", "long"]],
+ "glMultiTexCoord3svARB" => ["void", ["long", "ptr"]],
+ "glMultiTexCoord4dARB" => ["void", ["long", "double", "double", "double", "double"]],
+ "glMultiTexCoord4dvARB" => ["void", ["long", "ptr"]],
+ "glMultiTexCoord4fARB" => ["void", ["long", "long", "long", "long", "long"]],
+ "glMultiTexCoord4fvARB" => ["void", ["long", "ptr"]],
+ "glMultiTexCoord4iARB" => ["void", ["long", "long", "long", "long", "long"]],
+ "glMultiTexCoord4ivARB" => ["void", ["long", "ptr"]],
+ "glMultiTexCoord4sARB" => ["void", ["long", "long", "long", "long", "long"]],
+ "glMultiTexCoord4svARB" => ["void", ["long", "ptr"]],
+ "glNewList" => ["void", ["long", "long"]],
+ "glNormal3b" => ["void", ["long", "long", "long"]],
+ "glNormal3bv" => ["void", ["ptr"]],
+ "glNormal3d" => ["void", ["double", "double", "double"]],
+ "glNormal3dv" => ["void", ["ptr"]],
+ "glNormal3f" => ["void", ["long", "long", "long"]],
+ "glNormal3fv" => ["void", ["ptr"]],
+ "glNormal3i" => ["void", ["long", "long", "long"]],
+ "glNormal3iv" => ["void", ["ptr"]],
+ "glNormal3s" => ["void", ["long", "long", "long"]],
+ "glNormal3sv" => ["void", ["ptr"]],
+ "glNormalPointer" => ["void", ["long", "long", "ptr"]],
+ "glOrtho" => ["void", ["double", "double", "double", "double", "double", "double"]],
+ "glPassThrough" => ["void", ["long"]],
+ "glPixelMapfv" => ["void", ["long", "long", "ptr"]],
+ "glPixelMapuiv" => ["void", ["long", "long", "ptr"]],
+ "glPixelMapusv" => ["void", ["long", "long", "ptr"]],
+ "glPixelStoref" => ["void", ["long", "long"]],
+ "glPixelStorei" => ["void", ["long", "long"]],
+ "glPixelTransferf" => ["void", ["long", "long"]],
+ "glPixelTransferi" => ["void", ["long", "long"]],
+ "glPixelZoom" => ["void", ["long", "long"]],
+ "glPointSize" => ["void", ["long"]],
+ "glPolygonMode" => ["void", ["long", "long"]],
+ "glPolygonOffset" => ["void", ["long", "long"]],
+ "glPolygonStipple" => ["void", ["ptr"]],
+ "glPopAttrib" => ["void", ["undef"]],
+ "glPopClientAttrib" => ["void", ["undef"]],
+ "glPopMatrix" => ["void", ["undef"]],
+ "glPopName" => ["void", ["undef"]],
+ "glPrioritizeTextures" => ["void", ["long", "ptr", "ptr"]],
+ "glPushAttrib" => ["void", ["long"]],
+ "glPushClientAttrib" => ["void", ["long"]],
+ "glPushMatrix" => ["void", ["undef"]],
+ "glPushName" => ["void", ["long"]],
+ "glRasterPos2d" => ["void", ["double", "double"]],
+ "glRasterPos2dv" => ["void", ["ptr"]],
+ "glRasterPos2f" => ["void", ["long", "long"]],
+ "glRasterPos2fv" => ["void", ["ptr"]],
+ "glRasterPos2i" => ["void", ["long", "long"]],
+ "glRasterPos2iv" => ["void", ["ptr"]],
+ "glRasterPos2s" => ["void", ["long", "long"]],
+ "glRasterPos2sv" => ["void", ["ptr"]],
+ "glRasterPos3d" => ["void", ["double", "double", "double"]],
+ "glRasterPos3dv" => ["void", ["ptr"]],
+ "glRasterPos3f" => ["void", ["long", "long", "long"]],
+ "glRasterPos3fv" => ["void", ["ptr"]],
+ "glRasterPos3i" => ["void", ["long", "long", "long"]],
+ "glRasterPos3iv" => ["void", ["ptr"]],
+ "glRasterPos3s" => ["void", ["long", "long", "long"]],
+ "glRasterPos3sv" => ["void", ["ptr"]],
+ "glRasterPos4d" => ["void", ["double", "double", "double", "double"]],
+ "glRasterPos4dv" => ["void", ["ptr"]],
+ "glRasterPos4f" => ["void", ["long", "long", "long", "long"]],
+ "glRasterPos4fv" => ["void", ["ptr"]],
+ "glRasterPos4i" => ["void", ["long", "long", "long", "long"]],
+ "glRasterPos4iv" => ["void", ["ptr"]],
+ "glRasterPos4s" => ["void", ["long", "long", "long", "long"]],
+ "glRasterPos4sv" => ["void", ["ptr"]],
+ "glReadBuffer" => ["void", ["long"]],
+ "glReadPixels" => ["void", ["long", "long", "long", "long", "long", "long", "ptr"]],
+ "glRectd" => ["void", ["double", "double", "double", "double"]],
+ "glRectdv" => ["void", ["ptr", "ptr"]],
+ "glRectf" => ["void", ["long", "long", "long", "long"]],
+ "glRectfv" => ["void", ["ptr", "ptr"]],
+ "glRecti" => ["void", ["long", "long", "long", "long"]],
+ "glRectiv" => ["void", ["ptr", "ptr"]],
+ "glRects" => ["void", ["long", "long", "long", "long"]],
+ "glRectsv" => ["void", ["ptr", "ptr"]],
+ "glRenderMode" => ["long", ["long"]],
+ "glResetHistogram" => ["void", ["long"]],
+ "glResetMinmax" => ["void", ["long"]],
+ "glRotated" => ["void", ["double", "double", "double", "double"]],
+ "glRotatef" => ["void", ["long", "long", "long", "long"]],
+ "glScaled" => ["void", ["double", "double", "double"]],
+ "glScalef" => ["void", ["long", "long", "long"]],
+ "glScissor" => ["void", ["long", "long", "long", "long"]],
+ "glSelectBuffer" => ["void", ["long", "ptr"]],
+ "glSeparableFilter2D" => ["void", ["long", "long", "long", "long", "long", "long", "ptr", "ptr"]],
+ "glShadeModel" => ["void", ["long"]],
+ "glStencilFunc" => ["void", ["long", "long", "long"]],
+ "glStencilMask" => ["void", ["long"]],
+ "glStencilOp" => ["void", ["long", "long", "long"]],
+ "glTexCoord1d" => ["void", ["double"]],
+ "glTexCoord1dv" => ["void", ["ptr"]],
+ "glTexCoord1f" => ["void", ["long"]],
+ "glTexCoord1fv" => ["void", ["ptr"]],
+ "glTexCoord1i" => ["void", ["long"]],
+ "glTexCoord1iv" => ["void", ["ptr"]],
+ "glTexCoord1s" => ["void", ["long"]],
+ "glTexCoord1sv" => ["void", ["ptr"]],
+ "glTexCoord2d" => ["void", ["double", "double"]],
+ "glTexCoord2dv" => ["void", ["ptr"]],
+ "glTexCoord2f" => ["void", ["long", "long"]],
+ "glTexCoord2fv" => ["void", ["ptr"]],
+ "glTexCoord2i" => ["void", ["long", "long"]],
+ "glTexCoord2iv" => ["void", ["ptr"]],
+ "glTexCoord2s" => ["void", ["long", "long"]],
+ "glTexCoord2sv" => ["void", ["ptr"]],
+ "glTexCoord3d" => ["void", ["double", "double", "double"]],
+ "glTexCoord3dv" => ["void", ["ptr"]],
+ "glTexCoord3f" => ["void", ["long", "long", "long"]],
+ "glTexCoord3fv" => ["void", ["ptr"]],
+ "glTexCoord3i" => ["void", ["long", "long", "long"]],
+ "glTexCoord3iv" => ["void", ["ptr"]],
+ "glTexCoord3s" => ["void", ["long", "long", "long"]],
+ "glTexCoord3sv" => ["void", ["ptr"]],
+ "glTexCoord4d" => ["void", ["double", "double", "double", "double"]],
+ "glTexCoord4dv" => ["void", ["ptr"]],
+ "glTexCoord4f" => ["void", ["long", "long", "long", "long"]],
+ "glTexCoord4fv" => ["void", ["ptr"]],
+ "glTexCoord4i" => ["void", ["long", "long", "long", "long"]],
+ "glTexCoord4iv" => ["void", ["ptr"]],
+ "glTexCoord4s" => ["void", ["long", "long", "long", "long"]],
+ "glTexCoord4sv" => ["void", ["ptr"]],
+ "glTexCoordPointer" => ["void", ["long", "long", "long", "ptr"]],
+ "glTexEnvf" => ["void", ["long", "long", "long"]],
+ "glTexEnvfv" => ["void", ["long", "long", "ptr"]],
+ "glTexEnvi" => ["void", ["long", "long", "long"]],
+ "glTexEnviv" => ["void", ["long", "long", "ptr"]],
+ "glTexGend" => ["void", ["long", "long", "double"]],
+ "glTexGendv" => ["void", ["long", "long", "ptr"]],
+ "glTexGenf" => ["void", ["long", "long", "long"]],
+ "glTexGenfv" => ["void", ["long", "long", "ptr"]],
+ "glTexGeni" => ["void", ["long", "long", "long"]],
+ "glTexGeniv" => ["void", ["long", "long", "ptr"]],
+ "glTexImage1D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "ptr"]],
+ "glTexImage2D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
+ "glTexImage3D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
+ "glTexParameterf" => ["void", ["long", "long", "long"]],
+ "glTexParameterfv" => ["void", ["long", "long", "ptr"]],
+ "glTexParameteri" => ["void", ["long", "long", "long"]],
+ "glTexParameteriv" => ["void", ["long", "long", "ptr"]],
+ "glTexSubImage1D" => ["void", ["long", "long", "long", "long", "long", "long", "ptr"]],
+ "glTexSubImage2D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
+ "glTexSubImage3D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
+ "glTranslated" => ["void", ["double", "double", "double"]],
+ "glTranslatef" => ["void", ["long", "long", "long"]],
+ "glVertex2d" => ["void", ["double", "double"]],
+ "glVertex2dv" => ["void", ["ptr"]],
+ "glVertex2f" => ["void", ["long", "long"]],
+ "glVertex2fv" => ["void", ["ptr"]],
+ "glVertex2i" => ["void", ["long", "long"]],
+ "glVertex2iv" => ["void", ["ptr"]],
+ "glVertex2s" => ["void", ["long", "long"]],
+ "glVertex2sv" => ["void", ["ptr"]],
+ "glVertex3d" => ["void", ["double", "double", "double"]],
+ "glVertex3dv" => ["void", ["ptr"]],
+ "glVertex3f" => ["void", ["long", "long", "long"]],
+ "glVertex3fv" => ["void", ["ptr"]],
+ "glVertex3i" => ["void", ["long", "long", "long"]],
+ "glVertex3iv" => ["void", ["ptr"]],
+ "glVertex3s" => ["void", ["long", "long", "long"]],
+ "glVertex3sv" => ["void", ["ptr"]],
+ "glVertex4d" => ["void", ["double", "double", "double", "double"]],
+ "glVertex4dv" => ["void", ["ptr"]],
+ "glVertex4f" => ["void", ["long", "long", "long", "long"]],
+ "glVertex4fv" => ["void", ["ptr"]],
+ "glVertex4i" => ["void", ["long", "long", "long", "long"]],
+ "glVertex4iv" => ["void", ["ptr"]],
+ "glVertex4s" => ["void", ["long", "long", "long", "long"]],
+ "glVertex4sv" => ["void", ["ptr"]],
+ "glVertexPointer" => ["void", ["long", "long", "long", "ptr"]],
+ "glViewport" => ["void", ["long", "long", "long", "long"]],
+ "wglCopyContext" => ["long", ["long", "long", "long"]],
+ "wglCreateContext" => ["long", ["long"]],
+ "wglCreateLayerContext" => ["long", ["long", "long"]],
+ "wglDeleteContext" => ["long", ["long"]],
+ "wglDescribeLayerPlane" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "wglGetCurrentContext" => ["long", []],
+ "wglGetCurrentDC" => ["long", []],
+ "wglGetLayerPaletteEntries" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "wglGetProcAddress" => ["ptr", ["str"]],
+ "wglMakeCurrent" => ["long", ["long", "long"]],
+ "wglRealizeLayerPalette" => ["long", ["long", "long", "long"]],
+ "wglSetLayerPaletteEntries" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "wglShareLists" => ["long", ["long", "long"]],
+ "wglSwapLayerBuffers" => ["long", ["long", "long"]],
+ "wglUseFontBitmapsA" => ["long", ["long", "long", "long", "long"]],
+ "wglUseFontOutlinesA" => ["long", ["long", "long", "long", "long", "long", "long", "long", "ptr"]]
+};
+
+&wine::declare("opengl32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/psapi.pm b/programs/winetest/include/psapi.pm
new file mode 100644
index 0000000..b595f31
--- /dev/null
+++ b/programs/winetest/include/psapi.pm
@@ -0,0 +1,38 @@
+package psapi;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "QueryWorkingSet" => ["long", ["long", "ptr", "long"]],
+ "EmptyWorkingSet" => ["long", ["long"]],
+ "EnumDeviceDrivers" => ["long", ["ptr", "long", "ptr"]],
+ "EnumProcessModules" => ["long", ["long", "ptr", "long", "ptr"]],
+ "EnumProcesses" => ["long", ["ptr", "long", "ptr"]],
+ "GetDeviceDriverBaseNameA" => ["long", ["ptr", "str", "long"]],
+ "GetDeviceDriverBaseNameW" => ["long", ["ptr", "wstr", "long"]],
+ "GetDeviceDriverFileNameA" => ["long", ["ptr", "str", "long"]],
+ "GetDeviceDriverFileNameW" => ["long", ["ptr", "wstr", "long"]],
+ "GetMappedFileNameA" => ["long", ["long", "ptr", "str", "long"]],
+ "GetMappedFileNameW" => ["long", ["long", "ptr", "wstr", "long"]],
+ "GetModuleBaseNameA" => ["long", ["long", "long", "str", "long"]],
+ "GetModuleBaseNameW" => ["long", ["long", "long", "wstr", "long"]],
+ "GetModuleFileNameExA" => ["long", ["long", "long", "str", "long"]],
+ "GetModuleFileNameExW" => ["long", ["long", "long", "wstr", "long"]],
+ "GetModuleInformation" => ["long", ["long", "long", "ptr", "long"]],
+ "GetProcessMemoryInfo" => ["long", ["long", "ptr", "long"]],
+ "GetWsChanges" => ["long", ["long", "ptr", "long"]],
+ "InitializeProcessForWsWatch" => ["long", ["long"]]
+};
+
+&wine::declare("psapi",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/quartz.pm b/programs/winetest/include/quartz.pm
new file mode 100644
index 0000000..919e1e4
--- /dev/null
+++ b/programs/winetest/include/quartz.pm
@@ -0,0 +1,27 @@
+package quartz;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "AMGetErrorTextA" => ["long", ["long", "str", "long"]],
+ "AMGetErrorTextW" => ["long", ["long", "wstr", "long"]],
+ "AmpFactorToDB" => ["long", ["long"]],
+ "DBToAmpFactor" => ["long", ["long"]],
+ "DllCanUnloadNow" => ["long", []],
+ "DllGetClassObject" => ["long", ["ptr", "ptr", "ptr"]],
+ "DllRegisterServer" => ["long", []],
+ "DllUnregisterServer" => ["long", []]
+};
+
+&wine::declare("quartz",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/rasapi32.pm b/programs/winetest/include/rasapi32.pm
new file mode 100644
index 0000000..6baa6d4
--- /dev/null
+++ b/programs/winetest/include/rasapi32.pm
@@ -0,0 +1,41 @@
+package rasapi32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "RasDeleteEntryA" => ["long", ["str", "str"]],
+ "RasDeleteEntryW" => ["long", ["wstr", "wstr"]],
+ "RasEnumAutodialAddressesA" => ["long", ["ptr", "ptr", "ptr"]],
+ "RasEnumAutodialAddressesW" => ["long", ["ptr", "ptr", "ptr"]],
+ "RasEnumDevicesA" => ["long", ["ptr", "ptr", "ptr"]],
+ "RasEnumDevicesW" => ["long", ["ptr", "ptr", "ptr"]],
+ "RasGetAutodialAddressA" => ["long", ["str", "ptr", "ptr", "ptr", "ptr"]],
+ "RasGetAutodialAddressW" => ["long", ["wstr", "ptr", "ptr", "ptr", "ptr"]],
+ "RasGetAutodialEnableA" => ["long", ["long", "ptr"]],
+ "RasGetAutodialEnableW" => ["long", ["long", "ptr"]],
+ "RasGetAutodialParamA" => ["long", ["long", "ptr", "ptr"]],
+ "RasGetAutodialParamW" => ["long", ["long", "ptr", "ptr"]],
+ "RasSetAutodialAddressA" => ["long", ["str", "long", "ptr", "long", "long"]],
+ "RasSetAutodialAddressW" => ["long", ["wstr", "long", "ptr", "long", "long"]],
+ "RasSetAutodialEnableA" => ["long", ["long", "long"]],
+ "RasSetAutodialEnableW" => ["long", ["long", "long"]],
+ "RasSetAutodialParamA" => ["long", ["long", "ptr", "long"]],
+ "RasSetAutodialParamW" => ["long", ["long", "ptr", "long"]],
+ "RasEnumConnectionsA" => ["long", ["ptr", "ptr", "ptr"]],
+ "RasEnumEntriesA" => ["long", ["str", "str", "ptr", "ptr", "ptr"]],
+ "RasGetEntryDialParamsA" => ["long", ["str", "ptr", "ptr"]],
+ "RasHangUpA" => ["long", ["long"]]
+};
+
+&wine::declare("rasapi32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/riched32.pm b/programs/winetest/include/riched32.pm
new file mode 100644
index 0000000..0e6f7af
--- /dev/null
+++ b/programs/winetest/include/riched32.pm
@@ -0,0 +1,20 @@
+package riched32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DllGetVersion" => ["long", ["ptr"]]
+};
+
+&wine::declare("riched32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/rpcrt4.pm b/programs/winetest/include/rpcrt4.pm
new file mode 100644
index 0000000..3d5da6d
--- /dev/null
+++ b/programs/winetest/include/rpcrt4.pm
@@ -0,0 +1,39 @@
+package rpcrt4;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "NdrDllRegisterProxy" => ["long", ["long", "ptr", "ptr"]],
+ "RpcBindingFromStringBindingA" => ["long", ["str", "ptr"]],
+ "RpcBindingFromStringBindingW" => ["long", ["wstr", "ptr"]],
+ "RpcServerListen" => ["long", ["long", "long", "long"]],
+ "RpcServerRegisterAuthInfoA" => ["long", ["str", "long", "ptr", "ptr"]],
+ "RpcServerRegisterAuthInfoW" => ["long", ["wstr", "long", "ptr", "ptr"]],
+ "RpcServerRegisterIf" => ["long", ["long", "ptr", "ptr"]],
+ "RpcServerRegisterIf2" => ["long", ["long", "ptr", "ptr", "long", "long", "long", "ptr"]],
+ "RpcServerRegisterIfEx" => ["long", ["long", "ptr", "ptr", "long", "long", "ptr"]],
+ "RpcServerUseProtseqEpA" => ["long", ["str", "long", "str", "ptr"]],
+ "RpcServerUseProtseqEpExA" => ["long", ["str", "long", "str", "ptr", "ptr"]],
+ "RpcServerUseProtseqEpExW" => ["long", ["wstr", "long", "wstr", "ptr", "ptr"]],
+ "RpcServerUseProtseqEpW" => ["long", ["wstr", "long", "wstr", "ptr"]],
+ "RpcStringBindingComposeA" => ["long", ["str", "str", "str", "str", "str", "ptr"]],
+ "RpcStringBindingComposeW" => ["long", ["wstr", "wstr", "wstr", "wstr", "wstr", "ptr"]],
+ "RpcStringFreeA" => ["long", ["ptr"]],
+ "UuidCreate" => ["long", ["ptr"]],
+ "UuidCreateSequential" => ["long", ["ptr"]],
+ "UuidHash" => ["ptr", ["ptr", "ptr"]],
+ "UuidToStringA" => ["long", ["ptr", "ptr"]]
+};
+
+&wine::declare("rpcrt4",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/serialui.pm b/programs/winetest/include/serialui.pm
new file mode 100644
index 0000000..a72153d
--- /dev/null
+++ b/programs/winetest/include/serialui.pm
@@ -0,0 +1,23 @@
+package serialui;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "EnumPropPages" => ["long", ["ptr", "ptr", "long"]],
+ "drvCommConfigDialog" => ["long", ["str", "long", "ptr"]],
+ "drvSetDefaultCommConfig" => ["long", ["str", "ptr", "long"]],
+ "drvGetDefaultCommConfig" => ["long", ["str", "ptr", "ptr"]]
+};
+
+&wine::declare("serialui",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/setupapi.pm b/programs/winetest/include/setupapi.pm
new file mode 100644
index 0000000..604edab
--- /dev/null
+++ b/programs/winetest/include/setupapi.pm
@@ -0,0 +1,39 @@
+package setupapi;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "SetupCloseFileQueue" => ["void", ["long"]],
+ "SetupCloseInfFile" => ["void", ["long"]],
+ "SetupCommitFileQueueA" => ["long", ["long", "long", "ptr", "ptr"]],
+ "SetupDefaultQueueCallbackA" => ["long", ["ptr", "long", "long", "long"]],
+ "SetupFindFirstLineA" => ["long", ["long", "str", "str", "ptr"]],
+ "SetupFindNextLine" => ["long", ["ptr", "ptr"]],
+ "SetupGetLineByIndexA" => ["long", ["long", "str", "long", "ptr"]],
+ "SetupGetLineTextA" => ["long", ["ptr", "long", "str", "str", "str", "long", "ptr"]],
+ "SetupGetStringFieldA" => ["long", ["ptr", "long", "str", "long", "ptr"]],
+ "SetupInitDefaultQueueCallback" => ["ptr", ["long"]],
+ "SetupInitDefaultQueueCallbackEx" => ["ptr", ["long", "long", "long", "long", "ptr"]],
+ "SetupInstallFromInfSectionA" => ["long", ["long", "long", "str", "long", "long", "str", "long", "ptr", "ptr", "long", "ptr"]],
+ "SetupIterateCabinetA" => ["long", ["str", "long", "ptr", "ptr"]],
+ "SetupIterateCabinetW" => ["long", ["str", "long", "ptr", "ptr"]],
+ "SetupOpenAppendInfFileA" => ["long", ["str", "long", "ptr"]],
+ "SetupOpenFileQueue" => ["long", []],
+ "SetupOpenInfFileA" => ["long", ["str", "str", "long", "ptr"]],
+ "SetupQueueCopyA" => ["long", ["long", "str", "str", "str", "str", "str", "str", "str", "long"]],
+ "SetupSetDirectoryIdA" => ["long", ["long", "long", "str"]],
+ "SetupTermDefaultQueueCallback" => ["void", ["ptr"]]
+};
+
+&wine::declare("setupapi",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/shdocvw.pm b/programs/winetest/include/shdocvw.pm
new file mode 100644
index 0000000..26f6d04
--- /dev/null
+++ b/programs/winetest/include/shdocvw.pm
@@ -0,0 +1,25 @@
+package shdocvw;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DllCanUnloadNow" => ["long", []],
+ "DllGetVersion" => ["long", ["ptr"]],
+ "DllInstall" => ["long", ["long", "wstr"]],
+ "DllRegisterServer" => ["long", ["undef"]],
+ "DllUnregisterServer" => ["long", ["undef"]],
+ "DllGetClassObject" => ["long", ["ptr", "ptr", "ptr"]]
+};
+
+&wine::declare("shdocvw",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/shell32.pm b/programs/winetest/include/shell32.pm
new file mode 100644
index 0000000..b00e398
--- /dev/null
+++ b/programs/winetest/include/shell32.pm
@@ -0,0 +1,244 @@
+package shell32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "SHRegDeleteKeyA" => ["long", ["long", "str"]],
+ "SHChangeNotifyRegister" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
+ "SHChangeNotifyDeregister" => ["long", ["long"]],
+ "SHChangeNotifyUpdateEntryList" => ["long", ["long", "long", "long", "long"]],
+ "ILGetDisplayName" => ["long", ["ptr", "str"]],
+ "ILFindLastID" => ["ptr", ["ptr"]],
+ "ILRemoveLastID" => ["long", ["ptr"]],
+ "ILClone" => ["ptr", ["ptr"]],
+ "ILCloneFirst" => ["ptr", ["ptr"]],
+ "ILGlobalClone" => ["ptr", ["ptr"]],
+ "ILIsEqual" => ["long", ["ptr", "ptr"]],
+ "ILIsParent" => ["long", ["ptr", "ptr", "long"]],
+ "ILFindChild" => ["ptr", ["ptr", "ptr"]],
+ "ILCombine" => ["ptr", ["ptr", "ptr"]],
+ "ILLoadFromStream" => ["long", ["ptr", "ptr"]],
+ "ILSaveToStream" => ["long", ["ptr", "ptr"]],
+ "SHILCreateFromPath" => ["long", ["ptr", "ptr", "ptr"]],
+ "PathIsRoot" => ["long", ["ptr"]],
+ "PathBuildRoot" => ["ptr", ["ptr", "long"]],
+ "PathFindExtension" => ["ptr", ["ptr"]],
+ "PathAddBackslash" => ["ptr", ["ptr"]],
+ "PathRemoveBlanks" => ["void", ["ptr"]],
+ "PathFindFileName" => ["ptr", ["ptr"]],
+ "PathRemoveFileSpec" => ["long", ["ptr"]],
+ "PathAppend" => ["long", ["ptr", "ptr"]],
+ "PathCombine" => ["ptr", ["ptr", "ptr", "ptr"]],
+ "PathStripPath" => ["void", ["ptr"]],
+ "PathIsUNC" => ["long", ["ptr"]],
+ "PathIsRelative" => ["long", ["ptr"]],
+ "PathIsExe" => ["long", ["ptr"]],
+ "PathFileExists" => ["long", ["ptr"]],
+ "PathMatchSpec" => ["long", ["ptr", "ptr"]],
+ "PathMakeUniqueName" => ["long", ["ptr", "long", "ptr", "ptr", "ptr"]],
+ "PathSetDlgItemPath" => ["long", ["long", "long", "ptr"]],
+ "PathQualify" => ["long", ["ptr"]],
+ "PathStripToRoot" => ["long", ["ptr"]],
+ "PathResolve" => ["long", ["ptr", "ptr", "long"]],
+ "PathGetArgs" => ["ptr", ["ptr"]],
+ "DoEnvironmentSubst" => ["long", ["ptr", "ptr"]],
+ "DragAcceptFiles" => ["void", ["long", "long"]],
+ "PathQuoteSpaces" => ["ptr", ["ptr"]],
+ "PathUnquoteSpaces" => ["void", ["ptr"]],
+ "PathGetDriveNumber" => ["long", ["ptr"]],
+ "ParseField" => ["long", ["ptr", "long", "ptr", "long"]],
+ "ExitWindowsDialog" => ["void", ["long"]],
+ "RunFileDlg" => ["void", ["long", "long", "str", "str", "str", "long"]],
+ "PickIconDlg" => ["long", ["long", "str", "long", "ptr"]],
+ "GetFileNameFromBrowse" => ["long", ["long", "str", "long", "str", "str", "str", "str"]],
+ "DriveType" => ["long", ["long"]],
+ "IsNetDrive" => ["long", ["long"]],
+ "Shell_MergeMenus" => ["long", ["long", "long", "long", "long", "long", "long"]],
+ "SHGetSetSettings" => ["void", ["long", "long", "long"]],
+ "SHCreateDefClassObject" => ["long", ["ptr", "ptr", "ptr", "ptr", "ptr"]],
+ "Shell_GetImageList" => ["long", ["ptr", "ptr"]],
+ "Shell_GetCachedImageIndex" => ["long", ["ptr", "long", "long"]],
+ "SHShellFolderView_Message" => ["long", ["long", "long", "long"]],
+ "PathYetAnotherMakeUniqueName" => ["long", ["str", "str", "str", "str"]],
+ "SHMapPIDLToSystemImageListIndex" => ["long", ["ptr", "ptr", "ptr"]],
+ "OleStrToStrN" => ["long", ["ptr", "long", "ptr", "long"]],
+ "StrToOleStrN" => ["long", ["wstr", "long", "ptr", "long"]],
+ "DragFinish" => ["void", ["long"]],
+ "DragQueryFile" => ["long", ["long", "long", "str", "long"]],
+ "DragQueryFileA" => ["long", ["long", "long", "str", "long"]],
+ "CIDLData_CreateFromIDArray" => ["long", ["ptr", "long", "ptr", "ptr"]],
+ "SHRegisterDragDrop" => ["long", ["long", "ptr"]],
+ "SHRevokeDragDrop" => ["long", ["long"]],
+ "SHDoDragDrop" => ["long", ["long", "ptr", "ptr", "long", "ptr"]],
+ "SHCloneSpecialIDList" => ["ptr", ["long", "long", "long"]],
+ "PathGetShortPath" => ["ptr", ["ptr"]],
+ "SHLogILFromFSIL" => ["ptr", ["ptr"]],
+ "StrRetToStrN" => ["long", ["ptr", "long", "ptr", "ptr"]],
+ "SHWaitForFileToOpen" => ["long", ["ptr", "long", "long"]],
+ "SHGetRealIDL" => ["ptr", ["ptr", "ptr", "long"]],
+ "SetAppStartingCursor" => ["long", ["long", "long"]],
+ "SHRestricted" => ["long", ["long"]],
+ "SHCoCreateInstance" => ["long", ["str", "ptr", "ptr", "ptr", "ptr"]],
+ "SignalFileOpen" => ["long", ["long"]],
+ "FileMenu_DeleteAllItems" => ["long", ["long"]],
+ "FileMenu_DrawItem" => ["long", ["long", "ptr"]],
+ "FileMenu_FindSubMenuByPidl" => ["long", ["long", "ptr"]],
+ "FileMenu_GetLastSelectedItemPidls" => ["long", ["long", "ptr", "ptr"]],
+ "FileMenu_HandleMenuChar" => ["long", ["long", "long"]],
+ "FileMenu_InitMenuPopup" => ["long", ["long"]],
+ "FileMenu_InsertUsingPidl" => ["long", ["long", "long", "ptr", "long", "long", "ptr"]],
+ "FileMenu_Invalidate" => ["void", ["long"]],
+ "FileMenu_MeasureItem" => ["long", ["long", "ptr"]],
+ "FileMenu_ReplaceUsingPidl" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "FileMenu_Create" => ["long", ["long", "long", "long", "long", "long"]],
+ "FileMenu_AppendItem" => ["long", ["long", "ptr", "long", "long", "long", "long"]],
+ "FileMenu_TrackPopupMenuEx" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
+ "FileMenu_DeleteItemByCmd" => ["long", ["long", "long"]],
+ "FileMenu_Destroy" => ["void", ["long"]],
+ "IsLFNDrive" => ["long", ["str"]],
+ "FileMenu_AbortInitMenu" => ["void", []],
+ "SHFlushClipboard" => ["long", []],
+ "RunDLL_CallEntry16" => ["long", ["long", "long", "long", "long", "long"]],
+ "SHFreeUnusedLibraries" => ["void", []],
+ "FileMenu_AppendFilesForPidl" => ["long", ["long", "ptr", "long"]],
+ "FileMenu_AddFilesForPidl" => ["long", ["long", "long", "long", "ptr", "long", "long", "ptr"]],
+ "SHOutOfMemoryMessageBox" => ["long", ["long", "str", "long"]],
+ "SHWinHelp" => ["long", ["long", "long", "long", "long"]],
+ "DllGetClassObject" => ["long", ["ptr", "ptr", "ptr"]],
+ "DragQueryFileW" => ["long", ["long", "long", "wstr", "long"]],
+ "DragQueryPoint" => ["long", ["long", "ptr"]],
+ "DAD_SetDragImage" => ["long", ["long", "ptr"]],
+ "DAD_ShowDragImage" => ["long", ["long"]],
+ "FileMenu_DeleteItemByIndex" => ["long", ["long", "long"]],
+ "FileMenu_DeleteItemByFirstID" => ["long", ["long", "long"]],
+ "FileMenu_DeleteSeparator" => ["long", ["long"]],
+ "FileMenu_EnableItemByCmd" => ["long", ["long", "long", "long"]],
+ "FileMenu_GetItemExtent" => ["long", ["long", "long"]],
+ "PathFindOnPath" => ["long", ["ptr", "ptr"]],
+ "RLBuildListOfPaths" => ["long", []],
+ "SHCLSIDFromString" => ["long", ["ptr", "ptr"]],
+ "SHFind_InitMenuPopup" => ["ptr", ["long", "long", "long", "long"]],
+ "SHLoadOLE" => ["long", ["long"]],
+ "ILGetSize" => ["long", ["ptr"]],
+ "ILGetNext" => ["ptr", ["ptr"]],
+ "ILAppend" => ["ptr", ["ptr", "ptr", "long"]],
+ "ILFree" => ["long", ["ptr"]],
+ "ILGlobalFree" => ["void", ["ptr"]],
+ "ILCreateFromPath" => ["ptr", ["ptr"]],
+ "PathGetExtension" => ["ptr", ["ptr", "long", "long"]],
+ "PathIsDirectory" => ["long", ["ptr"]],
+ "SHRunControlPanel" => ["long", ["long", "long"]],
+ "SHSimpleIDListFromPath" => ["ptr", ["ptr"]],
+ "StrToOleStr" => ["long", ["wstr", "ptr"]],
+ "Win32DeleteFile" => ["long", ["str"]],
+ "SHCreateDirectory" => ["long", ["ptr", "str"]],
+ "CallCPLEntry16" => ["long", ["long", "ptr", "long", "long", "long", "long"]],
+ "SHAddFromPropSheetExtArray" => ["long", ["long", "long", "long"]],
+ "SHCreatePropSheetExtArray" => ["long", ["long", "str", "long"]],
+ "SHDestroyPropSheetExtArray" => ["long", ["long"]],
+ "SHReplaceFromPropSheetExtArray" => ["long", ["long", "long", "long", "long"]],
+ "PathCleanupSpec" => ["long", ["ptr", "ptr"]],
+ "SHValidateUNC" => ["long", ["long", "long", "long"]],
+ "SHCreateShellFolderViewEx" => ["long", ["ptr", "ptr"]],
+ "SHGetSpecialFolderPath" => ["long", ["long", "ptr", "long", "long"]],
+ "SHSetInstanceExplorer" => ["long", ["ptr"]],
+ "RegisterShellHook" => ["long", ["long", "long"]],
+ "ArrangeWindows" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "SHFree" => ["void", ["ptr"]],
+ "SHAlloc" => ["ptr", ["long"]],
+ "SHAbortInvokeCommand" => ["long", []],
+ "SHInitRestricted" => ["long", ["str", "str"]],
+ "SHGetDataFromIDListA" => ["long", ["ptr", "ptr", "long", "ptr", "long"]],
+ "SHGetDataFromIDListW" => ["long", ["ptr", "ptr", "long", "ptr", "long"]],
+ "PathParseIconLocation" => ["long", ["ptr"]],
+ "PathRemoveExtension" => ["void", ["ptr"]],
+ "PathRemoveArgs" => ["void", ["ptr"]],
+ "SheChangeDirW" => ["long", ["wstr"]],
+ "SheGetDirW" => ["long", ["wstr", "wstr"]],
+ "ShellAboutA" => ["long", ["long", "str", "str", "long"]],
+ "ShellAboutW" => ["long", ["long", "wstr", "wstr", "long"]],
+ "ShellExecuteA" => ["long", ["long", "str", "str", "str", "str", "long"]],
+ "ShellExecuteEx" => ["long", ["ptr"]],
+ "ShellExecuteExA" => ["long", ["ptr"]],
+ "ShellExecuteExW" => ["long", ["ptr"]],
+ "ShellExecuteW" => ["long", ["long", "wstr", "wstr", "wstr", "wstr", "long"]],
+ "Shell_NotifyIcon" => ["long", ["long", "ptr"]],
+ "Shell_NotifyIconA" => ["long", ["long", "ptr"]],
+ "Shell_NotifyIconW" => ["long", ["long", "ptr"]],
+ "SHRegOpenKeyA" => ["long", ["long", "str", "ptr"]],
+ "SHRegOpenKeyW" => ["long", ["long", "wstr", "ptr"]],
+ "SHRegQueryValueExA" => ["long", ["long", "str", "ptr", "ptr", "ptr", "ptr"]],
+ "SHRegQueryValueW" => ["long", ["long", "wstr", "wstr", "ptr"]],
+ "SHRegQueryValueExW" => ["long", ["long", "wstr", "ptr", "ptr", "ptr", "ptr"]],
+ "SHRegDeleteKeyW" => ["long", ["long", "wstr"]],
+ "SHAllocShared" => ["long", ["ptr", "long", "long"]],
+ "SHLockShared" => ["ptr", ["long", "long"]],
+ "SHUnlockShared" => ["long", ["ptr"]],
+ "SHFreeShared" => ["long", ["long", "long"]],
+ "NTSHChangeNotifyRegister" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
+ "NTSHChangeNotifyDeregister" => ["long", ["long"]],
+ "SHChangeNotification_Lock" => ["long", ["long", "long", "undef", "ptr"]],
+ "SHChangeNotification_Unlock" => ["long", ["long"]],
+ "PathIsSameRoot" => ["long", ["ptr", "ptr"]],
+ "ReadCabinetState" => ["long", ["long", "long"]],
+ "WriteCabinetState" => ["long", ["long"]],
+ "PathProcessCommand" => ["long", ["ptr", "ptr", "long", "long"]],
+ "FileIconInit" => ["long", ["long"]],
+ "IsUserAdmin" => ["long", []],
+ "CommandLineToArgvW" => ["ptr", ["wstr", "ptr"]],
+ "Control_FillCache_RunDLL" => ["long", ["long", "long", "long", "long"]],
+ "Control_RunDLL" => ["void", ["long", "long", "str", "long"]],
+ "DllCanUnloadNow" => ["long", []],
+ "DllGetVersion" => ["long", ["ptr"]],
+ "DllInstall" => ["long", ["long", "wstr"]],
+ "DoEnvironmentSubstA" => ["long", ["str", "str"]],
+ "DoEnvironmentSubstW" => ["long", ["wstr", "wstr"]],
+ "DuplicateIcon" => ["long", ["long", "long"]],
+ "ExtractAssociatedIconA" => ["long", ["long", "str", "ptr"]],
+ "ExtractIconA" => ["long", ["long", "str", "long"]],
+ "ExtractIconEx" => ["long", ["ptr", "long", "ptr", "ptr", "long"]],
+ "ExtractIconExA" => ["long", ["str", "long", "ptr", "ptr", "long"]],
+ "ExtractIconExW" => ["long", ["wstr", "long", "ptr", "ptr", "long"]],
+ "ExtractIconW" => ["long", ["long", "wstr", "long"]],
+ "FindExecutableA" => ["long", ["str", "str", "str"]],
+ "FindExecutableW" => ["long", ["wstr", "wstr", "wstr"]],
+ "FreeIconList" => ["void", ["long"]],
+ "SHAddToRecentDocs" => ["long", ["long", "ptr"]],
+ "SHAppBarMessage" => ["long", ["long", "ptr"]],
+ "SHBrowseForFolder" => ["ptr", ["ptr"]],
+ "SHBrowseForFolderA" => ["ptr", ["ptr"]],
+ "SHChangeNotify" => ["void", ["long", "long", "ptr", "ptr"]],
+ "SHFileOperation" => ["long", ["ptr"]],
+ "SHFileOperationA" => ["long", ["ptr"]],
+ "SHFileOperationW" => ["long", ["ptr"]],
+ "SHGetDesktopFolder" => ["long", ["ptr"]],
+ "SHGetFileInfo" => ["long", ["ptr", "long", "ptr", "long", "long"]],
+ "SHGetFileInfoA" => ["long", ["str", "long", "ptr", "long", "long"]],
+ "SHGetFileInfoW" => ["long", ["wstr", "long", "ptr", "long", "long"]],
+ "SHGetFolderLocation" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "SHGetFolderPathA" => ["long", ["long", "long", "long", "long", "str"]],
+ "SHGetFolderPathW" => ["long", ["long", "long", "long", "long", "wstr"]],
+ "SHGetInstanceExplorer" => ["long", ["ptr"]],
+ "SHGetMalloc" => ["long", ["ptr"]],
+ "SHGetPathFromIDList" => ["long", ["ptr", "ptr"]],
+ "SHGetPathFromIDListA" => ["long", ["ptr", "str"]],
+ "SHGetPathFromIDListW" => ["long", ["ptr", "wstr"]],
+ "SHGetSettings" => ["void", ["ptr", "long"]],
+ "SHGetSpecialFolderLocation" => ["long", ["long", "long", "ptr"]],
+ "SHGetSpecialFolderPathA" => ["long", ["long", "str", "long", "long"]],
+ "SHHelpShortcuts_RunDLL" => ["long", ["long", "long", "long", "long"]],
+ "SHLoadInProc" => ["long", ["ptr"]]
+};
+
+&wine::declare("shell32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/shlwapi.pm b/programs/winetest/include/shlwapi.pm
new file mode 100644
index 0000000..277fd35
--- /dev/null
+++ b/programs/winetest/include/shlwapi.pm
@@ -0,0 +1,230 @@
+package shlwapi;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "ChrCmpIA" => ["long", ["long", "long"]],
+ "ChrCmpIW" => ["long", ["long", "long"]],
+ "ColorHLSToRGB" => ["long", ["long", "long", "long"]],
+ "ColorRGBToHLS" => ["void", ["long", "ptr", "ptr", "ptr"]],
+ "DllGetVersion" => ["long", ["ptr"]],
+ "GetMenuPosFromID" => ["long", ["long", "long"]],
+ "HashData" => ["long", ["ptr", "long", "ptr", "long"]],
+ "PathAddBackslashA" => ["str", ["str"]],
+ "PathAddBackslashW" => ["wstr", ["wstr"]],
+ "PathAddExtensionA" => ["long", ["str", "str"]],
+ "PathAddExtensionW" => ["long", ["wstr", "wstr"]],
+ "PathAppendA" => ["long", ["str", "str"]],
+ "PathAppendW" => ["long", ["wstr", "wstr"]],
+ "PathBuildRootA" => ["str", ["str", "long"]],
+ "PathBuildRootW" => ["wstr", ["wstr", "long"]],
+ "PathCanonicalizeA" => ["long", ["str", "str"]],
+ "PathCanonicalizeW" => ["long", ["wstr", "wstr"]],
+ "PathCombineA" => ["str", ["str", "str", "str"]],
+ "PathCombineW" => ["wstr", ["wstr", "wstr", "wstr"]],
+ "PathCommonPrefixA" => ["long", ["str", "str", "str"]],
+ "PathCommonPrefixW" => ["long", ["wstr", "wstr", "wstr"]],
+ "PathCompactPathA" => ["long", ["long", "str", "long"]],
+ "PathCompactPathExA" => ["long", ["str", "str", "long", "long"]],
+ "PathCompactPathExW" => ["long", ["wstr", "wstr", "long", "long"]],
+ "PathCompactPathW" => ["long", ["long", "wstr", "long"]],
+ "PathCreateFromUrlA" => ["long", ["str", "str", "ptr", "long"]],
+ "PathCreateFromUrlW" => ["long", ["wstr", "wstr", "ptr", "long"]],
+ "PathFileExistsA" => ["long", ["str"]],
+ "PathFileExistsW" => ["long", ["wstr"]],
+ "PathFindExtensionA" => ["str", ["str"]],
+ "PathFindExtensionW" => ["wstr", ["wstr"]],
+ "PathFindFileNameA" => ["str", ["str"]],
+ "PathFindFileNameW" => ["wstr", ["wstr"]],
+ "PathFindNextComponentA" => ["str", ["str"]],
+ "PathFindNextComponentW" => ["wstr", ["wstr"]],
+ "PathFindOnPathA" => ["long", ["str", "ptr"]],
+ "PathFindOnPathW" => ["long", ["wstr", "ptr"]],
+ "PathGetArgsA" => ["str", ["str"]],
+ "PathGetArgsW" => ["wstr", ["wstr"]],
+ "PathGetCharTypeA" => ["long", ["long"]],
+ "PathGetCharTypeW" => ["long", ["long"]],
+ "PathGetDriveNumberA" => ["long", ["str"]],
+ "PathGetDriveNumberW" => ["long", ["wstr"]],
+ "PathIsContentTypeA" => ["long", ["str", "str"]],
+ "PathIsContentTypeW" => ["long", ["wstr", "wstr"]],
+ "PathIsDirectoryA" => ["long", ["str"]],
+ "PathIsDirectoryW" => ["long", ["wstr"]],
+ "PathIsFileSpecA" => ["long", ["str"]],
+ "PathIsFileSpecW" => ["long", ["wstr"]],
+ "PathIsPrefixA" => ["long", ["str", "str"]],
+ "PathIsPrefixW" => ["long", ["wstr", "wstr"]],
+ "PathIsRelativeA" => ["long", ["str"]],
+ "PathIsRelativeW" => ["long", ["wstr"]],
+ "PathIsRootA" => ["long", ["str"]],
+ "PathIsRootW" => ["long", ["wstr"]],
+ "PathIsSameRootA" => ["long", ["str", "str"]],
+ "PathIsSameRootW" => ["long", ["wstr", "wstr"]],
+ "PathIsSystemFolderA" => ["long", ["str", "long"]],
+ "PathIsSystemFolderW" => ["long", ["wstr", "long"]],
+ "PathIsUNCA" => ["long", ["str"]],
+ "PathIsUNCServerA" => ["long", ["str"]],
+ "PathIsUNCServerShareA" => ["long", ["str"]],
+ "PathIsUNCServerShareW" => ["long", ["wstr"]],
+ "PathIsUNCServerW" => ["long", ["wstr"]],
+ "PathIsUNCW" => ["long", ["wstr"]],
+ "PathIsURLA" => ["long", ["str"]],
+ "PathIsURLW" => ["long", ["wstr"]],
+ "PathMakePrettyA" => ["long", ["str"]],
+ "PathMakePrettyW" => ["long", ["wstr"]],
+ "PathMakeSystemFolderA" => ["long", ["str"]],
+ "PathMakeSystemFolderW" => ["long", ["wstr"]],
+ "PathMatchSpecA" => ["long", ["str", "str"]],
+ "PathMatchSpecW" => ["long", ["wstr", "wstr"]],
+ "PathParseIconLocationA" => ["long", ["str"]],
+ "PathParseIconLocationW" => ["long", ["wstr"]],
+ "PathQuoteSpacesA" => ["str", ["str"]],
+ "PathQuoteSpacesW" => ["wstr", ["wstr"]],
+ "PathRelativePathToA" => ["long", ["str", "str", "long", "str", "long"]],
+ "PathRelativePathToW" => ["long", ["wstr", "wstr", "long", "wstr", "long"]],
+ "PathRemoveArgsA" => ["void", ["str"]],
+ "PathRemoveArgsW" => ["void", ["wstr"]],
+ "PathRemoveBackslashA" => ["str", ["str"]],
+ "PathRemoveBackslashW" => ["wstr", ["wstr"]],
+ "PathRemoveBlanksA" => ["void", ["str"]],
+ "PathRemoveBlanksW" => ["void", ["wstr"]],
+ "PathRemoveExtensionA" => ["void", ["str"]],
+ "PathRemoveExtensionW" => ["void", ["wstr"]],
+ "PathRemoveFileSpecA" => ["long", ["str"]],
+ "PathRemoveFileSpecW" => ["long", ["wstr"]],
+ "PathRenameExtensionA" => ["long", ["str", "str"]],
+ "PathRenameExtensionW" => ["long", ["wstr", "wstr"]],
+ "PathSearchAndQualifyA" => ["long", ["str", "str", "long"]],
+ "PathSearchAndQualifyW" => ["long", ["wstr", "wstr", "long"]],
+ "PathSetDlgItemPathA" => ["long", ["long", "long", "str"]],
+ "PathSetDlgItemPathW" => ["long", ["long", "long", "wstr"]],
+ "PathSkipRootA" => ["str", ["str"]],
+ "PathSkipRootW" => ["wstr", ["wstr"]],
+ "PathStripPathA" => ["void", ["str"]],
+ "PathStripPathW" => ["void", ["wstr"]],
+ "PathStripToRootA" => ["long", ["str"]],
+ "PathStripToRootW" => ["long", ["wstr"]],
+ "PathUnmakeSystemFolderA" => ["long", ["str"]],
+ "PathUnmakeSystemFolderW" => ["long", ["wstr"]],
+ "PathUnquoteSpacesA" => ["void", ["str"]],
+ "PathUnquoteSpacesW" => ["void", ["wstr"]],
+ "SHCreateShellPalette" => ["long", ["long"]],
+ "SHDeleteEmptyKeyA" => ["long", ["long", "str"]],
+ "SHDeleteEmptyKeyW" => ["long", ["long", "wstr"]],
+ "SHDeleteKeyA" => ["long", ["long", "str"]],
+ "SHDeleteKeyW" => ["long", ["long", "wstr"]],
+ "SHDeleteOrphanKeyA" => ["long", ["long", "str"]],
+ "SHDeleteOrphanKeyW" => ["long", ["long", "wstr"]],
+ "SHDeleteValueA" => ["long", ["long", "str", "str"]],
+ "SHDeleteValueW" => ["long", ["long", "wstr", "wstr"]],
+ "SHEnumKeyExA" => ["long", ["long", "long", "str", "ptr"]],
+ "SHEnumKeyExW" => ["long", ["long", "long", "wstr", "ptr"]],
+ "SHEnumValueA" => ["long", ["long", "long", "str", "ptr", "ptr", "ptr", "ptr"]],
+ "SHEnumValueW" => ["long", ["long", "long", "wstr", "ptr", "ptr", "ptr", "ptr"]],
+ "SHGetInverseCMAP" => ["long", ["ptr", "long"]],
+ "SHGetValueA" => ["long", ["long", "str", "str", "ptr", "ptr", "ptr"]],
+ "SHGetValueW" => ["long", ["long", "wstr", "wstr", "ptr", "ptr", "ptr"]],
+ "SHIsLowMemoryMachine" => ["long", ["long"]],
+ "SHOpenRegStream2A" => ["ptr", ["long", "str", "str", "long"]],
+ "SHOpenRegStream2W" => ["ptr", ["long", "wstr", "wstr", "long"]],
+ "SHOpenRegStreamA" => ["ptr", ["long", "str", "str", "long"]],
+ "SHOpenRegStreamW" => ["ptr", ["long", "wstr", "wstr", "long"]],
+ "SHQueryInfoKeyA" => ["long", ["long", "ptr", "ptr", "ptr", "ptr"]],
+ "SHQueryInfoKeyW" => ["long", ["long", "ptr", "ptr", "ptr", "ptr"]],
+ "SHQueryValueExA" => ["long", ["long", "str", "ptr", "ptr", "ptr", "ptr"]],
+ "SHQueryValueExW" => ["long", ["long", "wstr", "ptr", "ptr", "ptr", "ptr"]],
+ "SHRegCloseUSKey" => ["long", ["long"]],
+ "SHRegDuplicateHKey" => ["long", ["long"]],
+ "SHRegEnumUSKeyA" => ["long", ["long", "long", "str", "ptr", "long"]],
+ "SHRegEnumUSKeyW" => ["long", ["long", "long", "wstr", "ptr", "long"]],
+ "SHRegGetBoolUSValueA" => ["long", ["str", "str", "long", "long"]],
+ "SHRegGetBoolUSValueW" => ["long", ["wstr", "wstr", "long", "long"]],
+ "SHRegGetPathA" => ["long", ["long", "str", "str", "str", "long"]],
+ "SHRegGetPathW" => ["long", ["long", "wstr", "wstr", "wstr", "long"]],
+ "SHRegGetUSValueA" => ["long", ["str", "str", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
+ "SHRegGetUSValueW" => ["long", ["wstr", "wstr", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
+ "SHRegOpenUSKeyA" => ["long", ["str", "long", "long", "ptr", "long"]],
+ "SHRegOpenUSKeyW" => ["long", ["wstr", "long", "long", "ptr", "long"]],
+ "SHRegQueryInfoUSKeyA" => ["long", ["long", "ptr", "ptr", "ptr", "ptr", "long"]],
+ "SHRegQueryInfoUSKeyW" => ["long", ["long", "ptr", "ptr", "ptr", "ptr", "long"]],
+ "SHRegQueryUSValueA" => ["long", ["long", "str", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
+ "SHRegQueryUSValueW" => ["long", ["long", "wstr", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
+ "SHRegSetPathA" => ["long", ["long", "str", "str", "str", "long"]],
+ "SHRegSetPathW" => ["long", ["long", "wstr", "wstr", "wstr", "long"]],
+ "SHRegWriteUSValueA" => ["long", ["long", "str", "long", "ptr", "long", "long"]],
+ "SHRegWriteUSValueW" => ["long", ["long", "wstr", "long", "ptr", "long", "long"]],
+ "SHSetValueA" => ["long", ["long", "str", "str", "long", "ptr", "long"]],
+ "SHSetValueW" => ["long", ["long", "wstr", "wstr", "long", "ptr", "long"]],
+ "StrCSpnA" => ["long", ["str", "str"]],
+ "StrCSpnW" => ["long", ["wstr", "wstr"]],
+ "StrCatBuffA" => ["str", ["str", "str", "long"]],
+ "StrCatBuffW" => ["wstr", ["wstr", "wstr", "long"]],
+ "StrCatW" => ["wstr", ["wstr", "wstr"]],
+ "StrChrA" => ["str", ["str", "long"]],
+ "StrChrW" => ["wstr", ["wstr", "long"]],
+ "StrCmpIW" => ["long", ["wstr", "wstr"]],
+ "StrCmpNA" => ["long", ["str", "str", "long"]],
+ "StrCmpNIA" => ["long", ["str", "str", "long"]],
+ "StrCmpNIW" => ["long", ["wstr", "wstr", "long"]],
+ "StrCmpNW" => ["long", ["wstr", "wstr", "long"]],
+ "StrCmpW" => ["long", ["wstr", "wstr"]],
+ "StrCpyNW" => ["wstr", ["wstr", "wstr", "long"]],
+ "StrCpyW" => ["wstr", ["wstr", "wstr"]],
+ "StrDupA" => ["str", ["str"]],
+ "StrDupW" => ["wstr", ["wstr"]],
+ "StrFormatByteSizeA" => ["str", ["long", "str", "long"]],
+ "StrFormatByteSizeW" => ["wstr", ["long", "wstr", "long"]],
+ "StrNCatA" => ["str", ["str", "str", "long"]],
+ "StrNCatW" => ["wstr", ["wstr", "wstr", "long"]],
+ "StrRChrA" => ["str", ["str", "str", "long"]],
+ "StrRChrIA" => ["str", ["str", "str", "long"]],
+ "StrRChrIW" => ["wstr", ["wstr", "wstr", "long"]],
+ "StrRChrW" => ["wstr", ["wstr", "wstr", "long"]],
+ "StrRetToBufA" => ["long", ["ptr", "ptr", "str", "long"]],
+ "StrRetToBufW" => ["long", ["ptr", "ptr", "wstr", "long"]],
+ "StrStrA" => ["str", ["str", "str"]],
+ "StrStrIA" => ["str", ["str", "str"]],
+ "StrStrIW" => ["wstr", ["wstr", "wstr"]],
+ "StrStrW" => ["wstr", ["wstr", "wstr"]],
+ "StrToIntA" => ["long", ["str"]],
+ "StrToIntExA" => ["long", ["str", "long", "ptr"]],
+ "StrToIntExW" => ["long", ["wstr", "long", "ptr"]],
+ "StrToIntW" => ["long", ["wstr"]],
+ "StrTrimA" => ["long", ["str", "str"]],
+ "UrlApplySchemeW" => ["long", ["wstr", "wstr", "ptr", "long"]],
+ "UrlCanonicalizeA" => ["long", ["str", "str", "ptr", "long"]],
+ "UrlCanonicalizeW" => ["long", ["wstr", "wstr", "ptr", "long"]],
+ "UrlCombineA" => ["long", ["str", "str", "str", "ptr", "long"]],
+ "UrlCombineW" => ["long", ["wstr", "wstr", "wstr", "ptr", "long"]],
+ "UrlCompareA" => ["long", ["str", "str", "long"]],
+ "UrlCompareW" => ["long", ["wstr", "wstr", "long"]],
+ "UrlEscapeA" => ["long", ["str", "str", "ptr", "long"]],
+ "UrlEscapeW" => ["long", ["wstr", "wstr", "ptr", "long"]],
+ "UrlGetLocationA" => ["str", ["str"]],
+ "UrlGetLocationW" => ["wstr", ["wstr"]],
+ "UrlGetPartA" => ["long", ["str", "str", "ptr", "long", "long"]],
+ "UrlGetPartW" => ["long", ["wstr", "wstr", "ptr", "long", "long"]],
+ "UrlHashA" => ["long", ["str", "ptr", "long"]],
+ "UrlIsA" => ["long", ["str", "long"]],
+ "UrlIsNoHistoryA" => ["long", ["str"]],
+ "UrlIsNoHistoryW" => ["long", ["wstr"]],
+ "UrlIsOpaqueA" => ["long", ["str"]],
+ "UrlIsOpaqueW" => ["long", ["wstr"]],
+ "UrlIsW" => ["long", ["wstr", "long"]],
+ "UrlUnescapeA" => ["long", ["str", "str", "ptr", "long"]],
+ "UrlUnescapeW" => ["long", ["wstr", "wstr", "ptr", "long"]],
+ "_SHGetInstanceExplorer\@4" => ["long", ["ptr"]]
+};
+
+&wine::declare("shlwapi",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/tapi32.pm b/programs/winetest/include/tapi32.pm
new file mode 100644
index 0000000..5da02f0
--- /dev/null
+++ b/programs/winetest/include/tapi32.pm
@@ -0,0 +1,131 @@
+package tapi32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "lineAccept" => ["long", ["long", "str", "long"]],
+ "lineAddProvider" => ["long", ["str", "long", "ptr"]],
+ "lineAddToConference" => ["long", ["long", "long"]],
+ "lineAnswer" => ["long", ["long", "str", "long"]],
+ "lineBlindTransfer" => ["long", ["long", "str", "long"]],
+ "lineClose" => ["long", ["long"]],
+ "lineCompleteCall" => ["long", ["long", "ptr", "long", "long"]],
+ "lineCompleteTransfer" => ["long", ["long", "long", "ptr", "long"]],
+ "lineConfigDialog" => ["long", ["long", "long", "str"]],
+ "lineConfigDialogEdit" => ["long", ["long", "long", "str", "ptr", "long", "ptr"]],
+ "lineConfigProvider" => ["long", ["long", "long"]],
+ "lineDeallocateCall" => ["long", ["long"]],
+ "lineDevSpecific" => ["long", ["long", "long", "long", "ptr", "long"]],
+ "lineDevSpecificFeature" => ["long", ["long", "long", "ptr", "long"]],
+ "lineDial" => ["long", ["long", "str", "long"]],
+ "lineDrop" => ["long", ["long", "str", "long"]],
+ "lineForward" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr"]],
+ "lineGatherDigits" => ["long", ["long", "long", "str", "long", "str", "long", "long"]],
+ "lineGenerateDigits" => ["long", ["long", "long", "str", "long"]],
+ "lineGenerateTone" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "lineGetAddressCaps" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
+ "lineGetAddressID" => ["long", ["long", "ptr", "long", "str", "long"]],
+ "lineGetAddressStatus" => ["long", ["long", "long", "ptr"]],
+ "lineGetAppPriority" => ["long", ["str", "long", "ptr", "long", "ptr", "ptr"]],
+ "lineGetCallInfo" => ["long", ["long", "ptr"]],
+ "lineGetCallStatus" => ["long", ["long", "ptr"]],
+ "lineGetConfRelatedCalls" => ["long", ["long", "ptr"]],
+ "lineGetCountry" => ["long", ["long", "long", "ptr"]],
+ "lineGetDevCaps" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "lineGetDevConfig" => ["long", ["long", "ptr", "str"]],
+ "lineGetID" => ["long", ["long", "long", "long", "long", "ptr", "str"]],
+ "lineGetIcon" => ["long", ["long", "str", "ptr"]],
+ "lineGetLineDevStatus" => ["long", ["long", "ptr"]],
+ "lineGetNewCalls" => ["long", ["long", "long", "long", "ptr"]],
+ "lineGetNumRings" => ["long", ["long", "long", "ptr"]],
+ "lineGetProviderList" => ["long", ["long", "ptr"]],
+ "lineGetRequest" => ["long", ["long", "long", "ptr"]],
+ "lineGetStatusMessages" => ["long", ["long", "ptr", "ptr"]],
+ "lineGetTranslateCaps" => ["long", ["long", "long", "ptr"]],
+ "lineHandoff" => ["long", ["long", "str", "long"]],
+ "lineHold" => ["long", ["long"]],
+ "lineInitialize" => ["long", ["ptr", "long", "ptr", "str", "ptr"]],
+ "lineMakeCall" => ["long", ["long", "ptr", "str", "long", "ptr"]],
+ "lineMonitorDigits" => ["long", ["long", "long"]],
+ "lineMonitorMedia" => ["long", ["long", "long"]],
+ "lineMonitorTones" => ["long", ["long", "ptr", "long"]],
+ "lineNegotiateAPIVersion" => ["long", ["long", "long", "long", "long", "ptr", "ptr"]],
+ "lineNegotiateExtVersion" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
+ "lineOpen" => ["long", ["long", "long", "ptr", "long", "long", "long", "long", "long", "ptr"]],
+ "linePark" => ["long", ["long", "long", "str", "ptr"]],
+ "linePickup" => ["long", ["long", "long", "ptr", "str", "str"]],
+ "linePrepareAddToConference" => ["long", ["long", "ptr", "ptr"]],
+ "lineRedirect" => ["long", ["long", "str", "long"]],
+ "lineRegisterRequestRecipient" => ["long", ["long", "long", "long", "long"]],
+ "lineReleaseUserUserInfo" => ["long", ["long"]],
+ "lineRemoveFromConference" => ["long", ["long"]],
+ "lineRemoveProvider" => ["long", ["long", "long"]],
+ "lineSecureCall" => ["long", ["long"]],
+ "lineSendUserUserInfo" => ["long", ["long", "str", "long"]],
+ "lineSetAppPriority" => ["long", ["str", "long", "ptr", "long", "str", "long"]],
+ "lineSetAppSpecific" => ["long", ["long", "long"]],
+ "lineSetCallParams" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "lineSetCallPrivilege" => ["long", ["long", "long"]],
+ "lineSetCurrentLocation" => ["long", ["long", "long"]],
+ "lineSetDevConfig" => ["long", ["long", "ptr", "long", "str"]],
+ "lineSetMediaControl" => ["long", ["long", "long", "long", "long", "ptr", "long", "ptr", "long", "ptr", "long", "ptr", "long"]],
+ "lineSetMediaMode" => ["long", ["long", "long"]],
+ "lineSetNumRings" => ["long", ["long", "long", "long"]],
+ "lineSetStatusMessages" => ["long", ["long", "long", "long"]],
+ "lineSetTerminal" => ["long", ["long", "long", "long", "long", "long", "long", "long"]],
+ "lineSetTollList" => ["long", ["long", "long", "str", "long"]],
+ "lineSetupConference" => ["long", ["long", "long", "ptr", "ptr", "long", "ptr"]],
+ "lineSetupTransfer" => ["long", ["long", "ptr", "ptr"]],
+ "lineShutdown" => ["long", ["long"]],
+ "lineSwapHold" => ["long", ["long", "long"]],
+ "lineTranslateAddress" => ["long", ["long", "long", "long", "str", "long", "long", "ptr"]],
+ "lineTranslateDialog" => ["long", ["long", "long", "long", "long", "str"]],
+ "lineUncompleteCall" => ["long", ["long", "long"]],
+ "lineUnhold" => ["long", ["long"]],
+ "lineUnpark" => ["long", ["long", "long", "ptr", "str"]],
+ "phoneClose" => ["long", ["long"]],
+ "phoneConfigDialog" => ["long", ["long", "long", "str"]],
+ "phoneDevSpecific" => ["long", ["long", "ptr", "long"]],
+ "phoneGetButtonInfo" => ["long", ["long", "long", "ptr"]],
+ "phoneGetData" => ["long", ["long", "long", "ptr", "long"]],
+ "phoneGetDevCaps" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "phoneGetDisplay" => ["long", ["long", "ptr"]],
+ "phoneGetGain" => ["long", ["long", "long", "ptr"]],
+ "phoneGetHookSwitch" => ["long", ["long", "ptr"]],
+ "phoneGetID" => ["long", ["long", "ptr", "str"]],
+ "phoneGetIcon" => ["long", ["long", "str", "ptr"]],
+ "phoneGetLamp" => ["long", ["long", "long", "ptr"]],
+ "phoneGetRing" => ["long", ["long", "ptr", "ptr"]],
+ "phoneGetStatus" => ["long", ["long", "ptr"]],
+ "phoneGetStatusMessages" => ["long", ["long", "ptr", "ptr", "ptr"]],
+ "phoneGetVolume" => ["long", ["long", "long", "ptr"]],
+ "phoneInitialize" => ["long", ["ptr", "long", "ptr", "str", "ptr"]],
+ "phoneNegotiateAPIVersion" => ["long", ["long", "long", "long", "long", "ptr", "ptr"]],
+ "phoneNegotiateExtVersion" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
+ "phoneOpen" => ["long", ["long", "long", "ptr", "long", "long", "long", "long"]],
+ "phoneSetButtonInfo" => ["long", ["long", "long", "ptr"]],
+ "phoneSetData" => ["long", ["long", "long", "ptr", "long"]],
+ "phoneSetDisplay" => ["long", ["long", "long", "long", "str", "long"]],
+ "phoneSetGain" => ["long", ["long", "long", "long"]],
+ "phoneSetHookSwitch" => ["long", ["long", "long", "long"]],
+ "phoneSetLamp" => ["long", ["long", "long", "long"]],
+ "phoneSetRing" => ["long", ["long", "long", "long"]],
+ "phoneSetStatusMessages" => ["long", ["long", "long", "long", "long"]],
+ "phoneSetVolume" => ["long", ["long", "long", "long"]],
+ "phoneShutdown" => ["long", ["long"]],
+ "tapiGetLocationInfo" => ["long", ["str", "str"]],
+ "tapiRequestMakeCall" => ["long", ["str", "str", "str", "str"]]
+};
+
+&wine::declare("tapi32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/urlmon.pm b/programs/winetest/include/urlmon.pm
new file mode 100644
index 0000000..ab3fab6
--- /dev/null
+++ b/programs/winetest/include/urlmon.pm
@@ -0,0 +1,30 @@
+package urlmon;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "CreateAsyncBindCtxEx" => ["long", ["ptr", "long", "ptr", "ptr", "ptr", "long"]],
+ "CreateURLMoniker" => ["long", ["ptr", "wstr", "ptr"]],
+ "DllCanUnloadNow" => ["long", []],
+ "DllGetClassObject" => ["long", ["ptr", "ptr", "ptr"]],
+ "DllInstall" => ["long", ["long", "wstr"]],
+ "DllRegisterServer" => ["long", []],
+ "DllRegisterServerEx" => ["long", []],
+ "DllUnregisterServer" => ["long", []],
+ "RegisterBindStatusCallback" => ["long", ["ptr", "ptr", "ptr", "long"]],
+ "RevokeBindStatusCallback" => ["long", ["ptr", "ptr"]],
+ "UrlMkSetSessionOption" => ["long", ["long", "ptr", "long", "long"]]
+};
+
+&wine::declare("urlmon",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/user32.pm b/programs/winetest/include/user32.pm
new file mode 100644
index 0000000..97acb99
--- /dev/null
+++ b/programs/winetest/include/user32.pm
@@ -0,0 +1,628 @@
+package user32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "ActivateKeyboardLayout" => ["long", ["long", "long"]],
+ "AdjustWindowRect" => ["long", ["ptr", "long", "long"]],
+ "AdjustWindowRectEx" => ["long", ["ptr", "long", "long", "long"]],
+ "AllowSetForegroundWindow" => ["long", ["long"]],
+ "AnimateWindow" => ["long", ["long", "long", "long"]],
+ "AnyPopup" => ["long", []],
+ "AppendMenuA" => ["long", ["long", "long", "long", "str"]],
+ "AppendMenuW" => ["long", ["long", "long", "long", "wstr"]],
+ "ArrangeIconicWindows" => ["long", ["long"]],
+ "AttachThreadInput" => ["long", ["long", "long", "long"]],
+ "BeginDeferWindowPos" => ["long", ["long"]],
+ "BeginPaint" => ["long", ["long", "ptr"]],
+ "BringWindowToTop" => ["long", ["long"]],
+ "BroadcastSystemMessage" => ["long", ["long", "ptr", "long", "long", "long"]],
+ "CalcChildScroll" => ["void", ["long", "long"]],
+ "CallMsgFilterA" => ["long", ["ptr", "long"]],
+ "CallMsgFilterW" => ["long", ["ptr", "long"]],
+ "CallNextHookEx" => ["long", ["long", "long", "long", "long"]],
+ "CallNextHookEx16" => ["long", ["long", "long", "long", "long"]],
+ "CallWindowProc16" => ["long", ["ptr", "long", "long", "long", "long"]],
+ "CallWindowProcA" => ["long", ["ptr", "long", "long", "long", "long"]],
+ "CallWindowProcW" => ["long", ["ptr", "long", "long", "long", "long"]],
+ "CascadeWindows" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "ChangeClipboardChain" => ["long", ["long", "long"]],
+ "ChangeDisplaySettingsA" => ["long", ["ptr", "long"]],
+ "ChangeDisplaySettingsExA" => ["long", ["str", "ptr", "long", "long", "long"]],
+ "ChangeMenuA" => ["long", ["long", "long", "str", "long", "long"]],
+ "ChangeMenuW" => ["long", ["long", "long", "wstr", "long", "long"]],
+ "CharLowerA" => ["str", ["str"]],
+ "CharLowerBuffA" => ["long", ["str", "long"]],
+ "CharLowerBuffW" => ["long", ["wstr", "long"]],
+ "CharLowerW" => ["wstr", ["wstr"]],
+ "CharNextA" => ["str", ["str"]],
+ "CharNextExA" => ["str", ["long", "str", "long"]],
+ "CharNextExW" => ["wstr", ["long", "wstr", "long"]],
+ "CharNextW" => ["wstr", ["wstr"]],
+ "CharPrevA" => ["str", ["str", "str"]],
+ "CharPrevExA" => ["str", ["long", "str", "str", "long"]],
+ "CharPrevExW" => ["str", ["long", "wstr", "wstr", "long"]],
+ "CharPrevW" => ["wstr", ["wstr", "wstr"]],
+ "CharToOemA" => ["long", ["str", "str"]],
+ "CharToOemBuffA" => ["long", ["str", "str", "long"]],
+ "CharToOemBuffW" => ["long", ["wstr", "str", "long"]],
+ "CharToOemW" => ["long", ["wstr", "str"]],
+ "CharUpperA" => ["str", ["str"]],
+ "CharUpperBuffA" => ["long", ["str", "long"]],
+ "CharUpperBuffW" => ["long", ["wstr", "long"]],
+ "CharUpperW" => ["wstr", ["wstr"]],
+ "CheckDlgButton" => ["long", ["long", "long", "long"]],
+ "CheckMenuItem" => ["long", ["long", "long", "long"]],
+ "CheckMenuRadioItem" => ["long", ["long", "long", "long", "long", "long"]],
+ "CheckRadioButton" => ["long", ["long", "long", "long", "long"]],
+ "ChildWindowFromPoint" => ["long", ["long", "long", "long"]],
+ "ChildWindowFromPointEx" => ["long", ["long", "long", "long", "long"]],
+ "ClientToScreen" => ["long", ["long", "ptr"]],
+ "ClipCursor" => ["long", ["ptr"]],
+ "CloseClipboard" => ["long", []],
+ "CloseDesktop" => ["long", ["long"]],
+ "CloseDriver16" => ["long", ["long", "long", "long"]],
+ "CloseWindow" => ["long", ["long"]],
+ "CloseWindowStation" => ["long", ["long"]],
+ "CopyAcceleratorTableA" => ["long", ["long", "ptr", "long"]],
+ "CopyAcceleratorTableW" => ["long", ["long", "ptr", "long"]],
+ "CopyIcon" => ["long", ["long"]],
+ "CopyImage" => ["long", ["long", "long", "long", "long", "long"]],
+ "CopyRect" => ["long", ["ptr", "ptr"]],
+ "CountClipboardFormats" => ["long", []],
+ "CreateAcceleratorTableA" => ["long", ["ptr", "long"]],
+ "CreateAcceleratorTableW" => ["long", ["ptr", "long"]],
+ "CreateCaret" => ["long", ["long", "long", "long", "long"]],
+ "CreateCursor" => ["long", ["long", "long", "long", "long", "long", "ptr", "ptr"]],
+ "CreateDesktopA" => ["long", ["str", "str", "ptr", "long", "long", "ptr"]],
+ "CreateDesktopW" => ["long", ["wstr", "wstr", "ptr", "long", "long", "ptr"]],
+ "CreateDialogIndirectParam16" => ["long", ["long", "ptr", "long", "ptr", "long"]],
+ "CreateDialogIndirectParamA" => ["long", ["long", "ptr", "long", "ptr", "long"]],
+ "CreateDialogIndirectParamAorW" => ["long", ["long", "ptr", "long", "ptr", "long"]],
+ "CreateDialogIndirectParamW" => ["long", ["long", "ptr", "long", "ptr", "long"]],
+ "CreateDialogParamA" => ["long", ["long", "str", "long", "ptr", "long"]],
+ "CreateDialogParamW" => ["long", ["long", "wstr", "long", "ptr", "long"]],
+ "CreateIcon" => ["long", ["long", "long", "long", "long", "long", "ptr", "ptr"]],
+ "CreateIconFromResource" => ["long", ["ptr", "long", "long", "long"]],
+ "CreateIconFromResourceEx" => ["long", ["ptr", "long", "long", "long", "long", "long", "long"]],
+ "CreateIconIndirect" => ["long", ["ptr"]],
+ "CreateMDIWindowA" => ["long", ["str", "str", "long", "long", "long", "long", "long", "long", "long", "long"]],
+ "CreateMDIWindowW" => ["long", ["wstr", "wstr", "long", "long", "long", "long", "long", "long", "long", "long"]],
+ "CreateMenu" => ["long", []],
+ "CreatePopupMenu" => ["long", []],
+ "CreateWindowExA" => ["long", ["long", "str", "str", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
+ "CreateWindowExW" => ["long", ["long", "wstr", "wstr", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
+ "CreateWindowStationW" => ["long", ["wstr", "long", "long", "ptr"]],
+ "DdeAbandonTransaction" => ["long", ["long", "long", "long"]],
+ "DdeAccessData" => ["ptr", ["long", "ptr"]],
+ "DdeAddData" => ["long", ["long", "ptr", "long", "long"]],
+ "DdeClientTransaction" => ["long", ["ptr", "long", "long", "long", "long", "long", "long", "ptr"]],
+ "DdeCmpStringHandles" => ["long", ["long", "long"]],
+ "DdeConnect" => ["long", ["long", "long", "long", "ptr"]],
+ "DdeConnectList" => ["long", ["long", "long", "long", "long", "ptr"]],
+ "DdeCreateDataHandle" => ["long", ["long", "ptr", "long", "long", "long", "long", "long"]],
+ "DdeCreateStringHandleA" => ["long", ["long", "str", "long"]],
+ "DdeCreateStringHandleW" => ["long", ["long", "wstr", "long"]],
+ "DdeDisconnect" => ["long", ["long"]],
+ "DdeDisconnectList" => ["long", ["long"]],
+ "DdeEnableCallback" => ["long", ["long", "long", "long"]],
+ "DdeFreeDataHandle" => ["long", ["long"]],
+ "DdeFreeStringHandle" => ["long", ["long", "long"]],
+ "DdeGetData" => ["long", ["long", "ptr", "long", "long"]],
+ "DdeGetLastError" => ["long", ["long"]],
+ "DdeImpersonateClient" => ["long", ["long"]],
+ "DdeInitializeA" => ["long", ["ptr", "ptr", "long", "long"]],
+ "DdeInitializeW" => ["long", ["ptr", "ptr", "long", "long"]],
+ "DdeKeepStringHandle" => ["long", ["long", "long"]],
+ "DdeNameService" => ["long", ["long", "long", "long", "long"]],
+ "DdePostAdvise" => ["long", ["long", "long", "long"]],
+ "DdeQueryConvInfo" => ["long", ["long", "long", "ptr"]],
+ "DdeQueryNextServer" => ["long", ["long", "long"]],
+ "DdeQueryStringA" => ["long", ["long", "long", "str", "long", "long"]],
+ "DdeQueryStringW" => ["long", ["long", "long", "wstr", "long", "long"]],
+ "DdeReconnect" => ["long", ["long"]],
+ "DdeSetQualityOfService" => ["long", ["long", "ptr", "ptr"]],
+ "DdeSetUserHandle" => ["long", ["long", "long", "long"]],
+ "DdeUnaccessData" => ["long", ["long"]],
+ "DdeUninitialize" => ["long", ["long"]],
+ "DefDlgProcA" => ["long", ["long", "long", "long", "long"]],
+ "DefDlgProcW" => ["long", ["long", "long", "long", "long"]],
+ "DefDriverProc16" => ["long", ["long", "long", "long", "long", "long"]],
+ "DefFrameProcA" => ["long", ["long", "long", "long", "long", "long"]],
+ "DefFrameProcW" => ["long", ["long", "long", "long", "long", "long"]],
+ "DefMDIChildProcA" => ["long", ["long", "long", "long", "long"]],
+ "DefMDIChildProcW" => ["long", ["long", "long", "long", "long"]],
+ "DefWindowProcA" => ["long", ["long", "long", "long", "long"]],
+ "DefWindowProcW" => ["long", ["long", "long", "long", "long"]],
+ "DeferWindowPos" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long"]],
+ "DeleteMenu" => ["long", ["long", "long", "long"]],
+ "DeregisterShellHookWindow" => ["long", ["long"]],
+ "DestroyAcceleratorTable" => ["long", ["long"]],
+ "DestroyCaret" => ["long", []],
+ "DestroyCursor" => ["long", ["long"]],
+ "DestroyIcon" => ["long", ["long"]],
+ "DestroyIcon32" => ["long", ["long", "long"]],
+ "DestroyMenu" => ["long", ["long"]],
+ "DestroyWindow" => ["long", ["long"]],
+ "DialogBoxIndirectParam16" => ["long", ["long", "long", "long", "ptr", "long"]],
+ "DialogBoxIndirectParamA" => ["long", ["long", "ptr", "long", "ptr", "long"]],
+ "DialogBoxIndirectParamAorW" => ["long", ["long", "ptr", "long", "ptr", "long", "long"]],
+ "DialogBoxIndirectParamW" => ["long", ["long", "ptr", "long", "ptr", "long"]],
+ "DialogBoxParamA" => ["long", ["long", "str", "long", "ptr", "long"]],
+ "DialogBoxParamW" => ["long", ["long", "wstr", "long", "ptr", "long"]],
+ "DispatchMessageA" => ["long", ["ptr"]],
+ "DispatchMessageW" => ["long", ["ptr"]],
+ "DlgDirListA" => ["long", ["long", "str", "long", "long", "long"]],
+ "DlgDirListComboBoxA" => ["long", ["long", "str", "long", "long", "long"]],
+ "DlgDirListComboBoxW" => ["long", ["long", "wstr", "long", "long", "long"]],
+ "DlgDirListW" => ["long", ["long", "wstr", "long", "long", "long"]],
+ "DlgDirSelectComboBoxExA" => ["long", ["long", "str", "long", "long"]],
+ "DlgDirSelectComboBoxExW" => ["long", ["long", "wstr", "long", "long"]],
+ "DlgDirSelectExA" => ["long", ["long", "str", "long", "long"]],
+ "DlgDirSelectExW" => ["long", ["long", "wstr", "long", "long"]],
+ "DragDetect" => ["long", ["long", "long", "long"]],
+ "DrawAnimatedRects" => ["long", ["long", "long", "ptr", "ptr"]],
+ "DrawCaption" => ["long", ["long", "long", "ptr", "long"]],
+ "DrawCaptionTempA" => ["long", ["long", "long", "ptr", "long", "long", "str", "long"]],
+ "DrawCaptionTempW" => ["long", ["long", "long", "ptr", "long", "long", "wstr", "long"]],
+ "DrawEdge" => ["long", ["long", "ptr", "long", "long"]],
+ "DrawFocusRect" => ["long", ["long", "ptr"]],
+ "DrawFrameControl" => ["long", ["long", "ptr", "long", "long"]],
+ "DrawIcon" => ["long", ["long", "long", "long", "long"]],
+ "DrawIconEx" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long"]],
+ "DrawMenuBar" => ["long", ["long"]],
+ "DrawMenuBarTemp" => ["long", ["long", "long", "ptr", "long", "long"]],
+ "DrawStateA" => ["long", ["long", "long", "ptr", "long", "long", "long", "long", "long", "long", "long"]],
+ "DrawStateW" => ["long", ["long", "long", "ptr", "long", "long", "long", "long", "long", "long", "long"]],
+ "DrawTextA" => ["long", ["long", "str", "long", "ptr", "long"]],
+ "DrawTextExA" => ["long", ["long", "str", "long", "ptr", "long", "ptr"]],
+ "DrawTextExW" => ["long", ["long", "wstr", "long", "ptr", "long", "ptr"]],
+ "DrawTextW" => ["long", ["long", "wstr", "long", "ptr", "long"]],
+ "EditWndProc" => ["long", ["long", "long", "long", "long"]],
+ "EditWndProcW" => ["long", ["long", "long", "long", "long"]],
+ "EmptyClipboard" => ["long", []],
+ "EnableMenuItem" => ["long", ["long", "long", "long"]],
+ "EnableScrollBar" => ["long", ["long", "long", "long"]],
+ "EnableWindow" => ["long", ["long", "long"]],
+ "EndDeferWindowPos" => ["long", ["long"]],
+ "EndDialog" => ["long", ["long", "long"]],
+ "EndMenu" => ["void", []],
+ "EndPaint" => ["long", ["long", "ptr"]],
+ "EnumChildWindows" => ["long", ["long", "ptr", "long"]],
+ "EnumClipboardFormats" => ["long", ["long"]],
+ "EnumDesktopWindows" => ["long", ["long", "ptr", "long"]],
+ "EnumDisplayDevicesA" => ["long", ["ptr", "long", "ptr", "long"]],
+ "EnumDisplayDevicesW" => ["long", ["ptr", "long", "ptr", "long"]],
+ "EnumDisplayMonitors" => ["long", ["long", "ptr", "ptr", "long"]],
+ "EnumDisplaySettingsA" => ["long", ["str", "long", "ptr"]],
+ "EnumDisplaySettingsExA" => ["long", ["str", "long", "ptr", "long"]],
+ "EnumDisplaySettingsExW" => ["long", ["wstr", "long", "ptr", "long"]],
+ "EnumDisplaySettingsW" => ["long", ["wstr", "long", "ptr"]],
+ "EnumPropsA" => ["long", ["long", "ptr"]],
+ "EnumPropsExA" => ["long", ["long", "ptr", "long"]],
+ "EnumPropsExW" => ["long", ["long", "ptr", "long"]],
+ "EnumPropsW" => ["long", ["long", "ptr"]],
+ "EnumThreadWindows" => ["long", ["long", "ptr", "long"]],
+ "EnumWindows" => ["long", ["ptr", "long"]],
+ "EqualRect" => ["long", ["ptr", "ptr"]],
+ "ExcludeUpdateRgn" => ["long", ["long", "long"]],
+ "ExitWindowsEx" => ["long", ["long", "long"]],
+ "FillRect" => ["long", ["long", "ptr", "long"]],
+ "FindWindowA" => ["long", ["str", "str"]],
+ "FindWindowExA" => ["long", ["long", "long", "str", "str"]],
+ "FindWindowExW" => ["long", ["long", "long", "wstr", "wstr"]],
+ "FindWindowW" => ["long", ["wstr", "wstr"]],
+ "FlashWindow" => ["long", ["long", "long"]],
+ "FrameRect" => ["long", ["long", "ptr", "long"]],
+ "FreeDDElParam" => ["long", ["long", "long"]],
+ "GetActiveWindow" => ["long", []],
+ "GetAncestor" => ["long", ["long", "long"]],
+ "GetAppCompatFlags" => ["long", ["long"]],
+ "GetAsyncKeyState" => ["long", ["long"]],
+ "GetCapture" => ["long", []],
+ "GetCaretBlinkTime" => ["long", []],
+ "GetCaretPos" => ["long", ["ptr"]],
+ "GetClassInfoA" => ["long", ["long", "str", "ptr"]],
+ "GetClassInfoExA" => ["long", ["long", "str", "ptr"]],
+ "GetClassInfoExW" => ["long", ["long", "wstr", "ptr"]],
+ "GetClassInfoW" => ["long", ["long", "wstr", "ptr"]],
+ "GetClassLongA" => ["long", ["long", "long"]],
+ "GetClassLongW" => ["long", ["long", "long"]],
+ "GetClassNameA" => ["long", ["long", "str", "long"]],
+ "GetClassNameW" => ["long", ["long", "wstr", "long"]],
+ "GetClassWord" => ["long", ["long", "long"]],
+ "GetClientRect" => ["long", ["long", "ptr"]],
+ "GetClipCursor" => ["long", ["ptr"]],
+ "GetClipboardData" => ["long", ["long"]],
+ "GetClipboardFormatNameA" => ["long", ["long", "str", "long"]],
+ "GetClipboardFormatNameW" => ["long", ["long", "wstr", "long"]],
+ "GetClipboardOwner" => ["long", []],
+ "GetClipboardSequenceNumber" => ["long", []],
+ "GetClipboardViewer" => ["long", []],
+ "GetCursor" => ["long", []],
+ "GetCursorPos" => ["long", ["ptr"]],
+ "GetDC" => ["long", ["long"]],
+ "GetDCEx" => ["long", ["long", "long", "long"]],
+ "GetDesktopWindow" => ["long", []],
+ "GetDialogBaseUnits" => ["long", []],
+ "GetDlgCtrlID" => ["long", ["long"]],
+ "GetDlgItem" => ["long", ["long", "long"]],
+ "GetDlgItemInt" => ["long", ["long", "long", "ptr", "long"]],
+ "GetDlgItemTextA" => ["long", ["long", "long", "str", "long"]],
+ "GetDlgItemTextW" => ["long", ["long", "long", "wstr", "long"]],
+ "GetDoubleClickTime" => ["long", []],
+ "GetDriverModuleHandle16" => ["long", ["long"]],
+ "GetFocus" => ["long", []],
+ "GetForegroundWindow" => ["long", []],
+ "GetIconInfo" => ["long", ["long", "ptr"]],
+ "GetInputState" => ["long", []],
+ "GetInternalWindowPos" => ["long", ["long", "ptr", "ptr"]],
+ "GetKBCodePage" => ["long", []],
+ "GetKeyNameTextA" => ["long", ["long", "str", "long"]],
+ "GetKeyNameTextW" => ["long", ["long", "wstr", "long"]],
+ "GetKeyState" => ["long", ["long"]],
+ "GetKeyboardLayout" => ["long", ["long"]],
+ "GetKeyboardLayoutList" => ["long", ["long", "ptr"]],
+ "GetKeyboardLayoutNameA" => ["long", ["str"]],
+ "GetKeyboardLayoutNameW" => ["long", ["wstr"]],
+ "GetKeyboardState" => ["long", ["ptr"]],
+ "GetKeyboardType" => ["long", ["long"]],
+ "GetLastActivePopup" => ["long", ["long"]],
+ "GetMenu" => ["long", ["long"]],
+ "GetMenuCheckMarkDimensions" => ["long", []],
+ "GetMenuContextHelpId" => ["long", ["long"]],
+ "GetMenuDefaultItem" => ["long", ["long", "long", "long"]],
+ "GetMenuInfo" => ["long", ["long", "ptr"]],
+ "GetMenuItemCount" => ["long", ["long"]],
+ "GetMenuItemID" => ["long", ["long", "long"]],
+ "GetMenuItemInfoA" => ["long", ["long", "long", "long", "ptr"]],
+ "GetMenuItemInfoW" => ["long", ["long", "long", "long", "ptr"]],
+ "GetMenuItemRect" => ["long", ["long", "long", "long", "ptr"]],
+ "GetMenuState" => ["long", ["long", "long", "long"]],
+ "GetMenuStringA" => ["long", ["long", "long", "str", "long", "long"]],
+ "GetMenuStringW" => ["long", ["long", "long", "wstr", "long", "long"]],
+ "GetMessageA" => ["long", ["ptr", "long", "long", "long"]],
+ "GetMessageExtraInfo" => ["long", []],
+ "GetMessagePos" => ["long", []],
+ "GetMessageTime" => ["long", []],
+ "GetMessageW" => ["long", ["ptr", "long", "long", "long"]],
+ "GetMonitorInfoA" => ["long", ["long", "ptr"]],
+ "GetMonitorInfoW" => ["long", ["long", "ptr"]],
+ "GetNextDlgGroupItem" => ["long", ["long", "long", "long"]],
+ "GetNextDlgTabItem" => ["long", ["long", "long", "long"]],
+ "GetOpenClipboardWindow" => ["long", []],
+ "GetParent" => ["long", ["long"]],
+ "GetPriorityClipboardFormat" => ["long", ["ptr", "long"]],
+ "GetProcessDefaultLayout" => ["long", ["ptr"]],
+ "GetProcessWindowStation" => ["long", []],
+ "GetProgmanWindow" => ["long", []],
+ "GetPropA" => ["long", ["long", "str"]],
+ "GetPropW" => ["long", ["long", "wstr"]],
+ "GetQueueStatus" => ["long", ["long"]],
+ "GetScrollInfo" => ["long", ["long", "long", "ptr"]],
+ "GetScrollPos" => ["long", ["long", "long"]],
+ "GetScrollRange" => ["long", ["long", "long", "ptr", "ptr"]],
+ "GetShellWindow" => ["long", []],
+ "GetSubMenu" => ["long", ["long", "long"]],
+ "GetSysColor" => ["long", ["long"]],
+ "GetSysColorBrush" => ["long", ["long"]],
+ "GetSysColorPen" => ["long", ["long"]],
+ "GetSystemMenu" => ["long", ["long", "long"]],
+ "GetSystemMetrics" => ["long", ["long"]],
+ "GetTabbedTextExtentA" => ["long", ["long", "str", "long", "long", "ptr"]],
+ "GetTabbedTextExtentW" => ["long", ["long", "wstr", "long", "long", "ptr"]],
+ "GetTaskmanWindow" => ["long", []],
+ "GetThreadDesktop" => ["long", ["long"]],
+ "GetTopWindow" => ["long", ["long"]],
+ "GetUpdateRect" => ["long", ["long", "ptr", "long"]],
+ "GetUpdateRgn" => ["long", ["long", "long", "long"]],
+ "GetUserObjectInformationA" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "GetUserObjectInformationW" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "GetUserObjectSecurity" => ["long", ["long", "ptr", "ptr", "long", "ptr"]],
+ "GetWindow" => ["long", ["long", "long"]],
+ "GetWindowContextHelpId" => ["long", ["long"]],
+ "GetWindowDC" => ["long", ["long"]],
+ "GetWindowLongA" => ["long", ["long", "long"]],
+ "GetWindowLongW" => ["long", ["long", "long"]],
+ "GetWindowModuleFileNameA" => ["long", ["long", "str", "long"]],
+ "GetWindowModuleFileNameW" => ["long", ["long", "str", "long"]],
+ "GetWindowPlacement" => ["long", ["long", "ptr"]],
+ "GetWindowRect" => ["long", ["long", "ptr"]],
+ "GetWindowRgn" => ["long", ["long", "long"]],
+ "GetWindowTextA" => ["long", ["long", "str", "long"]],
+ "GetWindowTextLengthA" => ["long", ["long"]],
+ "GetWindowTextLengthW" => ["long", ["long"]],
+ "GetWindowTextW" => ["long", ["long", "wstr", "long"]],
+ "GetWindowThreadProcessId" => ["long", ["long", "ptr"]],
+ "GetWindowWord" => ["long", ["long", "long"]],
+ "GrayStringA" => ["long", ["long", "long", "ptr", "long", "long", "long", "long", "long", "long"]],
+ "GrayStringW" => ["long", ["long", "long", "ptr", "long", "long", "long", "long", "long", "long"]],
+ "HideCaret" => ["long", ["long"]],
+ "HiliteMenuItem" => ["long", ["long", "long", "long", "long"]],
+ "ImpersonateDdeClientWindow" => ["long", ["long", "long"]],
+ "InSendMessage" => ["long", []],
+ "InSendMessageEx" => ["long", ["ptr"]],
+ "InflateRect" => ["long", ["ptr", "long", "long"]],
+ "InsertMenuA" => ["long", ["long", "long", "long", "long", "str"]],
+ "InsertMenuItemA" => ["long", ["long", "long", "long", "ptr"]],
+ "InsertMenuItemW" => ["long", ["long", "long", "long", "ptr"]],
+ "InsertMenuW" => ["long", ["long", "long", "long", "long", "wstr"]],
+ "InternalGetWindowText" => ["long", ["long", "wstr", "long"]],
+ "IntersectRect" => ["long", ["ptr", "ptr", "ptr"]],
+ "InvalidateRect" => ["long", ["long", "ptr", "long"]],
+ "InvalidateRgn" => ["long", ["long", "long", "long"]],
+ "InvertRect" => ["long", ["long", "ptr"]],
+ "IsCharAlphaA" => ["long", ["long"]],
+ "IsCharAlphaNumericA" => ["long", ["long"]],
+ "IsCharAlphaNumericW" => ["long", ["long"]],
+ "IsCharAlphaW" => ["long", ["long"]],
+ "IsCharLowerA" => ["long", ["long"]],
+ "IsCharLowerW" => ["long", ["long"]],
+ "IsCharUpperA" => ["long", ["long"]],
+ "IsCharUpperW" => ["long", ["long"]],
+ "IsChild" => ["long", ["long", "long"]],
+ "IsClipboardFormatAvailable" => ["long", ["long"]],
+ "IsDialogMessage" => ["long", ["long", "ptr"]],
+ "IsDialogMessageA" => ["long", ["long", "ptr"]],
+ "IsDialogMessageW" => ["long", ["long", "ptr"]],
+ "IsDlgButtonChecked" => ["long", ["long", "long"]],
+ "IsIconic" => ["long", ["long"]],
+ "IsMenu" => ["long", ["long"]],
+ "IsRectEmpty" => ["long", ["ptr"]],
+ "IsWindow" => ["long", ["long"]],
+ "IsWindowEnabled" => ["long", ["long"]],
+ "IsWindowUnicode" => ["long", ["long"]],
+ "IsWindowVisible" => ["long", ["long"]],
+ "IsZoomed" => ["long", ["long"]],
+ "KillSystemTimer" => ["long", ["long", "long"]],
+ "KillTimer" => ["long", ["long", "long"]],
+ "LoadAcceleratorsA" => ["long", ["long", "str"]],
+ "LoadAcceleratorsW" => ["long", ["long", "wstr"]],
+ "LoadBitmapA" => ["long", ["long", "str"]],
+ "LoadBitmapW" => ["long", ["long", "wstr"]],
+ "LoadCursorA" => ["long", ["long", "str"]],
+ "LoadCursorFromFileA" => ["long", ["str"]],
+ "LoadCursorFromFileW" => ["long", ["wstr"]],
+ "LoadCursorW" => ["long", ["long", "wstr"]],
+ "LoadIconA" => ["long", ["long", "str"]],
+ "LoadIconW" => ["long", ["long", "wstr"]],
+ "LoadImageA" => ["long", ["long", "str", "long", "long", "long", "long"]],
+ "LoadImageW" => ["long", ["long", "wstr", "long", "long", "long", "long"]],
+ "LoadKeyboardLayoutA" => ["long", ["str", "long"]],
+ "LoadKeyboardLayoutW" => ["long", ["wstr", "long"]],
+ "LoadLocalFonts" => ["void", []],
+ "LoadMenuA" => ["long", ["long", "str"]],
+ "LoadMenuIndirectA" => ["long", ["ptr"]],
+ "LoadMenuIndirectW" => ["long", ["ptr"]],
+ "LoadMenuW" => ["long", ["long", "wstr"]],
+ "LoadStringA" => ["long", ["long", "long", "str", "long"]],
+ "LoadStringW" => ["long", ["long", "long", "wstr", "long"]],
+ "LockSetForegroundWindow" => ["long", ["long"]],
+ "LockWindowUpdate" => ["long", ["long"]],
+ "LookupIconIdFromDirectory" => ["long", ["ptr", "long"]],
+ "LookupIconIdFromDirectoryEx" => ["long", ["ptr", "long", "long", "long", "long"]],
+ "MapDialogRect" => ["long", ["long", "ptr"]],
+ "MapVirtualKeyA" => ["long", ["long", "long"]],
+ "MapVirtualKeyExA" => ["long", ["long", "long", "long"]],
+ "MapVirtualKeyExW" => ["long", ["long", "long", "long"]],
+ "MapVirtualKeyW" => ["long", ["long", "long"]],
+ "MapWindowPoints" => ["long", ["long", "long", "ptr", "long"]],
+ "MenuItemFromPoint" => ["long", ["long", "long", "long", "long"]],
+ "MessageBeep" => ["long", ["long"]],
+ "MessageBoxA" => ["long", ["long", "str", "str", "long"]],
+ "MessageBoxExA" => ["long", ["long", "str", "str", "long", "long"]],
+ "MessageBoxExW" => ["long", ["long", "wstr", "wstr", "long", "long"]],
+ "MessageBoxIndirectA" => ["long", ["ptr"]],
+ "MessageBoxIndirectW" => ["long", ["ptr"]],
+ "MessageBoxW" => ["long", ["long", "wstr", "wstr", "long"]],
+ "ModifyMenuA" => ["long", ["long", "long", "long", "long", "str"]],
+ "ModifyMenuW" => ["long", ["long", "long", "long", "long", "wstr"]],
+ "MonitorFromPoint" => ["long", ["long", "long", "long"]],
+ "MonitorFromRect" => ["long", ["ptr", "long"]],
+ "MonitorFromWindow" => ["long", ["long", "long"]],
+ "MoveWindow" => ["long", ["long", "long", "long", "long", "long", "long"]],
+ "MsgWaitForMultipleObjects" => ["long", ["long", "ptr", "long", "long", "long"]],
+ "MsgWaitForMultipleObjectsEx" => ["long", ["long", "ptr", "long", "long", "long"]],
+ "OemKeyScan" => ["long", ["long"]],
+ "OemToCharA" => ["long", ["str", "str"]],
+ "OemToCharBuffA" => ["long", ["str", "str", "long"]],
+ "OemToCharBuffW" => ["long", ["str", "wstr", "long"]],
+ "OemToCharW" => ["long", ["str", "wstr"]],
+ "OffsetRect" => ["long", ["ptr", "long", "long"]],
+ "OpenClipboard" => ["long", ["long"]],
+ "OpenDesktopA" => ["long", ["str", "long", "long", "long"]],
+ "OpenDriver16" => ["long", ["str", "str", "long"]],
+ "OpenIcon" => ["long", ["long"]],
+ "PackDDElParam" => ["long", ["long", "long", "long"]],
+ "PaintDesktop" => ["long", ["long"]],
+ "PeekMessageA" => ["long", ["ptr", "long", "long", "long", "long"]],
+ "PeekMessageW" => ["long", ["ptr", "long", "long", "long", "long"]],
+ "PostAppMessage16" => ["long", ["long", "long", "long", "long"]],
+ "PostMessageA" => ["long", ["long", "long", "long", "long"]],
+ "PostMessageW" => ["long", ["long", "long", "long", "long"]],
+ "PostQuitMessage" => ["void", ["long"]],
+ "PostThreadMessageA" => ["long", ["long", "long", "long", "long"]],
+ "PostThreadMessageW" => ["long", ["long", "long", "long", "long"]],
+ "PrivateExtractIconExA" => ["long", ["str", "long", "ptr", "ptr", "long"]],
+ "PrivateExtractIconExW" => ["long", ["wstr", "long", "ptr", "ptr", "long"]],
+ "PrivateExtractIconsA" => ["long", ["str", "long", "long", "long", "ptr", "long", "long", "long"]],
+ "PrivateExtractIconsW" => ["long", ["wstr", "long", "long", "long", "ptr", "long", "long", "long"]],
+ "PtInRect" => ["long", ["ptr", "long", "long"]],
+ "RedrawWindow" => ["long", ["long", "ptr", "long", "long"]],
+ "RegisterClassA" => ["long", ["ptr"]],
+ "RegisterClassExA" => ["long", ["ptr"]],
+ "RegisterClassExW" => ["long", ["ptr"]],
+ "RegisterClassW" => ["long", ["ptr"]],
+ "RegisterClipboardFormatA" => ["long", ["str"]],
+ "RegisterClipboardFormatW" => ["long", ["wstr"]],
+ "RegisterDeviceNotificationA" => ["long", ["long", "ptr", "long"]],
+ "RegisterHotKey" => ["long", ["long", "long", "long", "long"]],
+ "RegisterLogonProcess" => ["long", ["long", "long"]],
+ "RegisterShellHookWindow" => ["long", ["long"]],
+ "RegisterSystemThread" => ["void", ["long", "long"]],
+ "RegisterTasklist" => ["long", ["long"]],
+ "RegisterWindowMessageA" => ["long", ["str"]],
+ "RegisterWindowMessageW" => ["long", ["wstr"]],
+ "ReleaseCapture" => ["long", []],
+ "ReleaseDC" => ["long", ["long", "long"]],
+ "RemoveMenu" => ["long", ["long", "long", "long"]],
+ "RemovePropA" => ["long", ["long", "str"]],
+ "RemovePropW" => ["long", ["long", "wstr"]],
+ "ReplyMessage" => ["long", ["long"]],
+ "ReuseDDElParam" => ["long", ["long", "long", "long", "long", "long"]],
+ "ScreenToClient" => ["long", ["long", "ptr"]],
+ "ScrollChildren" => ["void", ["long", "long", "long", "long"]],
+ "ScrollDC" => ["long", ["long", "long", "long", "ptr", "ptr", "long", "ptr"]],
+ "ScrollWindow" => ["long", ["long", "long", "long", "ptr", "ptr"]],
+ "ScrollWindowEx" => ["long", ["long", "long", "long", "ptr", "ptr", "long", "ptr", "long"]],
+ "SendDlgItemMessageA" => ["long", ["long", "long", "long", "long", "long"]],
+ "SendDlgItemMessageW" => ["long", ["long", "long", "long", "long", "long"]],
+ "SendDriverMessage16" => ["long", ["long", "long", "long", "long"]],
+ "SendInput" => ["long", ["long", "ptr", "long"]],
+ "SendMessageA" => ["long", ["long", "long", "long", "long"]],
+ "SendMessageCallbackA" => ["long", ["long", "long", "long", "long", "ptr", "long"]],
+ "SendMessageCallbackW" => ["long", ["long", "long", "long", "long", "ptr", "long"]],
+ "SendMessageTimeoutA" => ["long", ["long", "long", "long", "long", "long", "long", "ptr"]],
+ "SendMessageTimeoutW" => ["long", ["long", "long", "long", "long", "long", "long", "ptr"]],
+ "SendMessageW" => ["long", ["long", "long", "long", "long"]],
+ "SendNotifyMessageA" => ["long", ["long", "long", "long", "long"]],
+ "SendNotifyMessageW" => ["long", ["long", "long", "long", "long"]],
+ "SetActiveWindow" => ["long", ["long"]],
+ "SetCapture" => ["long", ["long"]],
+ "SetCaretBlinkTime" => ["long", ["long"]],
+ "SetCaretPos" => ["long", ["long", "long"]],
+ "SetClassLongA" => ["long", ["long", "long", "long"]],
+ "SetClassLongW" => ["long", ["long", "long", "long"]],
+ "SetClassWord" => ["long", ["long", "long", "long"]],
+ "SetClipboardData" => ["long", ["long", "long"]],
+ "SetClipboardViewer" => ["long", ["long"]],
+ "SetCursor" => ["long", ["long"]],
+ "SetCursorPos" => ["long", ["long", "long"]],
+ "SetDebugErrorLevel" => ["void", ["long"]],
+ "SetDeskWallPaper" => ["long", ["str"]],
+ "SetDlgItemInt" => ["long", ["long", "long", "long", "long"]],
+ "SetDlgItemTextA" => ["long", ["long", "long", "str"]],
+ "SetDlgItemTextW" => ["long", ["long", "long", "wstr"]],
+ "SetDoubleClickTime" => ["long", ["long"]],
+ "SetFocus" => ["long", ["long"]],
+ "SetForegroundWindow" => ["long", ["long"]],
+ "SetInternalWindowPos" => ["void", ["long", "long", "ptr", "ptr"]],
+ "SetKeyboardState" => ["long", ["ptr"]],
+ "SetLastErrorEx" => ["void", ["long", "long"]],
+ "SetLogonNotifyWindow" => ["long", ["long", "long"]],
+ "SetMenu" => ["long", ["long", "long"]],
+ "SetMenuContextHelpId" => ["long", ["long", "long"]],
+ "SetMenuDefaultItem" => ["long", ["long", "long", "long"]],
+ "SetMenuInfo" => ["long", ["long", "ptr"]],
+ "SetMenuItemBitmaps" => ["long", ["long", "long", "long", "long", "long"]],
+ "SetMenuItemInfoA" => ["long", ["long", "long", "long", "ptr"]],
+ "SetMenuItemInfoW" => ["long", ["long", "long", "long", "ptr"]],
+ "SetMessageQueue" => ["long", ["long"]],
+ "SetParent" => ["long", ["long", "long"]],
+ "SetProcessDefaultLayout" => ["long", ["long"]],
+ "SetProcessWindowStation" => ["long", ["long"]],
+ "SetProgmanWindow" => ["long", ["long"]],
+ "SetPropA" => ["long", ["long", "str", "long"]],
+ "SetPropW" => ["long", ["long", "wstr", "long"]],
+ "SetRect" => ["long", ["ptr", "long", "long", "long", "long"]],
+ "SetRectEmpty" => ["long", ["ptr"]],
+ "SetScrollPos" => ["long", ["long", "long", "long", "long"]],
+ "SetScrollRange" => ["long", ["long", "long", "long", "long", "long"]],
+ "SetShellWindow" => ["long", ["long"]],
+ "SetShellWindowEx" => ["long", ["long", "long"]],
+ "SetSysColors" => ["long", ["long", "ptr", "ptr"]],
+ "SetSysColorsTemp" => ["long", ["ptr", "ptr", "long"]],
+ "SetSystemCursor" => ["long", ["long", "long"]],
+ "SetSystemMenu" => ["long", ["long", "long"]],
+ "SetSystemTimer" => ["long", ["long", "long", "long", "ptr"]],
+ "SetTaskmanWindow" => ["long", ["long"]],
+ "SetThreadDesktop" => ["long", ["long"]],
+ "SetTimer" => ["long", ["long", "long", "long", "ptr"]],
+ "SetUserObjectInformationA" => ["long", ["long", "long", "ptr", "long"]],
+ "SetUserObjectSecurity" => ["long", ["long", "ptr", "ptr"]],
+ "SetWindowContextHelpId" => ["long", ["long", "long"]],
+ "SetWindowLongA" => ["long", ["long", "long", "long"]],
+ "SetWindowLongW" => ["long", ["long", "long", "long"]],
+ "SetWindowPlacement" => ["long", ["long", "ptr"]],
+ "SetWindowPos" => ["long", ["long", "long", "long", "long", "long", "long", "long"]],
+ "SetWindowRgn" => ["long", ["long", "long", "long"]],
+ "SetWindowStationUser" => ["long", ["long", "long"]],
+ "SetWindowText" => ["long", ["long", "str"]],
+ "SetWindowTextA" => ["long", ["long", "str"]],
+ "SetWindowTextW" => ["long", ["long", "wstr"]],
+ "SetWindowWord" => ["long", ["long", "long", "long"]],
+ "SetWindowsHookA" => ["long", ["long", "ptr"]],
+ "SetWindowsHookEx16" => ["long", ["long", "ptr", "long", "long"]],
+ "SetWindowsHookExA" => ["long", ["long", "ptr", "long", "long"]],
+ "SetWindowsHookExW" => ["long", ["long", "ptr", "long", "long"]],
+ "SetWindowsHookW" => ["long", ["long", "ptr"]],
+ "ShowCaret" => ["long", ["long"]],
+ "ShowCursor" => ["long", ["long"]],
+ "ShowOwnedPopups" => ["long", ["long", "long"]],
+ "ShowScrollBar" => ["long", ["long", "long", "long"]],
+ "ShowWindow" => ["long", ["long", "long"]],
+ "ShowWindowAsync" => ["long", ["long", "long"]],
+ "SubtractRect" => ["long", ["ptr", "ptr", "ptr"]],
+ "SwapMouseButton" => ["long", ["long"]],
+ "SwitchToThisWindow" => ["void", ["long", "long"]],
+ "SystemParametersInfoA" => ["long", ["long", "long", "ptr", "long"]],
+ "SystemParametersInfoW" => ["long", ["long", "long", "ptr", "long"]],
+ "TabbedTextOutA" => ["long", ["long", "long", "long", "str", "long", "long", "ptr", "long"]],
+ "TabbedTextOutW" => ["long", ["long", "long", "long", "wstr", "long", "long", "ptr", "long"]],
+ "TileWindows" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "ToAscii" => ["long", ["long", "long", "ptr", "ptr", "long"]],
+ "ToAsciiEx" => ["long", ["long", "long", "ptr", "ptr", "long", "long"]],
+ "ToUnicode" => ["long", ["long", "long", "ptr", "wstr", "long", "long"]],
+ "ToUnicodeEx" => ["long", ["long", "long", "ptr", "wstr", "long", "long", "long"]],
+ "TrackPopupMenu" => ["long", ["long", "long", "long", "long", "long", "long", "ptr"]],
+ "TrackPopupMenuEx" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
+ "TranslateAccelerator" => ["long", ["long", "long", "ptr"]],
+ "TranslateAcceleratorA" => ["long", ["long", "long", "ptr"]],
+ "TranslateAcceleratorW" => ["long", ["long", "long", "ptr"]],
+ "TranslateCharsetInfo" => ["long", ["ptr", "ptr", "long"]],
+ "TranslateMDISysAccel" => ["long", ["long", "ptr"]],
+ "TranslateMessage" => ["long", ["ptr"]],
+ "UnhookWindowsHook" => ["long", ["long", "ptr"]],
+ "UnhookWindowsHookEx" => ["long", ["long"]],
+ "UnionRect" => ["long", ["ptr", "ptr", "ptr"]],
+ "UnpackDDElParam" => ["long", ["long", "long", "ptr", "ptr"]],
+ "UnregisterClassA" => ["long", ["str", "long"]],
+ "UnregisterClassW" => ["long", ["wstr", "long"]],
+ "UnregisterHotKey" => ["long", ["long", "long"]],
+ "UpdateWindow" => ["void", ["long"]],
+ "UserClientDllInitialize" => ["long", ["long", "long", "ptr"]],
+ "UserRealizePalette" => ["long", ["long"]],
+ "UserSignalProc" => ["long", ["long", "long", "long", "long"]],
+ "UserYield16" => ["void", []],
+ "ValidateRect" => ["void", ["long", "ptr"]],
+ "ValidateRgn" => ["void", ["long", "long"]],
+ "VkKeyScanA" => ["long", ["long"]],
+ "VkKeyScanExA" => ["long", ["long", "long"]],
+ "VkKeyScanExW" => ["long", ["long", "long"]],
+ "VkKeyScanW" => ["long", ["long"]],
+ "WaitForInputIdle" => ["long", ["long", "long"]],
+ "WaitMessage" => ["long", []],
+ "WinHelpA" => ["long", ["long", "str", "long", "long"]],
+ "WinHelpW" => ["long", ["long", "wstr", "long", "long"]],
+ "WindowFromDC" => ["long", ["long"]],
+ "WindowFromPoint" => ["long", ["long", "long"]],
+ "keybd_event" => ["void", ["long", "long", "long", "long"]],
+ "mouse_event" => ["void", ["long", "long", "long", "long", "long"]],
+ "wvsnprintfA" => ["long", ["str", "long", "str", "ptr"]],
+ "wvsnprintfW" => ["long", ["wstr", "long", "wstr", "ptr"]],
+ "wvsprintfA" => ["long", ["str", "str", "ptr"]],
+ "wvsprintfW" => ["long", ["wstr", "wstr", "ptr"]]
+};
+
+&wine::declare("user32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/version.pm b/programs/winetest/include/version.pm
new file mode 100644
index 0000000..b2e0335
--- /dev/null
+++ b/programs/winetest/include/version.pm
@@ -0,0 +1,29 @@
+package version;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "GetFileVersionInfoA" => ["long", ["str", "long", "long", "ptr"]],
+ "GetFileVersionInfoSizeA" => ["long", ["str", "ptr"]],
+ "GetFileVersionInfoSizeW" => ["long", ["wstr", "ptr"]],
+ "GetFileVersionInfoW" => ["long", ["wstr", "long", "long", "ptr"]],
+ "VerFindFileA" => ["long", ["long", "str", "str", "str", "str", "ptr", "str", "ptr"]],
+ "VerFindFileW" => ["long", ["long", "wstr", "wstr", "wstr", "wstr", "ptr", "wstr", "ptr"]],
+ "VerInstallFileA" => ["long", ["long", "str", "str", "str", "str", "str", "str", "ptr"]],
+ "VerInstallFileW" => ["long", ["long", "wstr", "wstr", "wstr", "wstr", "wstr", "wstr", "ptr"]],
+ "VerQueryValueA" => ["long", ["ptr", "str", "ptr", "ptr"]],
+ "VerQueryValueW" => ["long", ["ptr", "wstr", "ptr", "ptr"]]
+};
+
+&wine::declare("version",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/w32skrnl.pm b/programs/winetest/include/w32skrnl.pm
new file mode 100644
index 0000000..973244b
--- /dev/null
+++ b/programs/winetest/include/w32skrnl.pm
@@ -0,0 +1,21 @@
+package w32skrnl;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "GetCurrentTask32" => ["long", []],
+ "_kGetWin32sDirectory\@0" => ["str", []]
+};
+
+&wine::declare("w32skrnl",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/winedos.pm b/programs/winetest/include/winedos.pm
new file mode 100644
index 0000000..5ede4dc
--- /dev/null
+++ b/programs/winetest/include/winedos.pm
@@ -0,0 +1,32 @@
+package winedos;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "ASPIHandler" => ["void", ["ptr"]],
+ "AllocRMCB" => ["void", ["ptr"]],
+ "CallRMInt" => ["void", ["ptr"]],
+ "CallRMProc" => ["void", ["undef"]],
+ "Enter" => ["long", ["ptr"]],
+ "FreeRMCB" => ["void", ["ptr"]],
+ "GetTimer" => ["long", []],
+ "KbdReadScan" => ["long", ["ptr"]],
+ "LoadDosExe" => ["void", ["str", "long"]],
+ "OutPIC" => ["void", ["long", "long"]],
+ "QueueEvent" => ["void", ["long", "long", "undef", "ptr"]],
+ "SetTimer" => ["void", ["long"]],
+ "Wait" => ["void", ["long", "long"]]
+};
+
+&wine::declare("winedos",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/wineoss_drv.pm b/programs/winetest/include/wineoss_drv.pm
new file mode 100644
index 0000000..e43a2a0
--- /dev/null
+++ b/programs/winetest/include/wineoss_drv.pm
@@ -0,0 +1,26 @@
+package wineoss_drv;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "DriverProc" => ["long", ["long", "long", "long", "long", "long"]],
+ "auxMessage" => ["long", ["long", "long", "long", "long", "long"]],
+ "mixMessage" => ["long", ["long", "long", "long", "long", "long"]],
+ "midMessage" => ["long", ["long", "long", "long", "long", "long"]],
+ "modMessage" => ["long", ["long", "long", "long", "long", "long"]],
+ "widMessage" => ["long", ["long", "long", "long", "long", "long"]],
+ "wodMessage" => ["long", ["long", "long", "long", "long", "long"]]
+};
+
+&wine::declare("wineoss.drv",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/wininet.pm b/programs/winetest/include/wininet.pm
new file mode 100644
index 0000000..a0714f4
--- /dev/null
+++ b/programs/winetest/include/wininet.pm
@@ -0,0 +1,53 @@
+package wininet;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "CommitUrlCacheEntryA" => ["long", ["str", "str", "long", "long", "long", "ptr", "long", "str", "long"]],
+ "DllInstall" => ["long", ["long", "wstr"]],
+ "FtpCreateDirectoryA" => ["long", ["long", "str"]],
+ "FtpDeleteFileA" => ["long", ["long", "str"]],
+ "FtpFindFirstFileA" => ["long", ["long", "str", "ptr", "long", "long"]],
+ "FtpGetCurrentDirectoryA" => ["long", ["long", "str", "ptr"]],
+ "FtpGetFileA" => ["long", ["long", "str", "str", "long", "long", "long", "long"]],
+ "FtpOpenFileA" => ["long", ["long", "str", "long", "long", "long"]],
+ "FtpPutFileA" => ["long", ["long", "str", "str", "long", "long"]],
+ "FtpRemoveDirectoryA" => ["long", ["long", "str"]],
+ "FtpRenameFileA" => ["long", ["long", "str", "str"]],
+ "FtpSetCurrentDirectoryA" => ["long", ["long", "str"]],
+ "GetUrlCacheEntryInfoA" => ["long", ["str", "ptr", "ptr"]],
+ "HttpAddRequestHeadersA" => ["long", ["long", "str", "long", "long"]],
+ "HttpOpenRequestA" => ["long", ["long", "str", "str", "str", "str", "ptr", "long", "long"]],
+ "HttpQueryInfoA" => ["long", ["long", "long", "ptr", "ptr", "ptr"]],
+ "HttpSendRequestA" => ["long", ["long", "str", "long", "ptr", "long"]],
+ "HttpSendRequestExA" => ["long", ["long", "ptr", "ptr", "long", "long"]],
+ "InternetAttemptConnect" => ["long", ["long"]],
+ "InternetCanonicalizeUrlA" => ["long", ["str", "str", "ptr", "long"]],
+ "InternetCheckConnectionA" => ["long", ["str", "long", "long"]],
+ "InternetCloseHandle" => ["long", ["long"]],
+ "InternetConnectA" => ["long", ["long", "str", "long", "str", "str", "long", "long", "long"]],
+ "InternetCrackUrlA" => ["long", ["str", "long", "long", "ptr"]],
+ "InternetFindNextFileA" => ["long", ["long", "ptr"]],
+ "InternetGetConnectedState" => ["long", ["ptr", "long"]],
+ "InternetGetCookieA" => ["long", ["str", "str", "str", "ptr"]],
+ "InternetGetLastResponseInfoA" => ["long", ["ptr", "str", "ptr"]],
+ "InternetOpenA" => ["long", ["str", "long", "str", "str", "long"]],
+ "InternetQueryOptionA" => ["long", ["long", "long", "ptr", "ptr"]],
+ "InternetReadFile" => ["long", ["long", "ptr", "long", "ptr"]],
+ "InternetSetCookieA" => ["long", ["str", "str", "str"]],
+ "InternetSetStatusCallback" => ["ptr", ["long", "ptr"]],
+ "InternetWriteFile" => ["long", ["long", "ptr", "long", "ptr"]]
+};
+
+&wine::declare("wininet",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/winmm.pm b/programs/winetest/include/winmm.pm
new file mode 100644
index 0000000..45117b0
--- /dev/null
+++ b/programs/winetest/include/winmm.pm
@@ -0,0 +1,195 @@
+package winmm;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "CloseDriver" => ["long", ["long", "long", "long"]],
+ "DefDriverProc" => ["long", ["long", "long", "long", "long", "long"]],
+ "DriverCallback" => ["long", ["long", "long", "long", "long", "long", "long", "long"]],
+ "DrvClose" => ["long", ["long", "long", "long"]],
+ "DrvDefDriverProc" => ["long", ["long", "long", "long", "long", "long"]],
+ "DrvGetModuleHandle" => ["long", ["long"]],
+ "DrvOpen" => ["long", ["wstr", "wstr", "long"]],
+ "DrvOpenA" => ["long", ["str", "str", "long"]],
+ "DrvSendMessage" => ["long", ["long", "long", "long", "long"]],
+ "GetDriverFlags" => ["long", ["long"]],
+ "GetDriverModuleHandle" => ["long", ["long"]],
+ "OpenDriver" => ["long", ["wstr", "wstr", "long"]],
+ "OpenDriverA" => ["long", ["str", "str", "long"]],
+ "PlaySound" => ["long", ["str", "long", "long"]],
+ "PlaySoundA" => ["long", ["str", "long", "long"]],
+ "PlaySoundW" => ["long", ["wstr", "long", "long"]],
+ "SendDriverMessage" => ["long", ["long", "long", "long", "long"]],
+ "auxGetDevCapsA" => ["long", ["long", "ptr", "long"]],
+ "auxGetDevCapsW" => ["long", ["long", "ptr", "long"]],
+ "auxGetNumDevs" => ["long", []],
+ "auxGetVolume" => ["long", ["long", "ptr"]],
+ "auxOutMessage" => ["long", ["long", "long", "long", "long"]],
+ "auxSetVolume" => ["long", ["long", "long"]],
+ "joyGetDevCapsA" => ["long", ["long", "ptr", "long"]],
+ "joyGetDevCapsW" => ["long", ["long", "ptr", "long"]],
+ "joyGetNumDevs" => ["long", []],
+ "joyGetPos" => ["long", ["long", "ptr"]],
+ "joyGetPosEx" => ["long", ["long", "ptr"]],
+ "joyGetThreshold" => ["long", ["long", "ptr"]],
+ "joyReleaseCapture" => ["long", ["long"]],
+ "joySetCapture" => ["long", ["long", "long", "long", "long"]],
+ "joySetThreshold" => ["long", ["long", "long"]],
+ "mciDriverNotify" => ["long", ["long", "long", "long"]],
+ "mciDriverYield" => ["long", ["long"]],
+ "mciExecute" => ["long", ["str"]],
+ "mciFreeCommandResource" => ["long", ["long"]],
+ "mciGetCreatorTask" => ["long", ["long"]],
+ "mciGetDeviceIDA" => ["long", ["str"]],
+ "mciGetDeviceIDFromElementIDW" => ["long", ["long", "wstr"]],
+ "mciGetDeviceIDW" => ["long", ["wstr"]],
+ "mciGetDriverData" => ["long", ["long"]],
+ "mciGetErrorStringA" => ["long", ["long", "str", "long"]],
+ "mciGetErrorStringW" => ["long", ["long", "wstr", "long"]],
+ "mciGetYieldProc" => ["ptr", ["long", "ptr"]],
+ "mciLoadCommandResource" => ["long", ["long", "wstr", "long"]],
+ "mciSendCommandA" => ["long", ["long", "long", "long", "long"]],
+ "mciSendCommandW" => ["long", ["long", "long", "long", "long"]],
+ "mciSendStringA" => ["long", ["str", "str", "long", "long"]],
+ "mciSendStringW" => ["long", ["wstr", "str", "long", "long"]],
+ "mciSetDriverData" => ["long", ["long", "long"]],
+ "mciSetYieldProc" => ["long", ["long", "ptr", "long"]],
+ "midiInAddBuffer" => ["long", ["long", "ptr", "long"]],
+ "midiInClose" => ["long", ["long"]],
+ "midiInGetDevCapsA" => ["long", ["long", "ptr", "long"]],
+ "midiInGetDevCapsW" => ["long", ["long", "ptr", "long"]],
+ "midiInGetErrorTextA" => ["long", ["long", "str", "long"]],
+ "midiInGetErrorTextW" => ["long", ["long", "wstr", "long"]],
+ "midiInGetID" => ["long", ["long", "ptr"]],
+ "midiInGetNumDevs" => ["long", []],
+ "midiInMessage" => ["long", ["long", "long", "long", "long"]],
+ "midiInOpen" => ["long", ["ptr", "long", "long", "long", "long"]],
+ "midiInPrepareHeader" => ["long", ["long", "ptr", "long"]],
+ "midiInReset" => ["long", ["long"]],
+ "midiInStart" => ["long", ["long"]],
+ "midiInStop" => ["long", ["long"]],
+ "midiInUnprepareHeader" => ["long", ["long", "ptr", "long"]],
+ "midiOutCacheDrumPatches" => ["long", ["long", "long", "ptr", "long"]],
+ "midiOutCachePatches" => ["long", ["long", "long", "ptr", "long"]],
+ "midiOutClose" => ["long", ["long"]],
+ "midiOutGetDevCapsA" => ["long", ["long", "ptr", "long"]],
+ "midiOutGetDevCapsW" => ["long", ["long", "ptr", "long"]],
+ "midiOutGetErrorTextA" => ["long", ["long", "str", "long"]],
+ "midiOutGetErrorTextW" => ["long", ["long", "wstr", "long"]],
+ "midiOutGetID" => ["long", ["long", "ptr"]],
+ "midiOutGetNumDevs" => ["long", []],
+ "midiOutGetVolume" => ["long", ["long", "ptr"]],
+ "midiOutLongMsg" => ["long", ["long", "ptr", "long"]],
+ "midiOutMessage" => ["long", ["long", "long", "long", "long"]],
+ "midiOutOpen" => ["long", ["ptr", "long", "long", "long", "long"]],
+ "midiOutPrepareHeader" => ["long", ["long", "ptr", "long"]],
+ "midiOutReset" => ["long", ["long"]],
+ "midiOutSetVolume" => ["long", ["long", "long"]],
+ "midiOutShortMsg" => ["long", ["long", "long"]],
+ "midiOutUnprepareHeader" => ["long", ["long", "ptr", "long"]],
+ "midiStreamClose" => ["long", ["long"]],
+ "midiStreamOpen" => ["long", ["ptr", "ptr", "long", "long", "long", "long"]],
+ "midiStreamOut" => ["long", ["long", "ptr", "long"]],
+ "midiStreamPause" => ["long", ["long"]],
+ "midiStreamPosition" => ["long", ["long", "ptr", "long"]],
+ "midiStreamProperty" => ["long", ["long", "ptr", "long"]],
+ "midiStreamRestart" => ["long", ["long"]],
+ "midiStreamStop" => ["long", ["long"]],
+ "mixerClose" => ["long", ["long"]],
+ "mixerGetControlDetailsA" => ["long", ["long", "ptr", "long"]],
+ "mixerGetControlDetailsW" => ["long", ["long", "ptr", "long"]],
+ "mixerGetDevCapsA" => ["long", ["long", "ptr", "long"]],
+ "mixerGetDevCapsW" => ["long", ["long", "ptr", "long"]],
+ "mixerGetID" => ["long", ["long", "ptr", "long"]],
+ "mixerGetLineControlsA" => ["long", ["long", "ptr", "long"]],
+ "mixerGetLineControlsW" => ["long", ["long", "ptr", "long"]],
+ "mixerGetLineInfoA" => ["long", ["long", "ptr", "long"]],
+ "mixerGetLineInfoW" => ["long", ["long", "ptr", "long"]],
+ "mixerGetNumDevs" => ["long", []],
+ "mixerMessage" => ["long", ["long", "long", "long", "long"]],
+ "mixerOpen" => ["long", ["ptr", "long", "long", "long", "long"]],
+ "mixerSetControlDetails" => ["long", ["long", "ptr", "long"]],
+ "mmioAdvance" => ["long", ["long", "ptr", "long"]],
+ "mmioAscend" => ["long", ["long", "ptr", "long"]],
+ "mmioClose" => ["long", ["long", "long"]],
+ "mmioCreateChunk" => ["long", ["long", "ptr", "long"]],
+ "mmioDescend" => ["long", ["long", "ptr", "ptr", "long"]],
+ "mmioFlush" => ["long", ["long", "long"]],
+ "mmioGetInfo" => ["long", ["long", "ptr", "long"]],
+ "mmioInstallIOProcA" => ["ptr", ["long", "ptr", "long"]],
+ "mmioInstallIOProcW" => ["ptr", ["long", "ptr", "long"]],
+ "mmioOpenA" => ["long", ["str", "ptr", "long"]],
+ "mmioOpenW" => ["long", ["wstr", "ptr", "long"]],
+ "mmioRead" => ["long", ["long", "ptr", "long"]],
+ "mmioRenameA" => ["long", ["str", "str", "ptr", "long"]],
+ "mmioRenameW" => ["long", ["wstr", "wstr", "ptr", "long"]],
+ "mmioSeek" => ["long", ["long", "long", "long"]],
+ "mmioSendMessage" => ["long", ["long", "long", "long", "long"]],
+ "mmioSetBuffer" => ["long", ["long", "str", "long", "long"]],
+ "mmioSetInfo" => ["long", ["long", "ptr", "long"]],
+ "mmioStringToFOURCCA" => ["long", ["str", "long"]],
+ "mmioStringToFOURCCW" => ["long", ["wstr", "long"]],
+ "mmioWrite" => ["long", ["long", "ptr", "long"]],
+ "mmsystemGetVersion" => ["long", []],
+ "sndPlaySoundA" => ["long", ["str", "long"]],
+ "sndPlaySoundW" => ["long", ["wstr", "long"]],
+ "timeBeginPeriod" => ["long", ["long"]],
+ "timeEndPeriod" => ["long", ["long"]],
+ "timeGetDevCaps" => ["long", ["ptr", "long"]],
+ "timeGetSystemTime" => ["long", ["ptr", "long"]],
+ "timeGetTime" => ["long", []],
+ "timeKillEvent" => ["long", ["long"]],
+ "timeSetEvent" => ["long", ["long", "long", "ptr", "long", "long"]],
+ "waveInAddBuffer" => ["long", ["long", "ptr", "long"]],
+ "waveInClose" => ["long", ["long"]],
+ "waveInGetDevCapsA" => ["long", ["long", "ptr", "long"]],
+ "waveInGetDevCapsW" => ["long", ["long", "ptr", "long"]],
+ "waveInGetErrorTextA" => ["long", ["long", "str", "long"]],
+ "waveInGetErrorTextW" => ["long", ["long", "wstr", "long"]],
+ "waveInGetID" => ["long", ["long", "ptr"]],
+ "waveInGetNumDevs" => ["long", []],
+ "waveInGetPosition" => ["long", ["long", "ptr", "long"]],
+ "waveInMessage" => ["long", ["long", "long", "long", "long"]],
+ "waveInOpen" => ["long", ["ptr", "long", "ptr", "long", "long", "long"]],
+ "waveInPrepareHeader" => ["long", ["long", "ptr", "long"]],
+ "waveInReset" => ["long", ["long"]],
+ "waveInStart" => ["long", ["long"]],
+ "waveInStop" => ["long", ["long"]],
+ "waveInUnprepareHeader" => ["long", ["long", "ptr", "long"]],
+ "waveOutBreakLoop" => ["long", ["long"]],
+ "waveOutClose" => ["long", ["long"]],
+ "waveOutGetDevCapsA" => ["long", ["long", "ptr", "long"]],
+ "waveOutGetDevCapsW" => ["long", ["long", "ptr", "long"]],
+ "waveOutGetErrorTextA" => ["long", ["long", "str", "long"]],
+ "waveOutGetErrorTextW" => ["long", ["long", "wstr", "long"]],
+ "waveOutGetID" => ["long", ["long", "ptr"]],
+ "waveOutGetNumDevs" => ["long", []],
+ "waveOutGetPitch" => ["long", ["long", "ptr"]],
+ "waveOutGetPlaybackRate" => ["long", ["long", "ptr"]],
+ "waveOutGetPosition" => ["long", ["long", "ptr", "long"]],
+ "waveOutGetVolume" => ["long", ["long", "ptr"]],
+ "waveOutMessage" => ["long", ["long", "long", "long", "long"]],
+ "waveOutOpen" => ["long", ["ptr", "long", "ptr", "long", "long", "long"]],
+ "waveOutPause" => ["long", ["long"]],
+ "waveOutPrepareHeader" => ["long", ["long", "ptr", "long"]],
+ "waveOutReset" => ["long", ["long"]],
+ "waveOutRestart" => ["long", ["long"]],
+ "waveOutSetPitch" => ["long", ["long", "long"]],
+ "waveOutSetPlaybackRate" => ["long", ["long", "long"]],
+ "waveOutSetVolume" => ["long", ["long", "long"]],
+ "waveOutUnprepareHeader" => ["long", ["long", "ptr", "long"]],
+ "waveOutWrite" => ["long", ["long", "ptr", "long"]]
+};
+
+&wine::declare("winmm",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/winspool_drv.pm b/programs/winetest/include/winspool_drv.pm
new file mode 100644
index 0000000..07ad70e
--- /dev/null
+++ b/programs/winetest/include/winspool_drv.pm
@@ -0,0 +1,78 @@
+package winspool_drv;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "AddFormA" => ["long", ["long", "long", "ptr"]],
+ "AddFormW" => ["long", ["long", "long", "ptr"]],
+ "AddJobA" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "AddJobW" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "AddMonitorA" => ["long", ["str", "long", "ptr"]],
+ "AddPrinterA" => ["long", ["str", "long", "ptr"]],
+ "AddPrinterDriverA" => ["long", ["str", "long", "ptr"]],
+ "AddPrinterDriverW" => ["long", ["wstr", "long", "ptr"]],
+ "AddPrinterW" => ["long", ["wstr", "long", "ptr"]],
+ "ClosePrinter" => ["long", ["long"]],
+ "DeleteFormA" => ["long", ["long", "str"]],
+ "DeleteFormW" => ["long", ["long", "wstr"]],
+ "DeleteMonitorA" => ["long", ["str", "str", "str"]],
+ "DeletePortA" => ["long", ["str", "long", "str"]],
+ "DeletePrinter" => ["long", ["long"]],
+ "DeletePrinterDriverA" => ["long", ["str", "str", "str"]],
+ "DeviceCapabilities" => ["long", ["str", "str", "long", "str", "ptr"]],
+ "DeviceCapabilitiesA" => ["long", ["str", "str", "long", "str", "ptr"]],
+ "DeviceCapabilitiesW" => ["long", ["wstr", "wstr", "long", "wstr", "ptr"]],
+ "DocumentPropertiesA" => ["long", ["long", "long", "str", "ptr", "ptr", "long"]],
+ "DocumentPropertiesW" => ["long", ["long", "long", "wstr", "ptr", "ptr", "long"]],
+ "EnumJobsA" => ["long", ["long", "long", "long", "long", "ptr", "long", "ptr", "ptr"]],
+ "EnumJobsW" => ["long", ["long", "long", "long", "long", "ptr", "long", "ptr", "ptr"]],
+ "EnumPortsA" => ["long", ["str", "long", "ptr", "long", "ptr", "ptr"]],
+ "EnumPrinterDataExA" => ["long", ["long", "str", "ptr", "long", "ptr", "ptr"]],
+ "EnumPrinterDataExW" => ["long", ["long", "wstr", "ptr", "long", "ptr", "ptr"]],
+ "EnumPrinterDriversA" => ["long", ["str", "str", "long", "ptr", "long", "ptr", "ptr"]],
+ "EnumPrinterDriversW" => ["long", ["wstr", "wstr", "long", "ptr", "long", "ptr", "ptr"]],
+ "EnumPrintersA" => ["long", ["long", "str", "long", "ptr", "long", "ptr", "ptr"]],
+ "EnumPrintersW" => ["long", ["long", "wstr", "long", "ptr", "long", "ptr", "ptr"]],
+ "GetFormA" => ["long", ["long", "str", "long", "ptr", "long", "ptr"]],
+ "GetFormW" => ["long", ["long", "wstr", "long", "ptr", "long", "ptr"]],
+ "GetPrinterA" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "GetPrinterDataA" => ["long", ["long", "str", "ptr", "ptr", "long", "ptr"]],
+ "GetPrinterDataExA" => ["long", ["long", "str", "str", "ptr", "ptr", "long", "ptr"]],
+ "GetPrinterDataExW" => ["long", ["long", "wstr", "wstr", "ptr", "ptr", "long", "ptr"]],
+ "GetPrinterDataW" => ["long", ["long", "wstr", "ptr", "ptr", "long", "ptr"]],
+ "GetPrinterDriverA" => ["long", ["long", "str", "long", "ptr", "long", "ptr"]],
+ "GetPrinterDriverDirectoryA" => ["long", ["str", "str", "long", "ptr", "long", "ptr"]],
+ "GetPrinterDriverDirectoryW" => ["long", ["wstr", "wstr", "long", "ptr", "long", "ptr"]],
+ "GetPrinterDriverW" => ["long", ["long", "wstr", "long", "ptr", "long", "ptr"]],
+ "GetPrinterW" => ["long", ["long", "long", "ptr", "long", "ptr"]],
+ "OpenPrinterA" => ["long", ["str", "ptr", "ptr"]],
+ "OpenPrinterW" => ["long", ["wstr", "ptr", "ptr"]],
+ "PrinterProperties" => ["long", ["long", "long"]],
+ "ReadPrinter" => ["long", ["long", "ptr", "long", "ptr"]],
+ "ResetPrinterA" => ["long", ["long", "ptr"]],
+ "ResetPrinterW" => ["long", ["long", "ptr"]],
+ "SetFormA" => ["long", ["long", "str", "long", "ptr"]],
+ "SetFormW" => ["long", ["long", "wstr", "long", "ptr"]],
+ "SetJobA" => ["long", ["long", "long", "long", "ptr", "long"]],
+ "SetJobW" => ["long", ["long", "long", "long", "ptr", "long"]],
+ "SetPrinterA" => ["long", ["long", "long", "ptr", "long"]],
+ "SetPrinterDataA" => ["long", ["long", "str", "long", "ptr", "long"]],
+ "SetPrinterDataExA" => ["long", ["long", "str", "str", "long", "ptr", "long"]],
+ "SetPrinterDataExW" => ["long", ["long", "wstr", "wstr", "long", "ptr", "long"]],
+ "SetPrinterDataW" => ["long", ["long", "wstr", "long", "ptr", "long"]],
+ "SetPrinterW" => ["long", ["long", "long", "ptr", "long"]],
+ "WritePrinter" => ["long", ["long", "ptr", "long", "ptr"]]
+};
+
+&wine::declare("winspool.drv",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/wintrust.pm b/programs/winetest/include/wintrust.pm
new file mode 100644
index 0000000..5e30add
--- /dev/null
+++ b/programs/winetest/include/wintrust.pm
@@ -0,0 +1,20 @@
+package wintrust;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "WinVerifyTrust" => ["long", ["long", "ptr", "ptr"]]
+};
+
+&wine::declare("wintrust",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/ws2_32.pm b/programs/winetest/include/ws2_32.pm
new file mode 100644
index 0000000..60f10b2
--- /dev/null
+++ b/programs/winetest/include/ws2_32.pm
@@ -0,0 +1,76 @@
+package ws2_32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "accept" => ["long", ["long", "ptr", "ptr"]],
+ "bind" => ["long", ["long", "ptr", "long"]],
+ "closesocket" => ["long", ["long"]],
+ "connect" => ["long", ["long", "ptr", "long"]],
+ "getpeername" => ["long", ["long", "ptr", "ptr"]],
+ "getsockname" => ["long", ["long", "ptr", "ptr"]],
+ "getsockopt" => ["long", ["long", "long", "long", "ptr", "ptr"]],
+ "htonl" => ["long", ["long"]],
+ "htons" => ["long", ["long"]],
+ "ioctlsocket" => ["long", ["long", "long", "ptr"]],
+ "inet_addr" => ["long", ["ptr"]],
+ "inet_ntoa" => ["ptr", ["unknown"]],
+ "listen" => ["long", ["long", "long"]],
+ "ntohl" => ["long", ["long"]],
+ "ntohs" => ["long", ["long"]],
+ "recv" => ["long", ["long", "ptr", "long", "long"]],
+ "recvfrom" => ["long", ["long", "ptr", "long", "long", "ptr", "ptr"]],
+ "select" => ["long", ["long", "ptr", "ptr", "ptr", "ptr"]],
+ "send" => ["long", ["long", "ptr", "long", "long"]],
+ "sendto" => ["long", ["long", "ptr", "long", "long", "ptr", "long"]],
+ "setsockopt" => ["long", ["long", "long", "long", "ptr", "long"]],
+ "shutdown" => ["long", ["long", "long"]],
+ "socket" => ["long", ["long", "long", "long"]],
+ "WSApSetPostRoutine" => ["long", ["ptr"]],
+ "WSAAccept" => ["long", ["long", "ptr", "ptr", "ptr", "long"]],
+ "WSACloseEvent" => ["long", ["long"]],
+ "WSACreateEvent" => ["long", []],
+ "WSAEnumNetworkEvents" => ["long", ["long", "long", "ptr"]],
+ "WSAEventSelect" => ["long", ["long", "long", "long"]],
+ "gethostbyaddr" => ["ptr", ["ptr", "long", "long"]],
+ "gethostbyname" => ["ptr", ["ptr"]],
+ "getprotobyname" => ["ptr", ["ptr"]],
+ "getprotobynumber" => ["ptr", ["long"]],
+ "getservbyname" => ["ptr", ["ptr", "ptr"]],
+ "getservbyport" => ["ptr", ["long", "ptr"]],
+ "gethostname" => ["long", ["ptr", "long"]],
+ "WSARecvFrom" => ["long", ["long", "ptr", "long", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
+ "WSASend" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "ptr"]],
+ "WSASocketA" => ["long", ["long", "long", "long", "ptr", "long", "long"]],
+ "WSCDeinstallProvider" => ["long", ["ptr", "ptr"]],
+ "WSCInstallProvider" => ["long", ["ptr", "wstr", "ptr", "long", "ptr"]],
+ "WSAAsyncSelect" => ["long", ["long", "long", "long", "long"]],
+ "WSAAsyncGetHostByAddr" => ["long", ["long", "long", "str", "long", "long", "str", "long"]],
+ "WSAAsyncGetHostByName" => ["long", ["long", "long", "str", "str", "long"]],
+ "WSAAsyncGetProtoByNumber" => ["long", ["long", "long", "long", "str", "long"]],
+ "WSAAsyncGetProtoByName" => ["long", ["long", "long", "str", "str", "long"]],
+ "WSAAsyncGetServByPort" => ["long", ["long", "long", "long", "str", "str", "long"]],
+ "WSAAsyncGetServByName" => ["long", ["long", "long", "str", "str", "str", "long"]],
+ "WSACancelAsyncRequest" => ["long", ["long"]],
+ "WSASetBlockingHook" => ["ptr", ["ptr"]],
+ "WSAGetLastError" => ["long", []],
+ "WSASetLastError" => ["void", ["long"]],
+ "WSACancelBlockingCall" => ["long", []],
+ "WSAIsBlocking" => ["long", []],
+ "WSAStartup" => ["long", ["long", "ptr"]],
+ "WSACleanup" => ["long", []],
+ "__WSAFDIsSet" => ["long", ["long", "ptr"]]
+};
+
+&wine::declare("ws2_32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/programs/winetest/include/wsock32.pm b/programs/winetest/include/wsock32.pm
new file mode 100644
index 0000000..ff2b0f0
--- /dev/null
+++ b/programs/winetest/include/wsock32.pm
@@ -0,0 +1,25 @@
+package wsock32;
+
+use strict;
+
+require Exporter;
+
+use wine;
+use vars qw(@ISA @EXPORT @EXPORT_OK);
+
+@ISA = qw(Exporter);
+@EXPORT = qw();
+@EXPORT_OK = qw();
+
+my $module_declarations = {
+ "inet_network" => ["long", ["ptr"]],
+ "getnetbyname" => ["ptr", ["ptr"]],
+ "WSARecvEx" => ["long", ["long", "ptr", "long", "ptr"]],
+ "s_perror" => ["void", ["str"]],
+ "EnumProtocolsA" => ["long", ["ptr", "ptr", "ptr"]],
+ "EnumProtocolsW" => ["long", ["ptr", "ptr", "ptr"]]
+};
+
+&wine::declare("wsock32",%$module_declarations);
+push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
+1;
diff --git a/tools/winapi/winapi_extract b/tools/winapi/winapi_extract
index efae0ed..88cebeb 100755
--- a/tools/winapi/winapi_extract
+++ b/tools/winapi/winapi_extract
@@ -28,30 +28,58 @@
use winapi_parser;
use winapi qw(@winapis);
+my %module2entries;
my %module2spec_file;
my %module2type;
-if($options->spec_files) {
+my %module2filename;
+if($options->spec_files || $options->winetest) {
local $_;
foreach my $spec_file (get_spec_files("winelib")) {
+ my $entries = [];
+
my $module;
my $type;
open(IN, "< $wine_dir/$spec_file");
- while(<IN>) {
+
+ my $header = 1;
+ my $lookahead = 0;
+ while($lookahead || defined($_ = <IN>)) {
+ $lookahead = 0;
+
s/^\s*?(.*?)\s*$/$1/; # remove whitespace at begining and end of line
s/^(.*?)\s*#.*$/$1/; # remove comments
/^$/ && next; # skip empty lines
- if(/^name\s+(.*?)$/) {
- $module = $1;
- $module2spec_file{$module} = $spec_file;
- } elsif(/^type\s+(.*?)$/) {
- $type = $1;
- $module2type{$module} = $type;
+ if($header) {
+ if(/^name\s+(.*?)$/) {
+ $module = $1;
+ $module2spec_file{$module} = $spec_file;
+ } elsif(/^file\s+(.*?)$/) {
+ my $filename = $1;
+ $module2filename{$module} = $filename;
+ } elsif(/^type\s+(.*?)$/) {
+ $type = $1;
+ $module2type{$module} = $type;
+ } elsif(/^\d+|@/) {
+ $header = 0;
+ $lookahead = 1;
+ }
+ next;
+ }
+
+ if(/^(@|\d+)\s+stdcall\s+(\w+)\s*\(\s*([^\)]*)\s*\)/) {
+ my $ordinal = $1;
+ my $name = $2;
+ my @args = split(/\s+/, $3);
+
+ push @$entries, [$name, "undef", \@args];
}
}
close(IN);
+
+ $module2entries{$module} = $entries;
}
}
@@ -177,7 +205,7 @@
my $calling_convention = $function->calling_convention;
my $statements = $function->statements;
- if($options->spec_files) {
+ if($options->spec_files || $options->winetest) {
documentation_specifications($function);
}
@@ -377,3 +405,106 @@
}
}
+if($options->winetest) {
+ foreach my $module (sort(keys(%specifications))) {
+ my $type = $module2type{$module};
+ my $filename = $module2filename{$module} || $module;
+ my $modulename = $filename;
+ $modulename =~ s/\./_/g;
+
+ next unless $type eq "win32";
+
+ my @entries;
+
+ foreach my $external_name (sort(keys(%{$specifications{$module}{unknown}}))) {
+ my $entry = $specifications{$module}{unknown}{$external_name};
+ push @entries, $entry;
+ }
+
+ foreach my $ordinal (sort {$a <=> $b} keys(%{$specifications{$module}{fixed}})) {
+ my $entry = $specifications{$module}{fixed}{$ordinal};
+ push @entries, $entry;
+ }
+
+ foreach my $external_name (sort(keys(%{$specifications{$module}{unfixed}}))) {
+ my $entry = $specifications{$module}{unfixed}{$external_name};
+ push @entries, $entry;
+ }
+
+ my $n = 0;
+ foreach my $entry (@entries) {
+ my $external_name = $entry->{external_name};
+ my $ordinal = $entry->{ordinal};
+ my $function = $entry->{function};
+
+ my $return_kind;
+ my $calling_convention;
+ my $refargument_kinds;
+ if($type eq "win16") {
+ $return_kind = $function->return_kind16 || "undef";
+ $calling_convention = $function->calling_convention16 || "undef";
+ $refargument_kinds = $function->argument_kinds16;
+ } elsif($type eq "win32") {
+ $return_kind = $function->return_kind32 || "undef";
+ $calling_convention = $function->calling_convention32 || "undef";
+ $refargument_kinds = $function->argument_kinds32;
+ }
+
+ my @argument_kinds;
+ if(defined($refargument_kinds)) {
+ @argument_kinds = map { $_ || "undef"; } @$refargument_kinds;
+ }
+
+ next if $calling_convention ne "stdcall";
+ next if $external_name eq "\@";
+
+ if($n == 0) {
+ open(OUT, "> $wine_dir/programs/winetest/include/${modulename}.pm");
+
+ print OUT "package ${modulename};\n";
+ print OUT "\n";
+
+ print OUT "use strict;\n";
+ print OUT "\n";
+
+ print OUT "require Exporter;\n";
+ print OUT "\n";
+
+ print OUT "use wine;\n";
+ print OUT "use vars qw(\@ISA \@EXPORT \@EXPORT_OK);\n";
+ print OUT "\n";
+
+ print OUT "\@ISA = qw(Exporter);\n";
+ print OUT "\@EXPORT = qw();\n";
+ print OUT "\@EXPORT_OK = qw();\n";
+ print OUT "\n";
+
+ print OUT "my \$module_declarations = {\n";
+ } elsif($n > 0) {
+ print OUT ",\n";
+ }
+
+ print OUT " \"\Q$external_name\E\" => [\"$return_kind\", [";
+ my $m = 0;
+ foreach my $argument_kind (@argument_kinds) {
+ if($m > 0) {
+ print OUT ", ";
+ }
+ print OUT "\"$argument_kind\"";
+ $m++;
+ }
+ print OUT "]]";
+ $n++;
+ }
+
+ if($n > 0) {
+ print OUT "\n";
+ print OUT "};\n";
+ print OUT "\n";
+ print OUT "&wine::declare(\"$filename\",\%\$module_declarations);\n";
+ print OUT "push \@EXPORT, map { \"&\" . \$_; } sort(keys(\%\$module_declarations));\n";
+ print OUT "1;\n";
+ close(OUT);
+ }
+ }
+}
diff --git a/tools/winapi/winapi_extract_options.pm b/tools/winapi/winapi_extract_options.pm
index 3d29621..6a5d4eb 100644
--- a/tools/winapi/winapi_extract_options.pm
+++ b/tools/winapi/winapi_extract_options.pm
@@ -25,8 +25,9 @@
"local" => { default => 1, description => "local extraction" },
"global" => { default => 1, description => "global extraction" },
- "spec-files" => { default => 1, parent => "global", description => "spec files extraction" },
+ "spec-files" => { default => 0, parent => "global", description => "spec files extraction" },
"stub-statistics" => { default => 1, parent => "global", description => "stub statistics" },
+ "winetest" => { default => 1, parent => "global", description => "winetest extraction" },
);
my %options_short = (