sane.ds: Dynamically load libsane.so.
[wine] / include / aclapi.h
1 /*
2  * Copyright (C) 2004 Mike McCormack
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18
19 #ifndef __WINE_ACLAPI_H
20 #define __WINE_ACLAPI_H
21
22 #ifndef __WINESRC__
23 # include <windows.h>
24 #endif
25 #include <accctrl.h>
26
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30
31 DWORD WINAPI GetExplicitEntriesFromAclA( PACL, PULONG, PEXPLICIT_ACCESS_A* );
32 DWORD WINAPI GetExplicitEntriesFromAclW( PACL, PULONG, PEXPLICIT_ACCESS_W* );
33 #define     GetExplicitEntriesFromAcl WINELIB_NAME_AW(GetExplicitEntriesFromAcl)
34
35 DWORD WINAPI GetSecurityInfo( HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
36         PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
37
38 DWORD WINAPI GetSecurityInfoExA(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
39         LPCSTR, LPCSTR, PACTRL_ACCESSA*, PACTRL_AUDITA*, LPSTR*, LPSTR*);
40 DWORD WINAPI GetSecurityInfoExW(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
41         LPCWSTR, LPCWSTR, PACTRL_ACCESSW*, PACTRL_AUDITW*, LPWSTR*, LPWSTR*);
42 #define     GetSecurityInfoEx WINELIB_NAME_AW(GetSecurityInfoEx)
43
44 DWORD WINAPI GetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
45         PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
46 DWORD WINAPI GetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION,
47         PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*);
48 #define     GetNamedSecurityInfo WINELIB_NAME_AW(GetNamedSecurityInfo)
49
50 DWORD WINAPI SetNamedSecurityInfoA(LPSTR, SE_OBJECT_TYPE,
51          SECURITY_INFORMATION, PSID, PSID, PACL, PACL);
52 DWORD WINAPI SetNamedSecurityInfoW(LPWSTR, SE_OBJECT_TYPE,
53          SECURITY_INFORMATION, PSID, PSID, PACL, PACL);
54 #define     SetNamedSecurityInfo WINELIB_NAME_AW(SetNamedSecurityInfo)
55
56 DWORD WINAPI SetEntriesInAclA( ULONG, PEXPLICIT_ACCESSA, PACL, PACL*);
57 DWORD WINAPI SetEntriesInAclW( ULONG, PEXPLICIT_ACCESSW, PACL, PACL*);
58 #define     SetEntriesInAcl WINELIB_NAME_AW(SetEntriesInAcl)
59
60 DWORD WINAPI SetSecurityInfo(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
61                              PSID, PSID, PACL, PACL);
62
63 TRUSTEE_FORM WINAPI GetTrusteeFormA( PTRUSTEEA );
64 TRUSTEE_FORM WINAPI GetTrusteeFormW( PTRUSTEEW );
65 #define     GetTrusteeForm WINELIB_NAME_AW(GetTrusteeForm)
66
67 LPSTR WINAPI GetTrusteeNameA( PTRUSTEEA );
68 LPWSTR WINAPI GetTrusteeNameW( PTRUSTEEW );
69 #define     GetTrusteeName WINELIB_NAME_AW(GetTrusteeName)
70
71 TRUSTEE_TYPE WINAPI GetTrusteeTypeA( PTRUSTEEA );
72 TRUSTEE_TYPE WINAPI GetTrusteeTypeW( PTRUSTEEW );
73 #define     GetTrusteeType WINELIB_NAME_AW(GetTrusteeType)
74
75 DWORD WINAPI BuildSecurityDescriptorA( PTRUSTEEA, PTRUSTEEA, ULONG, PEXPLICIT_ACCESS_A,
76                                        ULONG, PEXPLICIT_ACCESS_A,
77                                        PSECURITY_DESCRIPTOR, PULONG,
78                                        PSECURITY_DESCRIPTOR* );
79 DWORD WINAPI BuildSecurityDescriptorW( PTRUSTEEW, PTRUSTEEW, ULONG, PEXPLICIT_ACCESS_W,
80                                        ULONG, PEXPLICIT_ACCESS_W,
81                                        PSECURITY_DESCRIPTOR, PULONG,
82                                        PSECURITY_DESCRIPTOR* );
83 #define     BuildSecurityDescriptor WINELIB_NAME_AW(BuildSecurityDescriptor)
84
85 void WINAPI BuildTrusteeWithNameA( PTRUSTEEA, LPSTR );
86 void WINAPI BuildTrusteeWithNameW( PTRUSTEEW, LPWSTR );
87 #define     BuildTrusteeWithName WINELIB_NAME_AW(BuildTrusteeWithName)
88
89 VOID WINAPI BuildTrusteeWithObjectsAndNameA(PTRUSTEEA, POBJECTS_AND_NAME_A,
90                                             SE_OBJECT_TYPE, LPSTR, LPSTR, LPSTR);
91 VOID WINAPI BuildTrusteeWithObjectsAndNameW(PTRUSTEEW, POBJECTS_AND_NAME_W,
92                                             SE_OBJECT_TYPE, LPWSTR, LPWSTR, LPWSTR);
93 #define     BuildTrusteeWithObjectsAndName WINELIB_NAME_AW(BuildTrusteeWithObjectsAndName)
94
95 VOID WINAPI BuildTrusteeWithObjectsAndSidA(PTRUSTEEA, POBJECTS_AND_SID, GUID*, GUID*, PSID);
96 VOID WINAPI BuildTrusteeWithObjectsAndSidW(PTRUSTEEW, POBJECTS_AND_SID, GUID*, GUID*, PSID);
97 #define     BuildTrusteeWithObjectsAndSid WINELIB_NAME_AW(BuildTrusteeWithObjectsAndSid)
98
99 VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESSA, LPSTR, DWORD, ACCESS_MODE, DWORD);
100 VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESSW, LPWSTR, DWORD, ACCESS_MODE, DWORD);
101 #define     BuildExplicitAccessWithName WINELIB_NAME_AW(BuildExplicitAccessWithName)
102
103 VOID WINAPI BuildTrusteeWithSidA(PTRUSTEEA pTrustee, PSID pSid);
104 VOID WINAPI BuildTrusteeWithSidW(PTRUSTEEW pTrustee, PSID pSid);
105 #define     BuildTrusteeWithSid WINELIB_NAME_AW(BuildTrusteeWithSid)
106
107 DWORD WINAPI GetEffectiveRightsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK);
108 DWORD WINAPI GetEffectiveRightsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK);
109 #define      GetEffectiveRightsFromAcl WINELIB_NAME_AW(GetEffectiveRightsFromAcl)
110
111 #ifdef __cplusplus
112 }
113 #endif
114
115 #endif /* __WINE_ACLAPI_H */