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
|
||
|
);
|
||
|
}
|
||
|
|