#ifndef _IMAGE_NTSUBSYS_HPP_ #define _IMAGE_NTSUBSYS_HPP_ #ifndef _COMMON_PUREVIEWOFFILE_HPP_ #include #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