mingw-5.1.4/win32/include/aclapi.h
changeset 0 76b1f169d9fe
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mingw-5.1.4/win32/include/aclapi.h	Fri Apr 03 17:16:45 2009 +0100
@@ -0,0 +1,117 @@
+#ifndef _ACLAPI_H
+#define _ACLAPI_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#include <windows.h>
+#include <accctrl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+WINADVAPI VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,DWORD,ACCESS_MODE,DWORD);
+WINADVAPI VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,DWORD,ACCESS_MODE,DWORD);
+WINADVAPI DWORD WINAPI BuildSecurityDescriptorA(PTRUSTEE_A,PTRUSTEE_A ,ULONG,PEXPLICIT_ACCESS_A,
+  ULONG,PEXPLICIT_ACCESS_A,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*);
+WINADVAPI DWORD WINAPI BuildSecurityDescriptorW(PTRUSTEE_W,PTRUSTEE_W ,ULONG,PEXPLICIT_ACCESS_W,
+  ULONG,PEXPLICIT_ACCESS_W,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*);
+WINADVAPI VOID WINAPI BuildTrusteeWithNameA(PTRUSTEE_A,LPSTR);
+WINADVAPI VOID WINAPI BuildTrusteeWithNameW(PTRUSTEE_W,LPWSTR);
+WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A,POBJECTS_AND_NAME_A,SE_OBJECT_TYPE,
+  LPSTR,LPSTR,LPSTR);
+WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W,POBJECTS_AND_NAME_W,SE_OBJECT_TYPE,
+  LPWSTR,LPWSTR,LPWSTR);
+WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A,POBJECTS_AND_SID,GUID*,GUID*,PSID);
+WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W,POBJECTS_AND_SID,GUID*,GUID*,PSID);
+WINADVAPI VOID WINAPI BuildTrusteeWithSidA(PTRUSTEE_A,PSID);
+WINADVAPI VOID WINAPI BuildTrusteeWithSidW(PTRUSTEE_W,PSID);
+WINADVAPI DWORD WINAPI GetAuditedPermissionsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK,PACCESS_MASK);
+WINADVAPI DWORD WINAPI GetAuditedPermissionsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK,PACCESS_MASK);
+WINADVAPI DWORD WINAPI GetEffectiveRightsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK);
+WINADVAPI DWORD WINAPI GetEffectiveRightsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK);
+WINADVAPI DWORD WINAPI GetExplicitEntriesFromAclA(PACL,PULONG,PEXPLICIT_ACCESS_A*);
+WINADVAPI DWORD WINAPI GetExplicitEntriesFromAclW(PACL,PULONG,PEXPLICIT_ACCESS_W*);
+#if (_WIN32_WINNT >= 0x0501)
+WINADVAPI DWORD WINAPI GetInheritanceSourceA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMA);
+WINADVAPI DWORD WINAPI GetInheritanceSourceW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMW);
+#endif
+WINADVAPI DWORD WINAPI GetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
+  PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
+WINADVAPI DWORD WINAPI GetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
+  PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
+WINADVAPI DWORD WINAPI GetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,
+  PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
+WINADVAPI TRUSTEE_FORM WINAPI GetTrusteeFormA(PTRUSTEE_A);
+WINADVAPI TRUSTEE_FORM WINAPI GetTrusteeFormW(PTRUSTEE_W);
+WINADVAPI LPSTR WINAPI GetTrusteeNameA(PTRUSTEE_A);
+WINADVAPI LPWSTR WINAPI GetTrusteeNameW(PTRUSTEE_W);
+WINADVAPI TRUSTEE_TYPE WINAPI GetTrusteeTypeA(PTRUSTEE_A);
+WINADVAPI TRUSTEE_TYPE WINAPI GetTrusteeTypeW(PTRUSTEE_W);
+WINADVAPI DWORD WINAPI LookupSecurityDescriptorPartsA(PTRUSTEE_A*,PTRUSTEE_A*,PULONG,PEXPLICIT_ACCESS_A*,
+  PULONG,PEXPLICIT_ACCESS_A*,PSECURITY_DESCRIPTOR);
+WINADVAPI DWORD WINAPI LookupSecurityDescriptorPartsW(PTRUSTEE_W*,PTRUSTEE_W*,PULONG,PEXPLICIT_ACCESS_W*,
+  PULONG,PEXPLICIT_ACCESS_W*,PSECURITY_DESCRIPTOR);
+WINADVAPI DWORD WINAPI SetEntriesInAclA(ULONG,PEXPLICIT_ACCESS_A,PACL,PACL*);
+WINADVAPI DWORD WINAPI SetEntriesInAclW(ULONG,PEXPLICIT_ACCESS_W,PACL,PACL*);
+WINADVAPI DWORD WINAPI SetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
+WINADVAPI DWORD WINAPI SetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
+WINADVAPI DWORD WINAPI SetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
+WINADVAPI VOID WINAPI BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,PTRUSTEE_A,DWORD,ACCESS_MODE,DWORD);
+WINADVAPI VOID WINAPI BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,PTRUSTEE_W,DWORD,ACCESS_MODE,DWORD);
+WINADVAPI VOID WINAPI BuildImpersonateTrusteeA(PTRUSTEE_A,PTRUSTEE_A);
+WINADVAPI VOID WINAPI BuildImpersonateTrusteeW(PTRUSTEE_W,PTRUSTEE_W);
+WINADVAPI PTRUSTEE_A WINAPI GetMultipleTrusteeA(PTRUSTEE_A);
+WINADVAPI PTRUSTEE_W WINAPI GetMultipleTrusteeW(PTRUSTEE_W);
+WINADVAPI MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationA(PTRUSTEE_A);
+WINADVAPI MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationW(PTRUSTEE_W);
+
+#ifdef UNICODE
+#define BuildExplicitAccessWithName  BuildExplicitAccessWithNameW
+#define BuildSecurityDescriptor  BuildSecurityDescriptorW
+#define BuildTrusteeWithName  BuildTrusteeWithNameW
+#define BuildTrusteeWithObjectsAndName  BuildTrusteeWithObjectsAndNameW
+#define BuildTrusteeWithObjectsAndSid  BuildTrusteeWithObjectsAndSidW
+#define BuildTrusteeWithSid  BuildTrusteeWithSidW
+#define GetAuditedPermissionsFromAcl  GetAuditedPermissionsFromAclW
+#define GetEffectiveRightsFromAcl  GetEffectiveRightsFromAclW
+#define GetExplicitEntriesFromAcl  GetExplicitEntriesFromAclW
+#define GetNamedSecurityInfo  GetNamedSecurityInfoW
+#define GetTrusteeForm  GetTrusteeFormW
+#define GetTrusteeName  GetTrusteeNameW
+#define GetTrusteeType  GetTrusteeTypeW
+#define LookupSecurityDescriptorParts  LookupSecurityDescriptorPartsW
+#define SetEntriesInAcl  SetEntriesInAclW
+#define SetNamedSecurityInfo  SetNamedSecurityInfoW
+#define BuildImpersonateExplicitAccessWithName  BuildImpersonateExplicitAccessWithNameW
+#define BuildImpersonateTrustee  BuildImpersonateTrusteeW
+#define GetMultipleTrustee  GetMultipleTrusteeW
+#define GetMultipleTrusteeOperation  GetMultipleTrusteeOperationW
+#else
+#define BuildExplicitAccessWithName  BuildExplicitAccessWithNameA
+#define BuildSecurityDescriptor  BuildSecurityDescriptorA
+#define BuildTrusteeWithName  BuildTrusteeWithNameA
+#define BuildTrusteeWithObjectsAndName  BuildTrusteeWithObjectsAndNameA
+#define BuildTrusteeWithObjectsAndSid  BuildTrusteeWithObjectsAndSidA
+#define BuildTrusteeWithSid  BuildTrusteeWithSidA
+#define GetAuditedPermissionsFromAcl  GetAuditedPermissionsFromAclA
+#define GetEffectiveRightsFromAcl  GetEffectiveRightsFromAclA
+#define GetExplicitEntriesFromAcl  GetExplicitEntriesFromAclA
+#define GetNamedSecurityInfo  GetNamedSecurityInfoA
+#define GetTrusteeForm  GetTrusteeFormA
+#define GetTrusteeName  GetTrusteeNameA
+#define GetTrusteeType  GetTrusteeTypeA
+#define LookupSecurityDescriptorParts  LookupSecurityDescriptorPartsA
+#define SetEntriesInAcl  SetEntriesInAclA
+#define SetNamedSecurityInfo  SetNamedSecurityInfoA
+#define BuildImpersonateExplicitAccessWithName  BuildImpersonateExplicitAccessWithNameA
+#define BuildImpersonateTrustee  BuildImpersonateTrusteeA
+#define GetMultipleTrustee  GetMultipleTrusteeA
+#define GetMultipleTrusteeOperation  GetMultipleTrusteeOperationA
+#endif /* UNICODE */
+
+#ifdef __cplusplus
+}
+#endif
+#endif