home *** CD-ROM | disk | FTP | other *** search
/ PC World Plus! (NZ) 2001 June / HDC50.iso / Runimage / Delphi50 / Source / Rtl / Win / ACLAPI.PAS < prev    next >
Pascal/Delphi Source File  |  1999-08-11  |  18KB  |  290 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Borland Delphi Run-time Library                 }
  5. {       Win32 Security API Interface Unit               }
  6. {                                                       }
  7. {       Copyright (c) 1985-1999, Microsoft Corporation  }
  8. {                                                       }
  9. {       Translator: Inprise Corporation                 }
  10. {                                                       }
  11. {*******************************************************}
  12.  
  13. unit AclApi;
  14.  
  15. {$WEAKPACKAGEUNIT}
  16.  
  17. //  Contents:    public header file for acl and trusted server access control
  18. //               APIs
  19.  
  20. interface
  21.  
  22. (*HPPEMIT '#include <aclApi.h>' *)
  23.  
  24. uses
  25.   Windows, AccCtrl;
  26.  
  27. type
  28.   PPSID = ^PSID;
  29.   {$EXTERNALSYM PPSID}
  30.   PPSECURITY_DESCRIPTOR = ^PSECURITY_DESCRIPTOR;
  31.   {$EXTERNALSYM PPSECURITY_DESCRIPTOR}
  32.  
  33. function SetEntriesInAclA(cCountOfExplicitEntries: ULONG; pListOfExplicitEntries: PEXPLICIT_ACCESS_A;
  34.          OldAcl: PACL; var NewAcl: ACL): DWORD; stdcall; {use localfree to release NewAcl}
  35. function SetEntriesInAclW(cCountOfExplicitEntries: ULONG; pListOfExplicitEntries: PEXPLICIT_ACCESS_W;
  36.          OldAcl: PACL; var NewAcl: ACL): DWORD; stdcall; {use localfree to release NewAcl}
  37. function SetEntriesInAcl(cCountOfExplicitEntries: ULONG; pListOfExplicitEntries: PEXPLICIT_ACCESS_;
  38.          OldAcl: PACL; var NewAcl: ACL): DWORD; stdcall; {use localfree to release NewAcl}
  39. function GetExplicitEntriesFromAclA(var pacl: ACL; var pcCountOfExplicitEntries: ULONG;
  40.          pListOfExplicitEntries: PEXPLICIT_ACCESS_A): DWORD; stdcall; {use localfree to release pListOfExplicitEntries}
  41. function GetExplicitEntriesFromAclW(var pacl: ACL; var pcCountOfExplicitEntries: ULONG;
  42.          pListOfExplicitEntries: PEXPLICIT_ACCESS_W): DWORD; stdcall; {use localfree to release pListOfExplicitEntries}
  43. function GetExplicitEntriesFromAcl(var pacl: ACL; var pcCountOfExplicitEntries: ULONG;
  44.          pListOfExplicitEntries: PEXPLICIT_ACCESS_): DWORD; stdcall; {use localfree to release pListOfExplicitEntries}
  45. function GetEffectiveRightsFromAclA(var pacl: ACL; var pTrustee: TRUSTEE_A;
  46.          var pAccessRights: ACCESS_MASK): DWORD; stdcall;
  47. function GetEffectiveRightsFromAclW(var pacl: ACL; var pTrustee: TRUSTEE_W;
  48.          var pAccessRights: ACCESS_MASK): DWORD; stdcall;
  49. function GetEffectiveRightsFromAcl(var pacl: ACL; var pTrustee: TRUSTEE_;
  50.          var pAccessRights: ACCESS_MASK): DWORD; stdcall;
  51. function GetAuditedPermissionsFromAclA(var pacl: ACL; var pTrustee: TRUSTEE_A;
  52.          var pSuccessfulAuditedRights: ACCESS_MASK; var pFailedAuditRights: ACCESS_MASK): DWORD; stdcall;
  53. function GetAuditedPermissionsFromAclW(var pacl: ACL; var pTrustee: TRUSTEE_W;
  54.          var pSuccessfulAuditedRights: ACCESS_MASK; var pFailedAuditRights: ACCESS_MASK): DWORD; stdcall;
  55. function GetAuditedPermissionsFromAcl(var pacl: ACL; var pTrustee: TRUSTEE_;
  56.          var pSuccessfulAuditedRights: ACCESS_MASK; var pFailedAuditRights: ACCESS_MASK): DWORD; stdcall;
  57. function GetNamedSecurityInfoA(pObjectName: PAnsiChar; ObjectType: SE_OBJECT_TYPE;
  58.          SecurityInfo: SECURITY_INFORMATION; ppsidOwner, ppsidGroup: PPSID; ppDacl, ppSacl: PACL;
  59.          var ppSecurityDescriptor: PSECURITY_DESCRIPTOR): DWORD; stdcall; {use localfree to release ppSecurityDescriptor}
  60. function GetNamedSecurityInfoW(pObjectName: PAnsiChar; ObjectType: SE_OBJECT_TYPE;
  61.          SecurityInfo: SECURITY_INFORMATION; ppsidOwner, ppsidGroup: PPSID; ppDacl, ppSacl: PACL;
  62.          var ppSecurityDescriptor: PSECURITY_DESCRIPTOR): DWORD; stdcall; {use localfree to release ppSecurityDescriptor}
  63. function GetNamedSecurityInfo(pObjectName: PAnsiChar; ObjectType: SE_OBJECT_TYPE;
  64.          SecurityInfo: SECURITY_INFORMATION; ppsidOwner, ppsidGroup: PPSID; ppDacl, ppSacl: PACL;
  65.          var ppSecurityDescriptor: PSECURITY_DESCRIPTOR): DWORD; stdcall; {use localfree to release ppSecurityDescriptor}
  66. function GetSecurityInfo(handle: THandle; ObjectType: SE_OBJECT_TYPE;
  67.          SecurityInfo: SECURITY_INFORMATION; ppsidOwner, ppsidGroup: PPSID; ppDacl, ppSacl: PACL;
  68.          var ppSecurityDescriptor: PPSECURITY_DESCRIPTOR): DWORD; stdcall; {use localfree to release ppSecurityDescriptor}
  69.  
  70. function SetNamedSecurityInfoA(pObjectName: PAnsiChar; ObjectType: SE_OBJECT_TYPE;
  71.          SecurityInfo: SECURITY_INFORMATION; ppsidOwner, ppsidGroup: PPSID;
  72.          ppDacl, ppSacl: PACL): DWORD; stdcall;
  73. function SetNamedSecurityInfoW(pObjectName: PAnsiChar; ObjectType: SE_OBJECT_TYPE;
  74.          SecurityInfo: SECURITY_INFORMATION; ppsidOwner, ppsidGroup: PPSID;
  75.          ppDacl, ppSacl: PACL): DWORD; stdcall;
  76. function SetNamedSecurityInfo(pObjectName: PAnsiChar; ObjectType: SE_OBJECT_TYPE;
  77.          SecurityInfo: SECURITY_INFORMATION; ppsidOwner, ppsidGroup: PPSID;
  78.          ppDacl, ppSacl: PACL): DWORD; stdcall;
  79.  
  80. function SetSecurityInfo(handle: THandle; ObjectType: SE_OBJECT_TYPE;
  81.          SecurityInfo: SECURITY_INFORMATION; ppsidOwner, ppsidGroup: PPSID;
  82.          ppDacl, ppSacl: PACL): DWORD; stdcall;
  83.  
  84. //----------------------------------------------------------------------------
  85. // The following API are provided for trusted servers to use to
  86. // implement access control on their own objects.
  87. //----------------------------------------------------------------------------
  88.  
  89. function BuildSecurityDescriptorA(pOwner, pGroup: PTRUSTEE_A; cCountOfAccessEntries: ULONG;
  90.          pListOfAccessEntries: PEXPLICIT_ACCESS_A; cCountOfAuditEntries: ULONG;
  91.          pListOfAuditEntries: PEXPLICIT_ACCESS_A; pOldSD: PSECURITY_DESCRIPTOR;
  92.          var pSizeNewSD: ULONG; var pNewSD: SECURITY_DESCRIPTOR): DWORD; stdcall; {use localfree to release pNewSD}
  93. function BuildSecurityDescriptorW(pOwner, pGroup: PTRUSTEE_W; cCountOfAccessEntries: ULONG;
  94.          pListOfAccessEntries: PEXPLICIT_ACCESS_W; cCountOfAuditEntries: ULONG;
  95.          pListOfAuditEntries: PEXPLICIT_ACCESS_W; pOldSD: PSECURITY_DESCRIPTOR;
  96.          var pSizeNewSD: ULONG; var pNewSD: SECURITY_DESCRIPTOR): DWORD; stdcall; {use localfree to release pNewSD}
  97. function BuildSecurityDescriptor(pOwner, pGroup: PTRUSTEE_; cCountOfAccessEntries: ULONG;
  98.          pListOfAccessEntries: PEXPLICIT_ACCESS_; cCountOfAuditEntries: ULONG;
  99.          pListOfAuditEntries: PEXPLICIT_ACCESS_; pOldSD: PSECURITY_DESCRIPTOR;
  100.          var pSizeNewSD: ULONG; var pNewSD: SECURITY_DESCRIPTOR): DWORD; stdcall; {use localfree to release pNewSD}
  101.  
  102. function LookupSecurityDescriptorPartsA(pOwner, pGroup: PTRUSTEE_A; cCountOfAccessEntries: PULONG;
  103.          pListOfAccessEntries: PEXPLICIT_ACCESS_A; cCountOfAuditEntries: PULONG;
  104.          pListOfAuditEntries: PEXPLICIT_ACCESS_A; var pSD: SECURITY_DESCRIPTOR): DWORD; stdcall;
  105. function LookupSecurityDescriptorPartsW(pOwner, pGroup: PTRUSTEE_W; cCountOfAccessEntries: PULONG;
  106.          pListOfAccessEntries: PEXPLICIT_ACCESS_W; cCountOfAuditEntries: PULONG;
  107.          pListOfAuditEntries: PEXPLICIT_ACCESS_W; var pSD: SECURITY_DESCRIPTOR): DWORD; stdcall;
  108. function LookupSecurityDescriptorParts(pOwner, pGroup: PTRUSTEE_; cCountOfAccessEntries: PULONG;
  109.          pListOfAccessEntries: PEXPLICIT_ACCESS_; cCountOfAuditEntries: PULONG;
  110.          pListOfAuditEntries: PEXPLICIT_ACCESS_; var pSD: SECURITY_DESCRIPTOR): DWORD; stdcall;
  111.  
  112. //----------------------------------------------------------------------------
  113. // The following helper API are provided for building
  114. // access control structures.
  115. //----------------------------------------------------------------------------
  116.  
  117. procedure BuildExplicitAccessWithNameA(pExplicitAccess: PEXPLICIT_ACCESS_A;
  118.           pTrusteeName: PAnsiChar; AccessPermissions: DWORD; AccessMode: ACCESS_MODE;
  119.           Ineritance: DWORD); stdcall;
  120. procedure BuildExplicitAccessWithNameW(pExplicitAccess: PEXPLICIT_ACCESS_W;
  121.           pTrusteeName: PAnsiChar; AccessPermissions: DWORD; AccessMode: ACCESS_MODE;
  122.           Ineritance: DWORD); stdcall;
  123. procedure BuildExplicitAccessWithName(pExplicitAccess: PEXPLICIT_ACCESS_;
  124.           pTrusteeName: PAnsiChar; AccessPermissions: DWORD; AccessMode: ACCESS_MODE;
  125.           Ineritance: DWORD); stdcall;
  126.  
  127. procedure BuildImpersonateExplicitAccessWithNameA(pExplicitAccess: PEXPLICIT_ACCESS_A;
  128.           pTrusteeName: PAnsiChar; pTrustee: PTRUSTEE_A; AccessPermissions: DWORD;
  129.           AccessMode: ACCESS_MODE; Inheritance: DWORD); stdcall; {obsolete}
  130. procedure BuildImpersonateExplicitAccessWithNameW(pExplicitAccess: PEXPLICIT_ACCESS_W;
  131.           pTrusteeName: PAnsiChar; pTrustee: PTRUSTEE_W; AccessPermissions: DWORD;
  132.           AccessMode: ACCESS_MODE; Inheritance: DWORD); stdcall; {obsolete}
  133. procedure BuildImpersonateExplicitAccessWithName(pExplicitAccess: PEXPLICIT_ACCESS_;
  134.           pTrusteeName: PAnsiChar; pTrustee: PTRUSTEE_; AccessPermissions: DWORD;
  135.           AccessMode: ACCESS_MODE; Inheritance: DWORD); stdcall; {obsolete}
  136.  
  137. procedure BuildTrusteeWithNameA(pTrustee: PTRUSTEE_A; pName: PAnsiChar); stdcall;
  138. procedure BuildTrusteeWithNameW(pTrustee: PTRUSTEE_W; pName: PAnsiChar); stdcall;
  139. procedure BuildTrusteeWithName(pTrustee: PTRUSTEE_; pName: PAnsiChar); stdcall;
  140.  
  141. procedure BuildImpersonateTrusteeA(pTrustee: PTRUSTEE_A; pImpersonateTrustee: PTRUSTEE_A); stdcall; {obsolete}
  142. procedure BuildImpersonateTrusteeW(pTrustee: PTRUSTEE_W; pImpersonateTrustee: PTRUSTEE_W); stdcall; {obsolete}
  143. procedure BuildImpersonateTrustee(pTrustee: PTRUSTEE_; pImpersonateTrustee: PTRUSTEE_); stdcall; {obsolete}
  144.  
  145. procedure BuildTrusteeWithSidA(pTrustee: PTRUSTEE_A; pSidIn: PSID); stdcall;
  146. procedure BuildTrusteeWithSidW(pTrustee: PTRUSTEE_W; pSidIn: PSID); stdcall;
  147. procedure BuildTrusteeWithSid(pTrustee: PTRUSTEE_; pSidIn: PSID); stdcall;
  148.  
  149. function GetTrusteeNameA(var pTrustee: TRUSTEE_A): PAnsiChar; stdcall;
  150. function GetTrusteeNameW(var pTrustee: TRUSTEE_W): PAnsiChar; stdcall;
  151. function GetTrusteeName(var pTrustee: TRUSTEE_): PAnsiChar; stdcall;
  152.  
  153. function GetTrusteeTypeA(var pTrustee: TRUSTEE_A): TRUSTEE_TYPE; stdcall;
  154. function GetTrusteeTypeW(var pTrustee: TRUSTEE_W): TRUSTEE_TYPE; stdcall;
  155. function GetTrusteeType(var pTrustee: TRUSTEE_): TRUSTEE_TYPE; stdcall;
  156.  
  157. function GetTrusteeFormA(var pTrustee: TRUSTEE_A): TRUSTEE_FORM; stdcall;
  158. function GetTrusteeFormW(var pTrustee: TRUSTEE_W): TRUSTEE_FORM; stdcall;
  159. function GetTrusteeForm(var pTrustee: TRUSTEE_): TRUSTEE_FORM; stdcall;
  160.  
  161. function GetMultipleTrusteeOperationA(pTrustee: PTRUSTEE_A): MULTIPLE_TRUSTEE_OPERATION; stdcall; {obsolete}
  162. function GetMultipleTrusteeOperationW(pTrustee: PTRUSTEE_W): MULTIPLE_TRUSTEE_OPERATION; stdcall; {obsolete}
  163. function GetMultipleTrusteeOperation(pTrustee: PTRUSTEE_): MULTIPLE_TRUSTEE_OPERATION; stdcall; {obsolete}
  164.  
  165. function GetMultipleTrusteeA(pTrustee: PTrustee_A): PTRUSTEE_A; stdcall; {obsolete}
  166. function GetMultipleTrusteeW(pTrustee: PTrustee_W): PTRUSTEE_W; stdcall; {obsolete}
  167. function GetMultipleTrustee(pTrustee: PTrustee_): PTRUSTEE_; stdcall; {obsolete}
  168.  
  169. implementation
  170.  
  171. const
  172.   ModName = 'ACLAPI.DLL';
  173.  
  174. procedure BuildExplicitAccessWithNameA;  external ModName name 'BuildExplicitAccessWithNameA';
  175. {$EXTERNALSYM BuildExplicitAccessWithNameA}
  176. procedure BuildExplicitAccessWithNameW;  external ModName name 'BuildExplicitAccessWithNameW';
  177. {$EXTERNALSYM BuildExplicitAccessWithNameW}
  178. procedure BuildExplicitAccessWithName;  external ModName name 'BuildExplicitAccessWithNameA';
  179. {$EXTERNALSYM BuildExplicitAccessWithName}
  180. procedure BuildImpersonateExplicitAccessWithNameA; external ModName name 'BuildImpersonateExplicitAccessWithNameA';
  181. {$EXTERNALSYM BuildImpersonateExplicitAccessWithNameA}
  182. procedure BuildImpersonateExplicitAccessWithNameW; external ModName name 'BuildImpersonateExplicitAccessWithNameW';
  183. {$EXTERNALSYM BuildImpersonateExplicitAccessWithNameW}
  184. procedure BuildImpersonateExplicitAccessWithName; external ModName name 'BuildImpersonateExplicitAccessWithNameA';
  185. {$EXTERNALSYM BuildImpersonateExplicitAccessWithName}
  186. procedure BuildImpersonateTrusteeA;      external ModName name 'BuildImpersonateTrusteeA';
  187. {$EXTERNALSYM BuildImpersonateTrusteeA}
  188. procedure BuildImpersonateTrusteeW;      external ModName name 'BuildImpersonateTrusteeW';
  189. {$EXTERNALSYM BuildImpersonateTrusteeW}
  190. procedure BuildImpersonateTrustee;      external ModName name 'BuildImpersonateTrusteeA';
  191. {$EXTERNALSYM BuildImpersonateTrustee}
  192. function BuildSecurityDescriptorA;      external ModName name 'BuildSecurityDescriptorA';
  193. {$EXTERNALSYM BuildSecurityDescriptorA}
  194. function BuildSecurityDescriptorW;      external ModName name 'BuildSecurityDescriptorW';
  195. {$EXTERNALSYM BuildSecurityDescriptorW}
  196. function BuildSecurityDescriptor;      external ModName name 'BuildSecurityDescriptorA';
  197. {$EXTERNALSYM BuildSecurityDescriptor}
  198. procedure BuildTrusteeWithNameA;         external ModName name 'BuildTrusteeWithNameA';
  199. {$EXTERNALSYM BuildTrusteeWithNameA}
  200. procedure BuildTrusteeWithNameW;         external ModName name 'BuildTrusteeWithNameW';
  201. {$EXTERNALSYM BuildTrusteeWithNameW}
  202. procedure BuildTrusteeWithName;         external ModName name 'BuildTrusteeWithNameA';
  203. {$EXTERNALSYM BuildTrusteeWithName}
  204. procedure BuildTrusteeWithSidA;          external ModName name 'BuildTrusteeWithSidA';
  205. {$EXTERNALSYM BuildTrusteeWithSidA}
  206. procedure BuildTrusteeWithSidW;          external ModName name 'BuildTrusteeWithSidW';
  207. {$EXTERNALSYM BuildTrusteeWithSidW}
  208. procedure BuildTrusteeWithSid;          external ModName name 'BuildTrusteeWithSidA';
  209. {$EXTERNALSYM BuildTrusteeWithSid}
  210. function GetAuditedPermissionsFromAclA; external ModName name 'GetAuditedPermissionsFromAclA';
  211. {$EXTERNALSYM GetAuditedPermissionsFromAclA}
  212. function GetAuditedPermissionsFromAclW; external ModName name 'GetAuditedPermissionsFromAclW';
  213. {$EXTERNALSYM GetAuditedPermissionsFromAclW}
  214. function GetAuditedPermissionsFromAcl; external ModName name 'GetAuditedPermissionsFromAclA';
  215. {$EXTERNALSYM GetAuditedPermissionsFromAcl}
  216. function GetEffectiveRightsFromAclA;    external ModName name 'GetEffectiveRightsFromAclA';
  217. {$EXTERNALSYM GetEffectiveRightsFromAclA}
  218. function GetEffectiveRightsFromAclW;    external ModName name 'GetEffectiveRightsFromAclW';
  219. {$EXTERNALSYM GetEffectiveRightsFromAclW}
  220. function GetEffectiveRightsFromAcl;    external ModName name 'GetEffectiveRightsFromAclA';
  221. {$EXTERNALSYM GetEffectiveRightsFromAcl}
  222. function GetExplicitEntriesFromAclA;    external ModName name 'GetExplicitEntriesFromAclA';
  223. {$EXTERNALSYM GetExplicitEntriesFromAclA}
  224. function GetExplicitEntriesFromAclW;    external ModName name 'GetExplicitEntriesFromAclW';
  225. {$EXTERNALSYM GetExplicitEntriesFromAclW}
  226. function GetExplicitEntriesFromAcl;    external ModName name 'GetExplicitEntriesFromAclA';
  227. {$EXTERNALSYM GetExplicitEntriesFromAcl}
  228. function GetMultipleTrusteeOperationA;  external ModName name 'GetMultipleTrusteeOperationA';
  229. {$EXTERNALSYM GetMultipleTrusteeOperationA}
  230. function GetMultipleTrusteeOperationW;  external ModName name 'GetMultipleTrusteeOperationW';
  231. {$EXTERNALSYM GetMultipleTrusteeOperationW}
  232. function GetMultipleTrusteeOperation;  external ModName name 'GetMultipleTrusteeOperationA';
  233. {$EXTERNALSYM GetMultipleTrusteeOperation}
  234. function GetMultipleTrusteeA;           external ModName name 'GetMultipleTrusteeA';
  235. {$EXTERNALSYM GetMultipleTrusteeA}
  236. function GetMultipleTrusteeW;           external ModName name 'GetMultipleTrusteeW';
  237. {$EXTERNALSYM GetMultipleTrusteeW}
  238. function GetMultipleTrustee;           external ModName name 'GetMultipleTrusteeA';
  239. {$EXTERNALSYM GetMultipleTrustee}
  240. function GetNamedSecurityInfoA;         external ModName name 'GetNamedSecurityInfoA';
  241. {$EXTERNALSYM GetNamedSecurityInfoA}
  242. function GetNamedSecurityInfoW;         external ModName name 'GetNamedSecurityInfoW';
  243. {$EXTERNALSYM GetNamedSecurityInfoW}
  244. function GetNamedSecurityInfo;         external ModName name 'GetNamedSecurityInfoA';
  245. {$EXTERNALSYM GetNamedSecurityInfo}
  246. function GetSecurityInfo;               external ModName name 'GetSecurityInfo';
  247. {$EXTERNALSYM GetSecurityInfo}
  248. function GetTrusteeFormA;               external ModName name 'GetTrusteeFormA';
  249. {$EXTERNALSYM GetTrusteeFormA}
  250. function GetTrusteeFormW;               external ModName name 'GetTrusteeFormW';
  251. {$EXTERNALSYM GetTrusteeFormW}
  252. function GetTrusteeForm;               external ModName name 'GetTrusteeFormA';
  253. {$EXTERNALSYM GetTrusteeForm}
  254. function GetTrusteeNameA;               external ModName name 'GetTrusteeNameA';
  255. {$EXTERNALSYM GetTrusteeNameA}
  256. function GetTrusteeNameW;               external ModName name 'GetTrusteeNameW';
  257. {$EXTERNALSYM GetTrusteeNameW}
  258. function GetTrusteeName;               external ModName name 'GetTrusteeNameA';
  259. {$EXTERNALSYM GetTrusteeName}
  260. function GetTrusteeTypeA;               external ModName name 'GetTrusteeTypeA';
  261. {$EXTERNALSYM GetTrusteeTypeA}
  262. function GetTrusteeTypeW;               external ModName name 'GetTrusteeTypeW';
  263. {$EXTERNALSYM GetTrusteeTypeW}
  264. function GetTrusteeType;               external ModName name 'GetTrusteeTypeA';
  265. {$EXTERNALSYM GetTrusteeType}
  266. function LookupSecurityDescriptorPartsA; external ModName name 'LookupSecurityDescriptorPartsA';
  267. {$EXTERNALSYM LookupSecurityDescriptorPartsA}
  268. function LookupSecurityDescriptorPartsW; external ModName name 'LookupSecurityDescriptorPartsW';
  269. {$EXTERNALSYM LookupSecurityDescriptorPartsW}
  270. function LookupSecurityDescriptorParts; external ModName name 'LookupSecurityDescriptorPartsA';
  271. {$EXTERNALSYM LookupSecurityDescriptorParts}
  272. function SetEntriesInAclA;              external ModName name 'SetEntriesInAclA';
  273. {$EXTERNALSYM SetEntriesInAclA}
  274. function SetEntriesInAclW;              external ModName name 'SetEntriesInAclW';
  275. {$EXTERNALSYM SetEntriesInAclW}
  276. function SetEntriesInAcl;              external ModName name 'SetEntriesInAclA';
  277. {$EXTERNALSYM SetEntriesInAcl}
  278. function SetNamedSecurityInfoA;         external ModName name 'SetNamedSecurityInfoA';
  279. {$EXTERNALSYM SetNamedSecurityInfoA}
  280. function SetNamedSecurityInfoW;         external ModName name 'SetNamedSecurityInfoW';
  281. {$EXTERNALSYM SetNamedSecurityInfoW}
  282. function SetNamedSecurityInfo;         external ModName name 'SetNamedSecurityInfoA';
  283. {$EXTERNALSYM SetNamedSecurityInfo}
  284. function SetSecurityInfo;               external ModName name 'SetSecurityInfo';
  285. {$EXTERNALSYM SetSecurityInfo}
  286.  
  287. end.
  288.  
  289.  
  290.