comparison win32/aclapi.d @ 1:4a9dcbd9e54f

-files of 0.13 beta -fixes so that it now compiles with the current dmd version
author marton@basel.hu
date Tue, 05 Apr 2011 20:44:01 +0200
parents
children
comparison
equal deleted inserted replaced
0:586e4a649642 1:4a9dcbd9e54f
1 /***********************************************************************\
2 * aclapi.d *
3 * *
4 * Windows API header module *
5 * *
6 * Translated from MinGW Windows headers *
7 * by Stewart Gordon *
8 * *
9 * Placed into public domain *
10 \***********************************************************************/
11 module win32.aclapi;
12 pragma(lib, "advapi32.lib");
13
14 import win32.windows, win32.accctrl;
15
16 static assert (_WIN32_WINNT_ONLY,
17 "win32.aclapi is available only if version WindowsNTonly, WindowsXP, "
18 "Windows2003 or WindowsVista is set");
19
20 extern (Windows) {
21 VOID BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A, LPSTR, DWORD,
22 ACCESS_MODE, DWORD);
23 VOID BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W, LPWSTR, DWORD,
24 ACCESS_MODE, DWORD);
25 DWORD BuildSecurityDescriptorA(PTRUSTEE_A, PTRUSTEE_A , ULONG,
26 PEXPLICIT_ACCESS_A, ULONG, PEXPLICIT_ACCESS_A, PSECURITY_DESCRIPTOR,
27 PULONG, PSECURITY_DESCRIPTOR*);
28 DWORD BuildSecurityDescriptorW(PTRUSTEE_W, PTRUSTEE_W , ULONG,
29 PEXPLICIT_ACCESS_W, ULONG, PEXPLICIT_ACCESS_W, PSECURITY_DESCRIPTOR,
30 PULONG, PSECURITY_DESCRIPTOR*);
31 VOID BuildTrusteeWithNameA(PTRUSTEE_A, LPSTR);
32 VOID BuildTrusteeWithNameW(PTRUSTEE_W, LPWSTR);
33 VOID BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A, POBJECTS_AND_NAME_A,
34 SE_OBJECT_TYPE, LPSTR, LPSTR, LPSTR);
35 VOID BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W, POBJECTS_AND_NAME_W,
36 SE_OBJECT_TYPE, LPWSTR, LPWSTR, LPWSTR);
37 VOID BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A, POBJECTS_AND_SID,
38 GUID*, GUID*, PSID);
39 VOID BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W, POBJECTS_AND_SID,
40 GUID*, GUID*, PSID);
41 VOID BuildTrusteeWithSidA(PTRUSTEE_A, PSID);
42 VOID BuildTrusteeWithSidW(PTRUSTEE_W, PSID);
43 DWORD GetAuditedPermissionsFromAclA(PACL, PTRUSTEE_A, PACCESS_MASK,
44 PACCESS_MASK);
45 DWORD GetAuditedPermissionsFromAclW(PACL, PTRUSTEE_W, PACCESS_MASK,
46 PACCESS_MASK);
47 DWORD GetEffectiveRightsFromAclA(PACL, PTRUSTEE_A, PACCESS_MASK);
48 DWORD GetEffectiveRightsFromAclW(PACL, PTRUSTEE_W, PACCESS_MASK);
49 DWORD GetExplicitEntriesFromAclA(PACL, PULONG, PEXPLICIT_ACCESS_A*);
50 DWORD GetExplicitEntriesFromAclW(PACL, PULONG, PEXPLICIT_ACCESS_W*);
51 static if (WINVER >= 0x501) {
52 DWORD GetInheritanceSourceA(LPSTR, SE_OBJECT_TYPE,
53 SECURITY_INFORMATION, BOOL, GUID**, DWORD, PACL, void*,
54 PGENERIC_MAPPING, PINHERITED_FROMA);
55 DWORD GetInheritanceSourceW(LPWSTR, SE_OBJECT_TYPE,
56 SECURITY_INFORMATION, BOOL, GUID**, DWORD, PACL, void*,
57 PGENERIC_MAPPING, PINHERITED_FROMW);
58 }
59 DWORD GetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
60 PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
61 DWORD GetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
62 PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
63 DWORD GetSecurityInfo(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
64 PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
65 TRUSTEE_FORM GetTrusteeFormA(PTRUSTEE_A);
66 TRUSTEE_FORM GetTrusteeFormW(PTRUSTEE_W);
67 LPSTR GetTrusteeNameA(PTRUSTEE_A);
68 LPWSTR GetTrusteeNameW(PTRUSTEE_W);
69 TRUSTEE_TYPE GetTrusteeTypeA(PTRUSTEE_A);
70 TRUSTEE_TYPE GetTrusteeTypeW(PTRUSTEE_W);
71 DWORD LookupSecurityDescriptorPartsA(PTRUSTEE_A*, PTRUSTEE_A*, PULONG,
72 PEXPLICIT_ACCESS_A*, PULONG, PEXPLICIT_ACCESS_A*,
73 PSECURITY_DESCRIPTOR);
74 DWORD LookupSecurityDescriptorPartsW(PTRUSTEE_W*, PTRUSTEE_W*, PULONG,
75 PEXPLICIT_ACCESS_W*, PULONG, PEXPLICIT_ACCESS_W*,
76 PSECURITY_DESCRIPTOR);
77 DWORD SetEntriesInAclA(ULONG, PEXPLICIT_ACCESS_A, PACL, PACL*);
78 DWORD SetEntriesInAclW(ULONG, PEXPLICIT_ACCESS_W, PACL, PACL*);
79 DWORD SetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
80 PSID, PSID, PACL, PACL);
81 DWORD SetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
82 PSID, PSID, PACL, PACL);
83 DWORD SetSecurityInfo(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID,
84 PSID, PACL, PACL);
85 VOID BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A, LPSTR,
86 PTRUSTEE_A, DWORD, ACCESS_MODE, DWORD);
87 VOID BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W, LPWSTR,
88 PTRUSTEE_W, DWORD, ACCESS_MODE, DWORD);
89 VOID BuildImpersonateTrusteeA(PTRUSTEE_A, PTRUSTEE_A);
90 VOID BuildImpersonateTrusteeW(PTRUSTEE_W, PTRUSTEE_W);
91 PTRUSTEE_A GetMultipleTrusteeA(PTRUSTEE_A);
92 PTRUSTEE_W GetMultipleTrusteeW(PTRUSTEE_W);
93 MULTIPLE_TRUSTEE_OPERATION GetMultipleTrusteeOperationA(PTRUSTEE_A);
94 MULTIPLE_TRUSTEE_OPERATION GetMultipleTrusteeOperationW(PTRUSTEE_W);
95 }
96
97 version (Unicode) {
98 alias BuildExplicitAccessWithNameW BuildExplicitAccessWithName;
99 alias BuildSecurityDescriptorW BuildSecurityDescriptor;
100 alias BuildTrusteeWithNameW BuildTrusteeWithName;
101 alias BuildTrusteeWithObjectsAndNameW BuildTrusteeWithObjectsAndName;
102 alias BuildTrusteeWithObjectsAndSidW BuildTrusteeWithObjectsAndSid;
103 alias BuildTrusteeWithSidW BuildTrusteeWithSid;
104 alias GetAuditedPermissionsFromAclW GetAuditedPermissionsFromAcl;
105 alias GetEffectiveRightsFromAclW GetEffectiveRightsFromAcl;
106 alias GetExplicitEntriesFromAclW GetExplicitEntriesFromAcl;
107 alias GetNamedSecurityInfoW GetNamedSecurityInfo;
108 alias GetTrusteeFormW GetTrusteeForm;
109 alias GetTrusteeNameW GetTrusteeName;
110 alias GetTrusteeTypeW GetTrusteeType;
111 alias LookupSecurityDescriptorPartsW LookupSecurityDescriptorParts;
112 alias SetEntriesInAclW SetEntriesInAcl;
113 alias SetNamedSecurityInfoW SetNamedSecurityInfo;
114 alias BuildImpersonateExplicitAccessWithNameW
115 BuildImpersonateExplicitAccessWithName;
116 alias BuildImpersonateTrusteeW BuildImpersonateTrustee;
117 alias GetMultipleTrusteeW GetMultipleTrustee;
118 alias GetMultipleTrusteeOperationW GetMultipleTrusteeOperation;
119 } else {
120 alias BuildExplicitAccessWithNameA BuildExplicitAccessWithName;
121 alias BuildSecurityDescriptorA BuildSecurityDescriptor;
122 alias BuildTrusteeWithNameA BuildTrusteeWithName;
123 alias BuildTrusteeWithObjectsAndNameA BuildTrusteeWithObjectsAndName;
124 alias BuildTrusteeWithObjectsAndSidA BuildTrusteeWithObjectsAndSid;
125 alias BuildTrusteeWithSidA BuildTrusteeWithSid;
126 alias GetAuditedPermissionsFromAclA GetAuditedPermissionsFromAcl;
127 alias GetEffectiveRightsFromAclA GetEffectiveRightsFromAcl;
128 alias GetExplicitEntriesFromAclA GetExplicitEntriesFromAcl;
129 alias GetNamedSecurityInfoA GetNamedSecurityInfo;
130 alias GetTrusteeFormA GetTrusteeForm;
131 alias GetTrusteeNameA GetTrusteeName;
132 alias GetTrusteeTypeA GetTrusteeType;
133 alias LookupSecurityDescriptorPartsA LookupSecurityDescriptorParts;
134 alias SetEntriesInAclA SetEntriesInAcl;
135 alias SetNamedSecurityInfoA SetNamedSecurityInfo;
136 alias BuildImpersonateExplicitAccessWithNameA
137 BuildImpersonateExplicitAccessWithName;
138 alias BuildImpersonateTrusteeA BuildImpersonateTrustee;
139 alias GetMultipleTrusteeA GetMultipleTrustee;
140 alias GetMultipleTrusteeOperationA GetMultipleTrusteeOperation;
141 }