public HeaderBlock(POIFSBigBlockSize bigBlockSize) { this.bigBlockSize = bigBlockSize; _data = new byte[POIFSConstants.SMALLER_BIG_BLOCK_SIZE]; //fill the array. for (int i = 0; i < _data.Length; i++) _data[i] = _default_value; new LongField(_signature_offset, _signature, _data); new IntegerField(0x08, 0, _data); new IntegerField(0x0c, 0, _data); new IntegerField(0x10, 0, _data); new IntegerField(0x14, 0, _data); new ShortField((int)0x18, (short)0x3b, ref _data); new ShortField((int)0x1a, (short)0x3, ref _data); new ShortField((int)0x1c, (short)-2, ref _data); new ShortField(0x1e, bigBlockSize.GetHeaderValue(), ref _data); new IntegerField(0x20, 0x6, _data); new IntegerField(0x24, 0, _data); new IntegerField(0x28, 0, _data); new IntegerField(0x34, 0, _data); new IntegerField(0x38, 0x1000, _data); _bat_count = 0; _sbat_count = 0; _xbat_count = 0; _property_start = POIFSConstants.END_OF_CHAIN; _sbat_start = POIFSConstants.END_OF_CHAIN; _xbat_start = POIFSConstants.END_OF_CHAIN; }