public virtual ResTable_package ReadResTable_package(ResChunk_header header) { var value = new ResTable_package { Header = header, Id = ReadUInt32(), Name = Encoding.Unicode.GetString(ReadBytes(256)), TypeStrings = ReadUInt32(), LastPublicType = ReadUInt32(), KeyStrings = ReadUInt32(), LastPublicKey = ReadUInt32() }; if (header.HeaderSize > 284) { value.TypeIdOffset = ReadUInt32(); } if (header.HeaderSize > 292) { // New fields have been added, which we don't know about. ReadBytes(header.HeaderSize - 292); } return(value); }
public virtual void Write(ResTable_package data) { Write(data.Header); _writer.Write(data.Id); var stringData = new byte[256]; byte[] tempData = Encoding.Unicode.GetBytes(data.Name); int length = Math.Min(255, tempData.Length); // last pair of bytes must be 0 Array.Copy(tempData, stringData, length); _writer.Write(stringData); _writer.Write(data.TypeStrings); _writer.Write(data.LastPublicType); _writer.Write(data.KeyStrings); _writer.Write(data.LastPublicKey); }