Files
Work/image/NTSUBSYS.HPP
2024-08-07 09:16:27 -04:00

78 lines
1.6 KiB
C++

#ifndef _IMAGE_NTSUBSYS_HPP_
#define _IMAGE_NTSUBSYS_HPP_
#ifndef _COMMON_PUREVIEWOFFILE_HPP_
#include <common/pview.hpp>
#endif
class NTSubSystem
{
public:
enum SubSystem{Unknown=0x0000,Native=0x0001,WindowsGUI=0x0002,WindowsChar=0x0003,OS2Char=0x0005,PosixChar=0x0007};
NTSubSystem(WORD subSystem=0);
NTSubSystem(const NTSubSystem &someNTSubSystem);
~NTSubSystem();
NTSubSystem &operator=(const NTSubSystem &someNTSubSystem);
WORD operator==(const NTSubSystem &someNTSubSystem);
SubSystem subSystem(void)const;
void subSystem(SubSystem subSystem);
operator String(void)const;
private:
SubSystem mSubSystem;
};
inline
NTSubSystem::NTSubSystem(WORD subSystem)
: mSubSystem((SubSystem)subSystem)
{
}
inline
NTSubSystem::NTSubSystem(const NTSubSystem &someNTSubSystem)
{
*this=someNTSubSystem;
}
inline
NTSubSystem::~NTSubSystem()
{
}
inline
NTSubSystem &NTSubSystem::operator=(const NTSubSystem &someNTSubSystem)
{
subSystem(someNTSubSystem.subSystem());
return *this;
}
inline
WORD NTSubSystem::operator==(const NTSubSystem &someNTSubSystem)
{
return subSystem()==someNTSubSystem.subSystem();
}
inline
NTSubSystem::SubSystem NTSubSystem::subSystem(void)const
{
return mSubSystem;
}
inline
void NTSubSystem::subSystem(SubSystem subSystem)
{
mSubSystem=subSystem;
}
inline
NTSubSystem::operator String(void)const
{
if(Unknown==subSystem())return "Unknown";
else if(Native==subSystem())return "Native";
else if(WindowsGUI==subSystem())return "WindowsGUI";
else if(WindowsChar==subSystem())return "WindowsChar";
else if(OS2Char==subSystem())return "OS2Char";
else if(PosixChar==subSystem())return "PosixChar";
else return "********";
}
#endif