ACCESS CONTROL PLUGIN
---------------------

Written by Mathias Hasselmann <mathias@taschenorakel.de>

The AccessControl plugin for NSIS provides a set of functions related 
Windows NT access control list (ACL) management.

MODIFICATIONS
-------------

- 13th July 2007 ~ kichik
Return proper error codes (return value instead of GetLastError())

- 30th June 2006 ~ Afrow UK
Error MessageBox removed.
Error messages are now just returned on NSIS stack.

CONVENTIONS
-----------

<filename>
	A valid Windows(tm) filename (ie. "C:\WINDOWS\" or "\\HOSTNAME\SHARE").

<rootkey>
	The well-known root of a registry key. Following values are defined:
	
		HKCR - HKEY_CLASSES_ROOT
		HKLM - HKEY_LOCAL_MACHINE
		HKCU - HKEY_CURRENT_USER
		HKU	 - HKEY_USERS

<regkey>
	The name of the registry to alter (ie. "Software\Microsoft\Windows").

<trustee>
	A valid Windows(tm) account. The account can be specified as relative 
	account name (ie. "Administrator" or "Everyone"), as qualified account 
    name (ie. "Domain\Administrator") or as security identifier (SID, 
	ie. "(S-1-5-32-545)").

<permissions>
	A combination of access rights (ie. "FullAccess" or 
	"GenericRead + GenericWrite").


FUNCTIONS
---------

GrantOnFile <filename> <trustee> <permissions>
GrantOnRegKey <rootkey> <regkey> <trustee> <permissions>

	Makes sure that the trustee get the requested access rights on 
	that object.

SetOnFile <filename> <trustee> <permissions>
SetOnRegKey <rootkey> <regkey> <trustee> <permissions>

	Deletes all permissions on the object and replaces them
	with the specified access right.

DenyOnFile <filename> <trustee> <permissions>
DenyOnRegKey <rootkey> <regkey> <trustee> <permissions>

	Explicitly denies an access right on a object.

RevokeOnFile <filename> <trustee> <permissions>
RevokeOnRegKey <rootkey> <regkey> <trustee> <permissions>

	Removes a formerly defined access right for that object.

SetFileOwner <filename> <trustee>
SetRegKeyOwner <rootkey> <regkey> <trustee>

	Changes the owner of an object.

SetFileGroup <filename> <trustee>
SetRegKeyGroup <rootkey> <regkey> <trustee>

	Changes the primary group of the object.
