Example #1
0
        private int SerializeTXORecord(int offset, byte[] data)
        {
            int dataSize = this.DataSize;

            LittleEndian.PutUShort(data, 0 + offset, TextObjectRecord.sid);
            LittleEndian.PutUShort(data, 2 + offset, dataSize);

            LittleEndian.PutUShort(data, 4 + offset, field_1_options);
            LittleEndian.PutUShort(data, 6 + offset, field_2_textOrientation);
            LittleEndian.PutUShort(data, 8 + offset, field_3_reserved4);
            LittleEndian.PutUShort(data, 10 + offset, field_4_reserved5);
            LittleEndian.PutUShort(data, 12 + offset, field_5_reserved6);
            LittleEndian.PutUShort(data, 14 + offset, _text.Length);
            LittleEndian.PutUShort(data, 16 + offset, FormattingDataLength);
            LittleEndian.PutInt(data, 18 + offset, field_8_reserved7);

            if (_linkRefPtg != null)
            {
                int pos         = offset + 22;
                int formulaSize = _linkRefPtg.Size;
                LittleEndian.PutUShort(data, pos, formulaSize);
                pos += LittleEndianConstants.SHORT_SIZE;
                LittleEndian.PutInt(data, pos, _unknownPreFormulaInt);
                pos += LittleEndianConstants.INT_SIZE;
                _linkRefPtg.WriteBytes(data, pos);
                pos += formulaSize;


                if (_unknownPostFormulaByte != null)
                {
                    LittleEndian.PutByte(data, pos, Convert.ToByte(_unknownPostFormulaByte));
                    pos += LittleEndianConstants.BYTE_SIZE;
                }
            }

            return(4 + dataSize);
        }