Beispiel #1
0
 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);
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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;
                }
            }
        }