Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

133 lines
3.6 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (c) Microsoft Corporation. All rights reserved.
  5. //
  6. // File: iaccess.idl
  7. //
  8. // Contents: definitions of access and audit control interfaces
  9. //
  10. // History: 2-9-95 DaveMont Created
  11. //
  12. //----------------------------------------------------------------------------
  13. cpp_quote("//+-------------------------------------------------------------------------")
  14. cpp_quote("//")
  15. cpp_quote("// Microsoft Windows")
  16. cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
  17. cpp_quote("//")
  18. cpp_quote("//--------------------------------------------------------------------------")
  19. cpp_quote("#if ( _MSC_VER >= 1020 )")
  20. cpp_quote("#pragma once")
  21. cpp_quote("#endif")
  22. import "unknwn.idl";
  23. import "accctrl.h";
  24. /****************************************************************************
  25. * Storage access control interface
  26. ****************************************************************************/
  27. // All nested structures are allocated in the same block of memory.
  28. // Thus these types are freed with a single call to CoTaskMemFree.
  29. typedef PACTRL_ACCESSW PACTRL_ACCESSW_ALLOCATE_ALL_NODES;
  30. typedef PACTRL_AUDITW PACTRL_AUDITW_ALLOCATE_ALL_NODES;
  31. interface IAccessControl;
  32. [
  33. object,
  34. uuid(EEDD23E0-8410-11CE-A1C3-08002B2B8D8F),
  35. pointer_default(unique)
  36. ]
  37. interface IAccessControl : IUnknown
  38. {
  39. HRESULT GrantAccessRights
  40. (
  41. [in] PACTRL_ACCESSW pAccessList
  42. );
  43. HRESULT SetAccessRights
  44. (
  45. [in] PACTRL_ACCESSW pAccessList
  46. );
  47. HRESULT SetOwner
  48. (
  49. [in] PTRUSTEEW pOwner,
  50. [in] PTRUSTEEW pGroup
  51. );
  52. HRESULT RevokeAccessRights
  53. (
  54. [in] LPWSTR lpProperty,
  55. [in] ULONG cTrustees,
  56. [in, size_is(cTrustees)] TRUSTEEW prgTrustees[]
  57. );
  58. HRESULT GetAllAccessRights
  59. (
  60. [in] LPWSTR lpProperty,
  61. [out] PACTRL_ACCESSW_ALLOCATE_ALL_NODES *ppAccessList,
  62. [out] PTRUSTEEW *ppOwner,
  63. [out] PTRUSTEEW *ppGroup
  64. );
  65. HRESULT IsAccessAllowed
  66. (
  67. [in] PTRUSTEEW pTrustee,
  68. [in] LPWSTR lpProperty,
  69. [in] ACCESS_RIGHTS AccessRights,
  70. [out] BOOL *pfAccessAllowed
  71. );
  72. }
  73. /****************************************************************************
  74. * Storage audit control interface
  75. ****************************************************************************/
  76. interface IAuditControl;
  77. [
  78. object,
  79. uuid(1da6292f-bc66-11ce-aae3-00aa004c2737),
  80. pointer_default(unique)
  81. ]
  82. interface IAuditControl : IUnknown
  83. {
  84. HRESULT GrantAuditRights
  85. (
  86. [in] PACTRL_AUDITW pAuditList
  87. );
  88. HRESULT SetAuditRights
  89. (
  90. [in] PACTRL_AUDITW pAuditList
  91. );
  92. HRESULT RevokeAuditRights
  93. (
  94. [in] LPWSTR lpProperty,
  95. [in] ULONG cTrustees,
  96. [in, size_is(cTrustees)] TRUSTEEW prgTrustees []
  97. );
  98. HRESULT GetAllAuditRights
  99. (
  100. [in] LPWSTR lpProperty,
  101. [out] PACTRL_AUDITW *ppAuditList
  102. );
  103. //
  104. // Determines if the given trustee with the state audit rights will generate an audit event if the object is accessed.
  105. //
  106. HRESULT IsAccessAudited
  107. (
  108. [in] PTRUSTEEW pTrustee,
  109. [in] ACCESS_RIGHTS AuditRights,
  110. [out] BOOL *pfAccessAudited
  111. );
  112. }