IAccess.Idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:4k
源码类别:

模拟服务器

开发平台:

C/C++

  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. }