| 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 = { |
| "AbortSystemShutdownA" => ["long", ["str"]], |
| "AbortSystemShutdownW" => ["long", ["wstr"]], |
| "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"]], |
| "CheckTokenMembership" => ["long", ["long", "ptr", "ptr"]], |
| "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"]], |
| "GetAce" => ["long", ["ptr", "long", "ptr"]], |
| "GetCurrentHwProfileA" => ["long", ["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"]], |
| "ImpersonateLoggedOnUser" => ["long", ["long"]], |
| "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"]], |
| "PrivilegeCheck" => ["long", ["long", "ptr", "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"]], |
| "RegQueryMultipleValuesA" => ["long", ["long", "ptr", "long", "str", "ptr"]], |
| "RegQueryMultipleValuesW" => ["long", ["long", "ptr", "long", "wstr", "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"]], |
| "RegReplaceKeyA" => ["long", ["long", "str", "str", "str"]], |
| "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"]], |
| "SetTokenInformation" => ["long", ["long", "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; |