private static void WriteUInt32Field(BinaryWriter writer, PSPCreatorFieldID field, uint value) { writer.Write(PSPConstants.fieldIdentifier); writer.Write((ushort)field); writer.Write(sizeof(uint)); writer.Write(value); }
private static void WriteASCIIField(BinaryWriter writer, PSPCreatorFieldID field, string value) { writer.Write(PSPConstants.fieldIdentifier); writer.Write((ushort)field); byte[] bytes = Encoding.ASCII.GetBytes(value); writer.Write((uint)bytes.Length); writer.Write(bytes); }
public CreatorBlock(BufferedBinaryReader reader, uint blockLength) { long endOffset = reader.Position + blockLength; while (reader.Position < endOffset && reader.ReadUInt32() == PSPConstants.fieldIdentifier) { PSPCreatorFieldID field = (PSPCreatorFieldID)reader.ReadUInt16(); uint fieldLength = reader.ReadUInt32(); switch (field) { case PSPCreatorFieldID.Title: this.title = reader.ReadAsciiString((int)fieldLength).Trim(); break; case PSPCreatorFieldID.CreateDate: this.createDate = reader.ReadUInt32(); break; case PSPCreatorFieldID.ModifiedDate: this.modDate = reader.ReadUInt32(); break; case PSPCreatorFieldID.Artist: this.artist = reader.ReadAsciiString((int)fieldLength).Trim(); break; case PSPCreatorFieldID.Copyright: this.copyRight = reader.ReadAsciiString((int)fieldLength).Trim(); break; case PSPCreatorFieldID.Description: this.description = reader.ReadAsciiString((int)fieldLength).Trim(); break; #if DEBUG case PSPCreatorFieldID.ApplicationID: PSPCreatorAppID appID = (PSPCreatorAppID)reader.ReadUInt32(); break; case PSPCreatorFieldID.ApplicationVersion: uint appVersion = reader.ReadUInt32(); break; #endif default: reader.Position += fieldLength; break; } } }