Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

104 lines
2.8 KiB

/*++
Copyright (c) 2001 Microsoft Corporation
Module Name :
common.hxx
Abstract:
Class's that are common, will be defined here
Author:
Christopher Achille (cachille)
Project:
Internet Services Setup
Revision History:
August 2001: Created
--*/
#include "Aclapi.h"
// class: CIsUpgrade
//
// The class will tell you if you are in an upgrade, within the range you specify
//
class CIsUpgrade : public CBaseFunction {
private:
virtual BOOL VerifyParameters(CItemList &ciParams);
virtual BOOL DoInternalWork(CItemList &ciList);
public:
virtual LPTSTR GetMethodName();
};
// class: CFileSys_Acl
//
// This class gives you the common ACL commands
//
class CFileSys_Acl : public CBaseFunction
{
protected:
BOOL AddAcetoSD( HANDLE hObject, // handle to object
SE_OBJECT_TYPE ObjectType, // type of object
LPTSTR pszTrustee, // trustee for new ACE
TRUSTEE_FORM TrusteeForm, // format of TRUSTEE structure
DWORD dwAccessRights, // access mask for new ACE
ACCESS_MODE AccessMode, // type of ACE
DWORD dwInheritance, // inheritance flags for new ACE
BOOL bAddToExisting // add the new ace to the old SD, if not create a new SD
);
BOOL CreateFullFileName(BUFFER &buffFullFileName, LPTSTR szFullPathwithWildCard, LPTSTR szFileName);
BOOL SetFileAcl(LPTSTR szFileName, LPTSTR szUserName, SE_OBJECT_TYPE sObjectType, DWORD dwAccessMask, BOOL bAllowAccess,
DWORD dwInheritable, BOOL bAddAcetoOriginal);
BOOL RemoveUserFromAcl(PACL pAcl, LPTSTR szUserName);
BOOL RemoveUserAcl(LPTSTR szFile, LPTSTR szUserName);
BOOL DoAcling(CItemList &ciList, BOOL bAdd, BOOL bAddtoOriginal = TRUE );
};
// class: CFileSys_AddAcl
//
// This class will let you modify an ACL
//
class CFileSys_AddAcl : public CFileSys_Acl {
private:
virtual BOOL VerifyParameters(CItemList &ciParams);
virtual BOOL DoInternalWork(CItemList &ciList);
public:
virtual LPTSTR GetMethodName();
};
// class: CFileSys_RemoveAcl
//
// This class remove acl's for files
//
class CFileSys_RemoveAcl : public CFileSys_Acl {
private:
virtual BOOL VerifyParameters(CItemList &ciParams);
virtual BOOL DoInternalWork(CItemList &ciList);
public:
virtual LPTSTR GetMethodName();
};
// class: CFileSys_SetAcl
//
// This class will let you set an ACL (ignoring previous ACL)
//
class CFileSys_SetAcl : public CFileSys_Acl {
private:
virtual BOOL VerifyParameters(CItemList &ciParams);
virtual BOOL DoInternalWork(CItemList &ciList);
public:
virtual LPTSTR GetMethodName();
};