root/trunk/win32/aclapi.d

Revision 201, 7.1 kB (checked in by smjg, 1 year ago)

Fixed a few version-dependent compile errors

Line 
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 }
Note: See TracBrowser for help on using the browser.