134 lines
3.5 KiB
Plaintext
134 lines
3.5 KiB
Plaintext
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// File: iaccess.idl
|
|
//
|
|
// Contents: definitions of access and audit control interfaces
|
|
//
|
|
// History: 2-9-95 DaveMont Created
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
cpp_quote("//+-------------------------------------------------------------------------")
|
|
cpp_quote("//")
|
|
cpp_quote("// Microsoft Windows")
|
|
cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
|
|
cpp_quote("//")
|
|
cpp_quote("//--------------------------------------------------------------------------")
|
|
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
|
|
);
|
|
}
|
|
|