87 lines
1.4 KiB
C++
87 lines
1.4 KiB
C++
#ifndef _COMMON_REGSAM_HPP_
|
|
#define _COMMON_REGSAM_HPP_
|
|
#ifndef _COMMON_SHELLAPI_HPP_
|
|
#include <common/shellapi.hpp>
|
|
#endif
|
|
|
|
class RegSam
|
|
{
|
|
public:
|
|
enum Sam{AllAccess=KEY_ALL_ACCESS,CreateLink=KEY_CREATE_LINK,CreateSubKey=KEY_CREATE_SUB_KEY,
|
|
EnumerateSubKeys=KEY_ENUMERATE_SUB_KEYS,Execute=KEY_EXECUTE,Notify=KEY_NOTIFY,
|
|
QueryValue=KEY_QUERY_VALUE,Read=KEY_READ,SetValue=KEY_SET_VALUE,Write=KEY_WRITE};
|
|
RegSam(void);
|
|
RegSam(Sam sam);
|
|
RegSam(const RegSam &someRegSam);
|
|
virtual ~RegSam();
|
|
RegSam &operator=(const RegSam &someRegSam);
|
|
RegSam &operator+=(Sam sam);
|
|
WORD operator==(const RegSam &someRegSam);
|
|
operator DWORD(void)const;
|
|
DWORD regSam(void)const;
|
|
void regSam(DWORD regSam);
|
|
private:
|
|
DWORD mRegSam;
|
|
};
|
|
|
|
inline
|
|
RegSam::RegSam(void)
|
|
: mRegSam(AllAccess|Execute|Read|Write)
|
|
{
|
|
}
|
|
|
|
inline
|
|
RegSam::RegSam(Sam sam)
|
|
: mRegSam(sam)
|
|
{
|
|
}
|
|
|
|
inline
|
|
RegSam::RegSam(const RegSam &someRegSam)
|
|
{
|
|
*this=someRegSam;
|
|
}
|
|
|
|
inline
|
|
RegSam::~RegSam()
|
|
{
|
|
}
|
|
|
|
inline
|
|
RegSam &RegSam::operator=(const RegSam &someRegSam)
|
|
{
|
|
regSam(someRegSam.regSam());
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
RegSam &RegSam::operator+=(Sam sam)
|
|
{
|
|
mRegSam|=sam;
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
WORD RegSam::operator==(const RegSam &someRegSam)
|
|
{
|
|
return regSam()==someRegSam.regSam();
|
|
}
|
|
|
|
inline
|
|
RegSam::operator DWORD(void)const
|
|
{
|
|
return mRegSam;
|
|
}
|
|
|
|
inline
|
|
DWORD RegSam::regSam(void)const
|
|
{
|
|
return mRegSam;
|
|
}
|
|
|
|
inline
|
|
void RegSam::regSam(DWORD regSam)
|
|
{
|
|
mRegSam=regSam;
|
|
}
|
|
#endif |