// // Copyright (c) Microsoft Corporation. All rights reserved. // // // Use of this source code is subject to the terms of the Microsoft end-user // license agreement (EULA) under which you licensed this SOFTWARE PRODUCT. // If you did not accept the terms of the EULA, you are not authorized to use // this source code. For a copy of the EULA, please see the LICENSE.RTF on your // install media. // cpp_quote("//") cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.") cpp_quote("//") cpp_quote("//") cpp_quote("// Use of this source code is subject to the terms of the Microsoft end-user") cpp_quote("// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.") cpp_quote("// If you did not accept the terms of the EULA, you are not authorized to use") cpp_quote("// this source code. For a copy of the EULA, please see the LICENSE.RTF on your") cpp_quote("// install media.") cpp_quote("//") //+--------------------------------------------------------------------------- // // File: iaccess.idl // // Contents: definitions of access and audit control interfaces // // History: 2-9-95 DaveMont Created // //---------------------------------------------------------------------------- cpp_quote("#if ( _MSC_VER >= 1020 )") cpp_quote("#pragma once") cpp_quote("#endif") import "unknwn.idl"; import "accctrl.h"; /**************************************************************************** * Storage access control interface ****************************************************************************/ // All nested structures are allocated in the same block of memory. // Thus these types are freed with a single call to CoTaskMemFree. typedef PACTRL_ACCESSW PACTRL_ACCESSW_ALLOCATE_ALL_NODES; typedef PACTRL_AUDITW PACTRL_AUDITW_ALLOCATE_ALL_NODES; interface IAccessControl; [ object, uuid(EEDD23E0-8410-11CE-A1C3-08002B2B8D8F), pointer_default(unique) ] interface IAccessControl : IUnknown { HRESULT GrantAccessRights ( [in] PACTRL_ACCESSW pAccessList ); HRESULT SetAccessRights ( [in] PACTRL_ACCESSW pAccessList ); HRESULT SetOwner ( [in] PTRUSTEEW pOwner, [in] PTRUSTEEW pGroup ); HRESULT RevokeAccessRights ( [in] LPWSTR lpProperty, [in] ULONG cTrustees, [in, size_is(cTrustees)] TRUSTEEW prgTrustees[] ); HRESULT GetAllAccessRights ( [in] LPWSTR lpProperty, [out] PACTRL_ACCESSW_ALLOCATE_ALL_NODES *ppAccessList, [out] PTRUSTEEW *ppOwner, [out] PTRUSTEEW *ppGroup ); HRESULT IsAccessAllowed ( [in] PTRUSTEEW pTrustee, [in] LPWSTR lpProperty, [in] ACCESS_RIGHTS AccessRights, [out] BOOL *pfAccessAllowed ); } /**************************************************************************** * Storage audit control interface ****************************************************************************/ interface IAuditControl; [ object, uuid(1da6292f-bc66-11ce-aae3-00aa004c2737), pointer_default(unique) ] interface IAuditControl : IUnknown { HRESULT GrantAuditRights ( [in] PACTRL_AUDITW pAuditList ); HRESULT SetAuditRights ( [in] PACTRL_AUDITW pAuditList ); HRESULT RevokeAuditRights ( [in] LPWSTR lpProperty, [in] ULONG cTrustees, [in, size_is(cTrustees)] TRUSTEEW prgTrustees [] ); HRESULT GetAllAuditRights ( [in] LPWSTR lpProperty, [out] PACTRL_AUDITW *ppAuditList ); // // Determines if the given trustee with the state audit rights will generate an audit event if the object is accessed. // HRESULT IsAccessAudited ( [in] PTRUSTEEW pTrustee, [in] ACCESS_RIGHTS AuditRights, [out] BOOL *pfAccessAudited ); }