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