IAccessControl:IUnknown
This interface manages access to objects and properties.
When to Implement
Distributed COM provides an implementation of the IAccessControl interface. COM servers can use this implementation to protect their objects from unauthorized access in a manner that is supported by Microsoft® Windows® 95, Microsoft Windows 98, Microsoft Windows NT®, and Microsoft Windows 2000. To get a pointer to this implementation, call the CoCreateInstance function, specifying CLSID_DCOMAccessControl as the CLSID. This implementation supports the IPersist interface to save the state of the access control object.
The implementation of IAccessControl provided by COM calls built-in access control functions such as OpenThreadToken and AccessCheck. If you decide to implement IAccessControl yourself, you can also call these access control functions. However, because IAccessControl methods take access information in a different format than the built-in access control functions do, your implementation must be able to convert from one format to the other as necessary.
Note If you decide to implement IAccessControl and pass your implementation to the CoInitializeSecurity function, you must ensure that it is completely thread-safe, because COM can call it on any thread, at any time.
In addition to the COM implementation of IAccessControl, another implementation is supplied for storage and Directory Service objects.
When to Use
Call methods of the IAccessControl interface to manage access to objects and properties and to obtain access information. This interface primarily sets process security with a call to CoInitializeSecurity, specifying capability flag EOAC_ACCESS_CONTROL and providing a pointer to an instance of IAccessControl as the first (pVoid) parameter. Then, COM calls IAccessControl methods to determine access rights.
IAccessControl should only be used to manage access rights. To manage launch permissions, use DCOMCNFG or set the LaunchPermission named value under the APPID registry key.
COM formats all character strings as Unicode. You must convert all ANSI strings to Unicode before passing them to methods of an implementation of IAccessControl.
Methods
The following table shows the methods for this interface in the order that the compiler calls the methods. Like all COM interfaces, this interface inherits the methods for the IUnknown interface.
IUnknown method | Description |
---|---|
QueryInterface | Returns pointers to supported interfaces. |
AddRef | Increments reference count. |
Release | Decrements reference count. |
IAccessControl method | Description |
---|---|
GrantAccessRights | Merges the new ACTRL_ACCESS list with the existing access rights on the object. |
SetAccessRights | Replaces existing access rights with the specified list. |
SetOwner | Sets an item's owner or group. |
RevokeAccessRights | Removes explicit entries for the list of trustees. |
GetAllAccessRights | Gets the entire list of access rights and/or the owner and group for the object. |
IsAccessAllowed | Determines whether the trustee has access to the object/property. |
Remarks
To determine whether the platform supports this interface, see Determining Supported COM APIs.
Requirements
OS Versions: Windows CE 3.0 and later.
Header: IAccess.h.
Link Library: Ole32.lib, Uuid.lib.
See Also
CoCreateInstance | CoInitializeSecurity | IPersist
Last updated on Wednesday, April 13, 2005
© 2005 Microsoft Corporation. All rights reserved.