#pragma once #include "sector.h" #include namespace CFCPP { class Header { public: Header(); Header(ushort version); void Write(Stream stream); void Read(Stream stream); private: void CheckVersion()const; void CheckSignature()const; public: std::array headerSignature = {0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1}; std::array clsid; USHORT minorVersion = 0x003E; USHORT majorVersion = 0x0003; USHORT byteOrder = 0xFFFE; USHORT sectorShift = 9; USHORT miniSectorShift = 6; std::array unUsed; int directorySectorsNumber; int fatSectorsNumber; int firstDirectorySectorID = Sector::ENDOFCHAIN; uint unUsed2; uint minSizeStandardStream = 4096; int firstMiniFATSectorID = 0xFFFFFFFE; uint miniFATSectorsNumber; int firstDIFATSectorID = Sector::ENDOFCHAIN; uint difatSectorsNumber; std::array difat; }; }