Platform SDK: Exchange Server

ACE CoClass

The ACE COM class defines an object that represents an access control entry on an Exchange MAPI folder object.

CLSID
A0E48401-F971-11D1-A956-00C04FB155E5
ProgID
MSExchange.ACE
Type Library
Microsoft Exchange 5.5 ACL Type Library 1.0 (ACL.dll)
Threading Model
STA (Single-Threaded Apartment)
Interfaces
The ACE class exposes the IACE dual interface.

Overview

Access control entries for folders are represented as ACE objects stored in an ACEs collection. They represent access control entries defined for the folder as found in its respective PR_ACL_TABLE MAPI property. To add, modify, or delete an ACE on a folder, you must first bind a reference to a CDO Folder object into an ACLObject object's IACLObject::CDOItem property. Once a CDO Folder object reference is bound, you can add, modify, and delete access control entries by manipulating the ACE objects within the ACEs collection.

The ACE class has two properties: IACE::ID and IACE::Rights. The ID property represents the MAPI entry identifier for the member the associated rights apply to. The Rights property is a 32-bit integer bit-mask used to identify the rights. The ID is initially set to the short-term entry identifier, but is converted to the long-term entry identifier when the object is added to an ACEs collection. The Rights property is 32 bits representing the rights to give the member. It can be set using values from the ACLRIGHTS enumeration, or by setting the Boolean properties on the object. Additionally, the most common sets of rights, in the form of roles, are included in the ACLRIGHTS enumeration, and can be used if desired to set the Rights property.

The ACLRIGHTS enumeration is listed below:

ACLRIGHTS

Member Value
RIGHTS_EDIT_OWN 0x00000008
RIGHTS_EDIT_ALL 0x00000020
RIGHTS_DELETE_OWN 0x00000010
RIGHTS_DELETE_ALL 0x00000040
RIGHTS_READ_ITEMS 0x00000001
RIGHTS_CREATE_ITEMS 0x00000002
RIGHTS_CREATE_SUBFOLDERS 0x00000080
RIGHTS_FOLDER_OWNER 0x00000100
RIGHTS_FOLDER_CONTACT 0x00000200
RIGHTS_FOLDER_VISIBLE 0x00000400
RIGHTS_NONE 0x00000000
RIGHTS_ALL 0x000005fb
ROLE_OWNER 0x000007fb
ROLE_PUBLISH_EDITOR 0x000004fb
ROLE_EDITOR 0x0000047b
ROLE_PUBLISH_AUTHOR 0x0000049b
ROLE_AUTHOR 0x0000041b
ROLE_NONEDITING_AUTHOR 0x00000413
ROLE_REVIEWER 0x00000401
ROLE_CONTRIBUTOR 0x00000402
ROLE_NONE 0x00000400

Examples

See the class example for the ACLObject COM class.