#include VxDHeader::~VxDHeader() { } VxDHeader &VxDHeader::operator=(const VxDHeader &someVxDHeader) { ::memcpy((char*)&((_IMAGE_VXD_HEADER&)*this),(char*)&((_IMAGE_VXD_HEADER&)someVxDHeader),sizeof(_IMAGE_VXD_HEADER)); (DOSHeader&)*this=(DOSHeader&)someVxDHeader; return *this; } WORD VxDHeader::operator==(const VxDHeader &someVxDHeader) { return ((DOSHeader&)*this==(DOSHeader&)someVxDHeader&& magic()==someVxDHeader.magic()&& byteOrdering()==someVxDHeader.byteOrdering()&& wordOrdering()==someVxDHeader.wordOrdering()&& exeFormatLevel()==someVxDHeader.exeFormatLevel()&& cpuType()==someVxDHeader.cpuType()&& osType()==someVxDHeader.osType()&& moduleVersion()==someVxDHeader.moduleVersion()&& moduleFlags()==someVxDHeader.moduleFlags()&& moduleNumPages()==someVxDHeader.moduleNumPages()&& startObjectNumberForIP()==someVxDHeader.startObjectNumberForIP()&& eip()==someVxDHeader.eip()&& startObjectNumberForSP()==someVxDHeader.startObjectNumberForSP()&& esp()==someVxDHeader.esp()&& vxdPageSize()==someVxDHeader.vxdPageSize()&& vxdLastPageSize()==someVxDHeader.vxdLastPageSize()&& fixupSectionSize()==someVxDHeader.fixupSectionSize()&& fixupSectionChecksum()==someVxDHeader.fixupSectionChecksum()&& loaderSectionSize()==someVxDHeader.loaderSectionSize()&& loaderSectionChecksum()==someVxDHeader.loaderSectionChecksum()&& objectTableOffset()==someVxDHeader.objectTableOffset()&& objectCount()==someVxDHeader.objectCount()&& objectPageMapOffset()==someVxDHeader.objectPageMapOffset()&& objectIteratedDataMapOffset()==someVxDHeader.objectIteratedDataMapOffset()&& resourceTableOffset()==someVxDHeader.resourceTableOffset()&& resourceEntryCount()==someVxDHeader.resourceEntryCount()&& residentNameTableOffset()==someVxDHeader.residentNameTableOffset()&& entryTableOffset()==someVxDHeader.entryTableOffset()&& moduleDirectiveTableOffset()==someVxDHeader.moduleDirectiveTableOffset()&& moduleDirectivesCount()==someVxDHeader.moduleDirectivesCount()&& fixupPageTableOffset()==someVxDHeader.fixupPageTableOffset()&& fixupRecordTableOffset()==someVxDHeader.fixupRecordTableOffset()&& importModuleNameTableOffset()==someVxDHeader.importModuleNameTableOffset()&& importModuleNameTableCount()==someVxDHeader.importModuleNameTableCount()&& importProcedureNameTableOffset()==someVxDHeader.importProcedureNameTableOffset()&& perPageChecksumTableOffset()==someVxDHeader.perPageChecksumTableOffset()&& enumeratedDataPagesOffset()==someVxDHeader.enumeratedDataPagesOffset()&& preloadPagesCount()==someVxDHeader.preloadPagesCount()&& nonResidentNameTableOffset()==someVxDHeader.nonResidentNameTableOffset()&& nonResidentNameTableChecksum()==someVxDHeader.nonResidentNameTableChecksum()&& automaticDataObjectNumber()==someVxDHeader.automaticDataObjectNumber()&& debugInfoOffset()==someVxDHeader.debugInfoOffset()&& debugInfoLengthBytes()==someVxDHeader.debugInfoLengthBytes()&& preloadSectionInstancePageCount()==someVxDHeader.preloadSectionInstancePageCount()&& demandLoadSectionInstancePageCount()==someVxDHeader.demandLoadSectionInstancePageCount()&& sizeHeap()==someVxDHeader.sizeHeap()&& windowsResourceOffset()==someVxDHeader.windowsResourceOffset()&& windowsResourceLength()==someVxDHeader.windowsResourceLength()&& vxdID()==someVxDHeader.vxdID()&& ddkVersion()==someVxDHeader.ddkVersion()); } WORD VxDHeader::operator<<(PureViewOfFile &pureView) { VxDObjects::remove(); VxDNames::remove(); pureView.rewind(); if(!(((DOSHeader&)*this)<