' ########################################################################################
' Microsoft Windows
' File: IAccess.inc
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_IAccess_PBI)
#DEFINE PBX_IAccess_PBI
%EQUATE `IACCESS_INC = 1
'/* header files for imported files */
#INCLUDE ONCE "Legacy/COM/Unknwn.inc"
#INCLUDE ONCE "Legacy/UI/AccCtrl.inc"
' ########################################################################################
' IAccessControl interface
' IID = EEDD23E0-8410-11CE-A1C3-08002B2B8D8F
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IAccessControl_INTERFACE_DEFINED)
 %IAccessControl_INTERFACE_DEFINED = 1
$IID_IAccessControl = GUID$("{EEDD23E0-8410-11CE-A1C3-08002B2B8D8F}")
INTERFACE IAccessControl $IID_IAccessControl
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GrantAccessRights ( ' VTable offset = 12
 BYREF pAccessList AS ACTRL_ALISTW
 ) AS LONG
 ' =====================================================================================
 METHOD SetAccessRights ( ' VTable offset = 16
 BYREF pAccessList AS ACTRL_ALISTW
 ) AS LONG
 ' =====================================================================================
 METHOD SetOwner ( ' VTable offset = 16
 BYREF pOwner AS TRUSTEE_W
 , BYREF pGroup AS TRUSTEE_W
 ) AS LONG
 ' =====================================================================================
 METHOD RevokeAccessRights ( ' VTable offset = 20
 BYREF lpProperty AS WSTRINGZ
 , BYVAL cTrustees AS DWORD
 , BYREF prgTrustees AS TRUSTEE_W
 ) AS LONG
 ' =====================================================================================
 METHOD GetAllAccessRights ( ' VTable offset = 24
 BYREF lpProperty AS WSTRINGZ
 , BYREF ppAccessList AS ACTRL_ALISTW
 , BYREF pOwner AS TRUSTEE_W
 , BYREF pGroup AS TRUSTEE_W
 ) AS LONG
 ' =====================================================================================
 METHOD IsAccessAllowed ( ' VTable offset = 28
 BYREF pTrustee AS TRUSTEE_W
 , BYREF lpProperty AS WSTRINGZ
 , BYVAL AccessRights AS DWORD
 , BYREF pfAccessAllowed AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IAccessControl_INTERFACE_DEFINED__ */
' ########################################################################################
' IAuditControl interface
' IID = 1DA6292F-BC66-11CE-AAE3-00AA004C2737
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IAuditControl_INTERFACE_DEFINED)
 %IAuditControl_INTERFACE_DEFINED = 1
$IID_IAuditControl = GUID$("{1DA6292F-BC66-11CE-AAE3-00AA004C2737}")
INTERFACE IAuditControl $IID_IAuditControl
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GrantAuditRights ( ' VTable offset = 12
 BYREF pAuditList AS ACTRL_AUDITW
 ) AS LONG
 ' =====================================================================================
 METHOD SetAuditRights ( ' VTable offset = 16
 BYREF pAuditList AS ACTRL_AUDITW
 ) AS LONG
 ' =====================================================================================
 METHOD RevokeAuditRights ( ' VTable offset = 20
 BYREF lpProperty AS WSTRINGZ
 , BYVAL cTrustees AS DWORD
 , BYREF prgTrustees AS TRUSTEE_W
 ) AS LONG
 ' =====================================================================================
 METHOD GetAllAuditRights ( ' VTable offset = 24
 BYREF lpProperty AS WSTRINGZ
 , BYREF ppAuditList AS ACTRL_AUDITW
 ) AS LONG
 ' =====================================================================================
 METHOD IsAccessAudited ( ' VTable offset = 28
 BYREF pTrustee AS TRUSTEE_W
 , BYVAL AuditRights AS DWORD
 , BYREF pfAccessAudited AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IAuditControl_INTERFACE_DEFINED__ */
#ENDIF
