Changed the GDI driver interface to pass an opaque PHYSDEV pointer
[wine] / programs / winetest / include / advapi32.pm
1 package advapi32;
2
3 use strict;
4
5 require Exporter;
6
7 use wine;
8 use vars qw(@ISA @EXPORT @EXPORT_OK);
9
10 @ISA = qw(Exporter);
11 @EXPORT = qw();
12 @EXPORT_OK = qw();
13
14 my $module_declarations = {
15     "AccessCheck" => ["long",  ["ptr", "long", "long", "ptr", "ptr", "ptr", "ptr", "ptr"]],
16     "AddAccessAllowedAce" => ["long",  ["ptr", "long", "long", "ptr"]],
17     "AdjustTokenPrivileges" => ["long",  ["long", "long", "ptr", "long", "ptr", "ptr"]],
18     "AllocateAndInitializeSid" => ["long",  ["ptr", "long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
19     "AllocateLocallyUniqueId" => ["long",  ["ptr"]],
20     "BackupEventLogA" => ["long",  ["long", "str"]],
21     "BackupEventLogW" => ["long",  ["long", "wstr"]],
22     "ClearEventLogA" => ["long",  ["long", "str"]],
23     "ClearEventLogW" => ["long",  ["long", "wstr"]],
24     "CloseEventLog" => ["long",  ["long"]],
25     "CloseServiceHandle" => ["long",  ["long"]],
26     "ControlService" => ["long",  ["long", "long", "ptr"]],
27     "CopySid" => ["long",  ["long", "ptr", "ptr"]],
28     "CreateServiceA" => ["long",  ["long", "str", "str", "long", "long", "long", "long", "str", "str", "ptr", "str", "str", "str"]],
29     "CreateServiceW" => ["long",  ["long", "wstr", "wstr", "long", "long", "long", "long", "wstr", "wstr", "ptr", "wstr", "wstr", "wstr"]],
30     "CryptAcquireContextA" => ["long",  ["ptr", "str", "str", "long", "long"]],
31     "CryptAcquireContextW" => ["long",  ["ptr", "wstr", "wstr", "long", "long"]],
32     "CryptContextAddRef" => ["long",  ["long", "ptr", "long"]],
33     "CryptCreateHash" => ["long",  ["long", "long", "long", "long", "ptr"]],
34     "CryptDecrypt" => ["long",  ["long", "long", "long", "long", "ptr", "ptr"]],
35     "CryptDeriveKey" => ["long",  ["long", "long", "long", "long", "ptr"]],
36     "CryptDestroyHash" => ["long",  ["long"]],
37     "CryptDestroyKey" => ["long",  ["long"]],
38     "CryptDuplicateHash" => ["long",  ["long", "ptr", "long", "ptr"]],
39     "CryptDuplicateKey" => ["long",  ["long", "ptr", "long", "ptr"]],
40     "CryptEncrypt" => ["long",  ["long", "long", "long", "long", "ptr", "ptr", "long"]],
41     "CryptEnumProviderTypesA" => ["long",  ["long", "ptr", "long", "ptr", "str", "ptr"]],
42     "CryptEnumProviderTypesW" => ["long",  ["long", "ptr", "long", "ptr", "wstr", "ptr"]],
43     "CryptEnumProvidersA" => ["long",  ["long", "ptr", "long", "ptr", "str", "ptr"]],
44     "CryptEnumProvidersW" => ["long",  ["long", "ptr", "long", "ptr", "wstr", "ptr"]],
45     "CryptExportKey" => ["long",  ["long", "long", "long", "long", "ptr", "ptr"]],
46     "CryptGenKey" => ["long",  ["long", "long", "long", "ptr"]],
47     "CryptGenRandom" => ["long",  ["long", "long", "ptr"]],
48     "CryptGetDefaultProviderA" => ["long",  ["long", "ptr", "long", "str", "ptr"]],
49     "CryptGetDefaultProviderW" => ["long",  ["long", "ptr", "long", "wstr", "ptr"]],
50     "CryptGetHashParam" => ["long",  ["long", "long", "ptr", "ptr", "long"]],
51     "CryptGetKeyParam" => ["long",  ["long", "long", "ptr", "ptr", "long"]],
52     "CryptGetProvParam" => ["long",  ["long", "long", "ptr", "ptr", "long"]],
53     "CryptGetUserKey" => ["long",  ["long", "long", "ptr"]],
54     "CryptHashData" => ["long",  ["long", "ptr", "long", "long"]],
55     "CryptHashSessionKey" => ["long",  ["long", "long", "long"]],
56     "CryptImportKey" => ["long",  ["long", "ptr", "long", "long", "long", "ptr"]],
57     "CryptReleaseContext" => ["long",  ["long", "long"]],
58     "CryptSetHashParam" => ["long",  ["long", "long", "ptr", "long"]],
59     "CryptSetKeyParam" => ["long",  ["long", "long", "ptr", "long"]],
60     "CryptSetProvParam" => ["long",  ["long", "long", "ptr", "long"]],
61     "CryptSetProviderA" => ["long",  ["str", "long"]],
62     "CryptSetProviderExA" => ["long",  ["str", "long", "ptr", "long"]],
63     "CryptSetProviderExW" => ["long",  ["wstr", "long", "ptr", "long"]],
64     "CryptSetProviderW" => ["long",  ["wstr", "long"]],
65     "CryptSignHashA" => ["long",  ["long", "long", "str", "long", "ptr", "ptr"]],
66     "CryptSignHashW" => ["long",  ["long", "long", "str", "long", "ptr", "ptr"]],
67     "CryptVerifySignatureA" => ["long",  ["long", "ptr", "long", "long", "str", "long"]],
68     "CryptVerifySignatureW" => ["long",  ["long", "ptr", "long", "long", "str", "long"]],
69     "DeleteService" => ["long",  ["long"]],
70     "DeregisterEventSource" => ["long",  ["long"]],
71     "EnumServicesStatusA" => ["long",  ["long", "long", "long", "ptr", "long", "ptr", "ptr", "ptr"]],
72     "EnumServicesStatusW" => ["long",  ["long", "long", "long", "ptr", "long", "ptr", "ptr", "ptr"]],
73     "EqualPrefixSid" => ["long",  ["ptr", "ptr"]],
74     "EqualSid" => ["long",  ["ptr", "ptr"]],
75     "FreeSid" => ["ptr",  ["ptr"]],
76     "GetFileSecurityA" => ["long",  ["str", "long", "ptr", "long", "ptr"]],
77     "GetFileSecurityW" => ["long",  ["wstr", "long", "ptr", "long", "ptr"]],
78     "GetLengthSid" => ["long",  ["ptr"]],
79     "GetNumberOfEventLogRecords" => ["long",  ["long", "ptr"]],
80     "GetOldestEventLogRecord" => ["long",  ["long", "ptr"]],
81     "GetSecurityDescriptorControl" => ["long",  ["ptr", "ptr", "ptr"]],
82     "GetSecurityDescriptorDacl" => ["long",  ["ptr", "ptr", "ptr", "ptr"]],
83     "GetSecurityDescriptorGroup" => ["long",  ["ptr", "ptr", "ptr"]],
84     "GetSecurityDescriptorLength" => ["long",  ["ptr"]],
85     "GetSecurityDescriptorOwner" => ["long",  ["ptr", "ptr", "ptr"]],
86     "GetSecurityDescriptorSacl" => ["long",  ["ptr", "ptr", "ptr", "ptr"]],
87     "GetSidIdentifierAuthority" => ["ptr",  ["ptr"]],
88     "GetSidLengthRequired" => ["long",  ["long"]],
89     "GetSidSubAuthority" => ["ptr",  ["ptr", "long"]],
90     "GetSidSubAuthorityCount" => ["ptr",  ["ptr"]],
91     "GetTokenInformation" => ["long",  ["long", "long", "ptr", "long", "ptr"]],
92     "GetUserNameA" => ["long",  ["str", "ptr"]],
93     "GetUserNameW" => ["long",  ["wstr", "ptr"]],
94     "ImpersonateSelf" => ["long",  ["long"]],
95     "InitializeAcl" => ["long",  ["ptr", "long", "long"]],
96     "InitializeSecurityDescriptor" => ["long",  ["ptr", "long"]],
97     "InitializeSid" => ["long",  ["ptr", "ptr", "long"]],
98     "IsValidSecurityDescriptor" => ["long",  ["ptr"]],
99     "IsValidSid" => ["long",  ["ptr"]],
100     "LookupAccountNameA" => ["long",  ["str", "str", "ptr", "ptr", "str", "ptr", "ptr"]],
101     "LookupAccountSidA" => ["long",  ["str", "ptr", "str", "ptr", "str", "ptr", "ptr"]],
102     "LookupAccountSidW" => ["long",  ["wstr", "ptr", "wstr", "ptr", "wstr", "ptr", "ptr"]],
103     "LookupPrivilegeValueA" => ["long",  ["str", "str", "ptr"]],
104     "LookupPrivilegeValueW" => ["long",  ["wstr", "wstr", "ptr"]],
105     "LsaClose" => ["long",  ["long"]],
106     "LsaFreeMemory" => ["long",  ["ptr"]],
107     "LsaLookupSids" => ["long",  ["long", "long", "ptr", "ptr", "ptr"]],
108     "LsaOpenPolicy" => ["long",  ["ptr", "ptr", "long", "ptr"]],
109     "LsaQueryInformationPolicy" => ["long",  ["long", "long", "ptr"]],
110     "MakeSelfRelativeSD" => ["long",  ["ptr", "ptr", "ptr"]],
111     "NotifyBootConfigStatus" => ["long",  ["long"]],
112     "NotifyChangeEventLog" => ["long",  ["long", "long"]],
113     "OpenBackupEventLogA" => ["long",  ["str", "str"]],
114     "OpenBackupEventLogW" => ["long",  ["wstr", "wstr"]],
115     "OpenEventLogA" => ["long",  ["str", "str"]],
116     "OpenEventLogW" => ["long",  ["wstr", "wstr"]],
117     "OpenProcessToken" => ["long",  ["long", "long", "ptr"]],
118     "OpenSCManagerA" => ["long",  ["str", "str", "long"]],
119     "OpenSCManagerW" => ["long",  ["wstr", "wstr", "long"]],
120     "OpenServiceA" => ["long",  ["long", "str", "long"]],
121     "OpenServiceW" => ["long",  ["long", "wstr", "long"]],
122     "OpenThreadToken" => ["long",  ["long", "long", "long", "ptr"]],
123     "QueryServiceStatus" => ["long",  ["long", "ptr"]],
124     "QueryWindows31FilesMigration" => ["long",  ["long"]],
125     "ReadEventLogA" => ["long",  ["long", "long", "long", "ptr", "long", "ptr", "ptr"]],
126     "ReadEventLogW" => ["long",  ["long", "long", "long", "ptr", "long", "ptr", "ptr"]],
127     "RegCloseKey" => ["long",  ["long"]],
128     "RegConnectRegistryA" => ["long",  ["str", "long", "ptr"]],
129     "RegConnectRegistryW" => ["long",  ["wstr", "long", "ptr"]],
130     "RegCreateKeyA" => ["long",  ["long", "str", "ptr"]],
131     "RegCreateKeyExA" => ["long",  ["long", "str", "long", "str", "long", "long", "ptr", "ptr", "ptr"]],
132     "RegCreateKeyExW" => ["long",  ["long", "wstr", "long", "wstr", "long", "long", "ptr", "ptr", "ptr"]],
133     "RegCreateKeyW" => ["long",  ["long", "wstr", "ptr"]],
134     "RegDeleteKeyA" => ["long",  ["long", "str"]],
135     "RegDeleteKeyW" => ["long",  ["long", "wstr"]],
136     "RegDeleteValueA" => ["long",  ["long", "str"]],
137     "RegDeleteValueW" => ["long",  ["long", "wstr"]],
138     "RegEnumKeyA" => ["long",  ["long", "long", "str", "long"]],
139     "RegEnumKeyExA" => ["long",  ["long", "long", "str", "ptr", "ptr", "str", "ptr", "ptr"]],
140     "RegEnumKeyExW" => ["long",  ["long", "long", "wstr", "ptr", "ptr", "wstr", "ptr", "ptr"]],
141     "RegEnumKeyW" => ["long",  ["long", "long", "wstr", "long"]],
142     "RegEnumValueA" => ["long",  ["long", "long", "str", "ptr", "ptr", "ptr", "ptr", "ptr"]],
143     "RegEnumValueW" => ["long",  ["long", "long", "wstr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
144     "RegFlushKey" => ["long",  ["long"]],
145     "RegGetKeySecurity" => ["long",  ["long", "long", "ptr", "ptr"]],
146     "RegLoadKeyA" => ["long",  ["long", "str", "str"]],
147     "RegLoadKeyW" => ["long",  ["long", "wstr", "wstr"]],
148     "RegNotifyChangeKeyValue" => ["long",  ["long", "long", "long", "long", "long"]],
149     "RegOpenCurrentUser" => ["long",  ["long", "ptr"]],
150     "RegOpenKeyA" => ["long",  ["long", "str", "ptr"]],
151     "RegOpenKeyExA" => ["long",  ["long", "str", "long", "long", "ptr"]],
152     "RegOpenKeyExW" => ["long",  ["long", "wstr", "long", "long", "ptr"]],
153     "RegOpenKeyW" => ["long",  ["long", "wstr", "ptr"]],
154     "RegQueryInfoKeyA" => ["long",  ["long", "str", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
155     "RegQueryInfoKeyW" => ["long",  ["long", "wstr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
156     "RegQueryValueA" => ["long",  ["long", "str", "str", "ptr"]],
157     "RegQueryValueExA" => ["long",  ["long", "str", "ptr", "ptr", "ptr", "ptr"]],
158     "RegQueryValueExW" => ["long",  ["long", "wstr", "ptr", "ptr", "ptr", "ptr"]],
159     "RegQueryValueW" => ["long",  ["long", "wstr", "wstr", "ptr"]],
160     "RegReplaceKeyW" => ["long",  ["long", "wstr", "wstr", "wstr"]],
161     "RegRestoreKeyA" => ["long",  ["long", "str", "long"]],
162     "RegRestoreKeyW" => ["long",  ["long", "wstr", "long"]],
163     "RegSaveKeyA" => ["long",  ["long", "str", "ptr"]],
164     "RegSaveKeyW" => ["long",  ["long", "wstr", "ptr"]],
165     "RegSetKeySecurity" => ["long",  ["long", "long", "ptr"]],
166     "RegSetValueA" => ["long",  ["long", "str", "long", "str", "long"]],
167     "RegSetValueExA" => ["long",  ["long", "str", "long", "long", "ptr", "long"]],
168     "RegSetValueExW" => ["long",  ["long", "wstr", "long", "long", "ptr", "long"]],
169     "RegSetValueW" => ["long",  ["long", "wstr", "long", "wstr", "long"]],
170     "RegUnLoadKeyA" => ["long",  ["long", "str"]],
171     "RegUnLoadKeyW" => ["long",  ["long", "wstr"]],
172     "RegisterEventSourceA" => ["long",  ["str", "str"]],
173     "RegisterEventSourceW" => ["long",  ["wstr", "wstr"]],
174     "RegisterServiceCtrlHandlerA" => ["long",  ["str", "ptr"]],
175     "RegisterServiceCtrlHandlerW" => ["long",  ["wstr", "ptr"]],
176     "ReportEventA" => ["long",  ["long", "long", "long", "long", "ptr", "long", "long", "ptr", "ptr"]],
177     "ReportEventW" => ["long",  ["long", "long", "long", "long", "ptr", "long", "long", "ptr", "ptr"]],
178     "RevertToSelf" => ["long",  []],
179     "SetFileSecurityA" => ["long",  ["str", "long", "ptr"]],
180     "SetFileSecurityW" => ["long",  ["wstr", "long", "ptr"]],
181     "SetKernelObjectSecurity" => ["long",  ["long", "long", "ptr"]],
182     "SetSecurityDescriptorDacl" => ["long",  ["ptr", "long", "ptr", "long"]],
183     "SetSecurityDescriptorGroup" => ["long",  ["ptr", "ptr", "long"]],
184     "SetSecurityDescriptorOwner" => ["long",  ["ptr", "ptr", "long"]],
185     "SetSecurityDescriptorSacl" => ["long",  ["ptr", "long", "ptr", "long"]],
186     "SetServiceStatus" => ["long",  ["long", "ptr"]],
187     "SetThreadToken" => ["long",  ["ptr", "long"]],
188     "StartServiceA" => ["long",  ["long", "long", "ptr"]],
189     "StartServiceCtrlDispatcherA" => ["long",  ["ptr"]],
190     "StartServiceCtrlDispatcherW" => ["long",  ["ptr"]],
191     "StartServiceW" => ["long",  ["long", "long", "ptr"]],
192     "SynchronizeWindows31FilesAndWindowsNTRegistry" => ["long",  ["long", "long", "long", "long"]]
193 };
194
195 &wine::declare("advapi32",%$module_declarations);
196 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
197 1;