README.TXT

DCOMPERM 
========

The DCOMPERM sample provides source code and several wrapper functions to
simplify the process of manipulating the access and launch permissions for
a COM server. Additionally, this sample provides code which demonstrates how
to set and retrieve the RunAs password for a COM server.

Wrapper Functions
-----------------

ChangeDefaultAccessACL ------------------------------------------------------

DWORD
ChangeDefaultAccessACL (
LPTSTR Principal,
BOOL SetPrincipal,
BOOL Permit
);

Description:

Modify the default access access control list. The system uses the default
access ACL to determine if a principal is allowed to access the COM server
if the COM server does not have its own access ACL in the AppID section of
the registry.

Parameters:

Principal Name of user or group (e.g. "redmond\johndoe")

SetPrincipal TRUE if you want to add/update the principal's
entry in the ACL
FALSE if you want to remove the principal from
the ACL

Permit TRUE if you want to allow the principal to access
the object
FALSE if you want to prevent the principal from
accessing the object

(Note that the Permit flag applies only when SetPrincipal is TRUE.)

ChangeAppIDAccessACL --------------------------------------------------------

DWORD
ChangeAppIDAccessACL (
LPTSTR AppID,
LPTSTR Principal,
BOOL SetPrincipal,
BOOL Permit
);

Modify an AppID's access access control list. The system uses the AppID
access ACL to determine if a principal is allowed to access the COM server
associated with the AppID.

Parameters:
AppID The Application ID you wish to modify
(e.g. "{99999999-9999-9999-9999-00AA00BBF7C7}")

Principal Name of user or group (e.g. "redmond\johndoe")

SetPrincipal TRUE if you want to add the principal to the ACL
FALSE if you want to remove the principal from
the ACL

Permit TRUE if you want to allow the principal to access
the object
FALSE if you want to prevent the principal from
accessing the object


(Note that the Permit flag applies only when SetPrincipal is TRUE.)

ChangeDefaultLaunchACL ------------------------------------------------------

DWORD
ChangeDefaultLaunchACL (
LPTSTR Principal,
BOOL SetPrincipal,
BOOL Permit
);

Modify the default launch access control list. The system uses the
default launch ACL to determine if a principal is allowed to launch a
COM server if the COM server does not have its own launch ACL in the AppID
section of the registry.

Parameters:

Principal Name of user or group (e.g. "redmond\johndoe")

SetPrincipal TRUE if you want to add/update the principal's
entry in the ACL
FALSE if you want to remove the principal from
the ACL

Permit TRUE if you want to allow the principal to launch
the object
FALSE if you want to prevent the principal from
launching the object

(Note that the Permit flag applies only when SetPrincipal is TRUE.)

ChangeAppIDLaunchACL --------------------------------------------------------

DWORD
ChangeAppIDLaunchACL (
LPTSTR AppID,
LPTSTR Principal,
BOOL SetPrincipal,
BOOL Permit
);

Modify an AppID's launch access control list. The system uses the AppID
launch ACL to determine if a principal (a user or group of users) is allowed
to launch the COM server associated with the AppID.

Parameters:
AppID The Application ID you set permissions for
(e.g. "{99999999-9999-9999-9999-00AA00BBF7C7}")

Principal Name of user or group (e.g. "redmond\johndoe")

SetPrincipal TRUE if you want to add the principal to the ACL
FALSE if you want to remove the principal from
the ACL

Permit TRUE if you want to allow the principal to launch
the object
FALSE if you want to prevent the principal from
launching the object


(Note that the Permit flag applies only when SetPrincipal is TRUE.)

GetRunAsPassword ------------------------------------------------------------

DWORD GetRunAsPassword (
LPTSTR AppID,
LPTSTR Password
);

Description:

Retrieves the RunAs password for an AppID.

Parameters:

AppID The Application ID you wish to configure
(e.g. "{99999999-9999-9999-9999-00AA00BBF7C7}")

Password Password of the user you have specified in
the RunAs named value under the AppID registry
key.

SetRunAsPassword ------------------------------------------------------------

DWORD SetRunAsPassword (
LPTSTR AppID,
LPTSTR Principal,
LPTSTR Password
);

Description:

Sets the RunAs password for an AppID. Note that if you have specified the
RunAs named value to "Interactive User" you do not need to set the RunAs
password.

Parameters:

AppID The Application ID you wish to configure
(e.g. "{99999999-9999-9999-9999-00AA00BBF7C7}")

Principal Name of the principal you have specified in the
RunAs named value under the AppID registry key

Password Password of the principal you have specified in
the RunAs named value under the AppID registry
key.