/** * Constructs a RefMode record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public RefModeRecord(RecordInputStream in1) { field_1_mode = in1.ReadShort(); }
/** * Constructs a Delta record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public DeltaRecord(RecordInputStream in1) { field_1_max_change = in1.ReadDouble(); }
/** * Constructs a FnGroupCount record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public FnGroupCountRecord(RecordInputStream in1) { field_1_count = in1.ReadShort(); }
/** * Constructs a OBJ record and Sets its fields appropriately. * * @param in the RecordInputstream to Read the record from */ public ObjRecord(RecordInputStream in1) { // TODO - problems with OBJ sub-records stream // MS spec says first sub-record is always CommonObjectDataSubRecord, // and last is // always EndSubRecord. OOO spec does not mention ObjRecord(0x005D). // Existing POI test data seems to violate that rule. Some test data // seems to contain // garbage, and a crash is only averted by stopping at what looks like // the 'EndSubRecord' //Check if this can be continued, if so then the //following wont work properly //int subSize = 0; byte[] subRecordData = in1.ReadRemainder(); if (LittleEndian.GetUShort(subRecordData, 0) != CommonObjectDataSubRecord.sid) { // seems to occur in just one junit on "OddStyleRecord.xls" (file created by CrystalReports) // Excel tolerates the funny ObjRecord, and replaces it with a corrected version // The exact logic/reasoning is not yet understood _uninterpretedData = subRecordData; subrecords = null; return; } //if (subRecordData.Length % 2 != 0) //{ // String msg = "Unexpected length of subRecordData : " + HexDump.ToHex(subRecordData); // throw new RecordFormatException(msg); //} subrecords = new List <SubRecord>(); using (MemoryStream bais = new MemoryStream(subRecordData)) { LittleEndianInputStream subRecStream = new LittleEndianInputStream(bais); CommonObjectDataSubRecord cmo = (CommonObjectDataSubRecord)SubRecord.CreateSubRecord(subRecStream, 0); subrecords.Add(cmo); while (true) { SubRecord subRecord = SubRecord.CreateSubRecord(subRecStream, cmo.ObjectType); subrecords.Add(subRecord); if (subRecord.IsTerminating) { break; } } int nRemainingBytes = subRecStream.Available(); if (nRemainingBytes > 0) { // At present (Oct-2008), most unit test samples have (subRecordData.length % 2 == 0) _isPaddedToQuadByteMultiple = subRecordData.Length % MAX_PAD_ALIGNMENT == 0; if (nRemainingBytes >= (_isPaddedToQuadByteMultiple ? MAX_PAD_ALIGNMENT : NORMAL_PAD_ALIGNMENT)) { if (!CanPaddingBeDiscarded(subRecordData, nRemainingBytes)) { String msg = "Leftover " + nRemainingBytes + " bytes in subrecord data " + HexDump.ToHex(subRecordData); throw new RecordFormatException(msg); } _isPaddedToQuadByteMultiple = false; } } else { _isPaddedToQuadByteMultiple = false; } _uninterpretedData = null; } }
private static byte[] Read(RecordInputStream in1, int size) { byte[] result = new byte[size]; in1.ReadFully(result); return(result); }
/** * Constructs a BottomMargin record and Sets its fields appropriately. * * @param in the RecordInputstream to Read the record from */ public BottomMarginRecord(RecordInputStream in1) { field_1_margin = in1.ReadDouble(); }
public DrawingGroupRecord(RecordInputStream in1) : base(in1) { }
/// <summary> /// Initializes a new instance of the <see cref="FooterRecord"/> class. /// </summary> /// <param name="in1">the RecordInputstream to Read the record from</param> public FooterRecord(RecordInputStream in1) : base(in1) { }
/** * Constructs a SCL record and Sets its fields appropriately. * * @param in the RecordInputstream to Read the record from */ public SCLRecord(RecordInputStream in1) { field_1_numerator = in1.ReadShort(); field_2_denominator = in1.ReadShort(); }
/** * Constructs a Number record and Sets its fields appropriately. * * @param in the RecordInputstream to Read the record from */ public NumberRecord(RecordInputStream in1) : base(in1) { field_4_value = in1.ReadDouble(); }
/** * Constructs an LabelSST record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public LabelSSTRecord(RecordInputStream in1) : base(in1) { field_4_sst_index = in1.ReadInt(); }
/** * reads only the range (1 {@link CellRangeAddress8Bit}) from the stream */ public SharedValueRecordBase(RecordInputStream in1) { _range = new CellRangeAddress8Bit(in1); }
/** * construct an UserSViewBegin record. No fields are interpreted and the record will * be Serialized in its original form more or less * @param in the RecordInputstream to read the record from */ public UserSViewBegin(RecordInputStream in1) { _rawData = in1.ReadRemainder(); }
public PrintSizeRecord(RecordInputStream in1) { printSize = in1.ReadShort(); }
/** * Constructs a RefreshAll record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public RefreshAllRecord(RecordInputStream in1) : this(in1.ReadUShort()) { }
public DrawingSelectionRecord(RecordInputStream in1) : base(in1) { }
/** * Constructs a Protect record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public ProtectRecord(RecordInputStream in1) : this(in1.ReadShort()) { }
/** * Constructs a BookBoolRecord and Sets its fields appropriately * @param in the RecordInputstream to Read the record from */ public BookBoolRecord(RecordInputStream in1) { field_1_save_link_values = in1.ReadShort(); }
/** * Constructs a Protect record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public ScenarioProtectRecord(RecordInputStream in1) { field_1_protect = in1.ReadShort(); }
/** * Constructs a CalcCountRecord and Sets its fields appropriately * @param in the RecordInputstream to Read the record from * */ public CalcCountRecord(RecordInputStream in1) { field_1_iterations = in1.ReadShort(); }
/** * Constructs a RECALCID record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public RecalcIdRecord(RecordInputStream in1) { in1.ReadUShort(); // field 'rt' should have value 0x01C1, but Excel doesn't care during reading _reserved0 = in1.ReadUShort(); _engineId = in1.ReadInt(); }
/** * Constructs a PrintGridlines record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public PrintGridlinesRecord(RecordInputStream in1) { field_1_print_gridlines = in1.ReadShort(); }
/** * Constructs a Units record and Sets its fields appropriately. * * @param in the RecordInputstream to Read the record from */ public UnitsRecord(RecordInputStream in1) { field_1_units = in1.ReadShort(); }
public InfoSubRecord(RecordInputStream in1) { field_1_stream_pos = in1.ReadInt(); field_2_bucket_sst_offset = in1.ReadShort(); field_3_zero = in1.ReadShort(); }
/** * Constructs an HideObj record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public HideObjRecord(RecordInputStream in1) { field_1_hide_obj = in1.ReadShort(); }
/** * Constructs a RK record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public RKRecord(RecordInputStream in1) : base(in1) { field_4_rk_number = in1.ReadInt(); }
/** * Read hyperlink from input stream * * @param in the stream to Read from */ public HyperlinkRecord(RecordInputStream in1) { _range = new CellRangeAddress(in1); // 16-byte GUID _guid = new GUID(in1); /* * streamVersion (4 bytes): An unsigned integer that specifies the version number * of the serialization implementation used to save this structure. This value MUST equal 2. */ int streamVersion = in1.ReadInt(); if (streamVersion != 0x00000002) { throw new RecordFormatException("Stream Version must be 0x2 but found " + streamVersion); } _linkOpts = in1.ReadInt(); if ((_linkOpts & HLINK_LABEL) != 0) { int label_len = in1.ReadInt(); _label = in1.ReadUnicodeLEString(label_len); } if ((_linkOpts & HLINK_TARGET_FRAME) != 0) { int len = in1.ReadInt(); _targetFrame = in1.ReadUnicodeLEString(len); } if ((_linkOpts & HLINK_URL) != 0 && (_linkOpts & HLINK_UNC_PATH) != 0) { _moniker = null; int nChars = in1.ReadInt(); _address = in1.ReadUnicodeLEString(nChars); } if ((_linkOpts & HLINK_URL) != 0 && (_linkOpts & HLINK_UNC_PATH) == 0) { _moniker = new GUID(in1); if (URL_MONIKER.Equals(_moniker)) { int length = in1.ReadInt(); /* * The value of <code>length<code> be either the byte size of the url field * (including the terminating NULL character) or the byte size of the url field plus 24. * If the value of this field is set to the byte size of the url field, * then the tail bytes fields are not present. */ int remaining = in1.Remaining; if (length == remaining) { int nChars = length / 2; _address = in1.ReadUnicodeLEString(nChars); } else { int nChars = (length - TAIL_SIZE) / 2; _address = in1.ReadUnicodeLEString(nChars); /* * TODO: make sense of the remaining bytes * According to the spec they consist of: * 1. 16-byte GUID: This field MUST equal * {0xF4815879, 0x1D3B, 0x487F, 0xAF, 0x2C, 0x82, 0x5D, 0xC4, 0x85, 0x27, 0x63} * 2. Serial version, this field MUST equal 0 if present. * 3. URI Flags */ _uninterpretedTail = ReadTail(URL_uninterpretedTail, in1); } } else if (FILE_MONIKER.Equals(_moniker)) { _fileOpts = in1.ReadShort(); int len = in1.ReadInt(); _shortFilename = StringUtil.ReadCompressedUnicode(in1, len); _uninterpretedTail = ReadTail(FILE_uninterpretedTail, in1); int size = in1.ReadInt(); if (size > 0) { int charDataSize = in1.ReadInt(); //From the spec: An optional unsigned integer that MUST be 3 if present int optFlags = in1.ReadUShort(); if (optFlags != 0x0003) { throw new RecordFormatException("Expected 0x3 but found " + optFlags); } _address = StringUtil.ReadUnicodeLE(in1, charDataSize / 2); } else { _address = null; } } else if (STD_MONIKER.Equals(_moniker)) { _fileOpts = in1.ReadShort(); int len = in1.ReadInt(); byte[] path_bytes = new byte[len]; in1.ReadFully(path_bytes); _address = Encoding.UTF8.GetString(path_bytes); } } if ((_linkOpts & HLINK_PLACE) != 0) { int len = in1.ReadInt(); _textMark = in1.ReadUnicodeLEString(len); } if (in1.Remaining > 0) { Console.WriteLine(HexDump.ToHex(in1.ReadRemainder())); } }
/** * Constructs a DBCellRecord and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public DSFRecord(RecordInputStream in1) : this(in1.ReadShort()) { }
/** * Constructs a VCENTER record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public VCenterRecord(RecordInputStream in1) { field_1_vcenter = in1.ReadShort(); }
/** * Constructs an SaveRecalc record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public SaveRecalcRecord(RecordInputStream in1) { field_1_recalc = in1.ReadShort(); }