home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tricks of the Windows Gam…ming Gurus (2nd Edition)
/
Disc2.iso
/
msdn_vcb
/
samples
/
vc98
/
sdk
/
sdktools
/
winnt
/
cacls
/
daclwrap.hxx
< prev
next >
Wrap
Text File
|
1995-03-13
|
2KB
|
72 lines
//+-------------------------------------------------------------------
//
// Copyright (C) 1995, Microsoft Corporation.
//
// File: daclwrap.hxx
//
// Contents: class encapsulating file security.
//
// Classes: CDaclWrap
//
// History: Nov-93 Created DaveMont
//
//--------------------------------------------------------------------
#ifndef __DACLWRAP__
#define __DACLWRAP__
#include <t2.hxx>
#include <accacc.hxx>
//+-------------------------------------------------------------------
//
// Class: CDaclWrap
//
// Purpose: encapsulation of File security (ie. a wrapper around a
// DACL) This class provides methods to build a new acl,
// with intent to merge it with an existing DACL on a file.
//
//--------------------------------------------------------------------
typedef struct
{
CAccountAccess *pcaa;
ULONG option;
} SACCOUNTANDOPTIONS;
class CDaclWrap
{
public:
CDaclWrap();
~CDaclWrap();
// building the new dacl, based on previous SetAccess inputs and
// the input DACL
ULONG BuildAcl(ACL **pnewdacl, ACL *poldacl, UCHAR revision, BOOL fdir);
// adding, replacing and removing aces
ULONG SetAccess(ULONG option, WCHAR *Name, WCHAR *System, ULONG access);
private:
ULONG _GetNewAclSize(ULONG *caclsize, ACL *poldacl, BOOL fdir);
ULONG _SetDeniedAce(ACL *dacl, ACCESS_MASK mask, SID *psid, BOOL fdir);
ULONG _SetAllowedAce(ACL *dacl, ACCESS_MASK mask, SID *psid, BOOL fdir);
ULONG _FillNewAcl(ACL *pnewdacl, ACL *poldacl, BOOL fdir);
ULONG _AllocateNewAcl(ACL **pnewdacl, ULONG caclsize, ULONG revision);
ULONG _acessize ;
ULONG _ccaa ;
SACCOUNTANDOPTIONS _aaa[CMAXACES] ;
};
#endif // __DACLWRAP__