Recurity.Swf.BinaryReader2.PeekUInt16 C# (CSharp) Method

PeekUInt16() public method

public PeekUInt16 ( ) : UInt16
return System.UInt16
        public UInt16 PeekUInt16()
        {
            long position = this.BaseStream.Position;
            UInt16 r = this.ReadUInt16();
            this.BaseStream.Seek( position, SeekOrigin.Begin );
            return r;
        }

Usage Example

Exemplo n.º 1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public bool Parse( Stream input )
        {
            BinaryReader2 br = new BinaryReader2( input );
            bool parsingSuccess = true;

            UInt16 uselessButFiddelingWithBitsThanksAdobe = br.ReadUInt16();
            if ( 0 != uselessButFiddelingWithBitsThanksAdobe )
            {
                SwfFormatException sfe = new SwfFormatException( "Reserved 16Bit Field in CLIPACTION used" );
               Log.Error(this,  sfe );
                throw sfe;
            }

            _ClipEventFlags = new ClipEventFlags( this.Version );
            _ClipEventFlags.Parse( input );

            _ClipActionRecords = new List<ClipActionRecord>();
            //
            // The ClipActionEndFlag is Version dependent!
            //
            while ( 0 != ( this.Version <= 5 ? br.PeekUInt16() : br.PeekUInt32() ) )
            {
                ClipActionRecord record = new ClipActionRecord( this.Version );
                bool recordParsingResult = record.Parse( input );
                _ClipActionRecords.Add( record );
                parsingSuccess = recordParsingResult & parsingSuccess;
            }
            //
            // Get the EndRecord (Version dependent) and ignore
            //
            UInt32 endRecord = this.Version <= 5 ? br.ReadUInt16() : br.ReadUInt32();

            if ( 0 != endRecord )
            {
                SwfFormatException sfe = new SwfFormatException( "endRecord is not 0x00/0x0000" );
               Log.Error(this,  sfe );
                throw sfe;
            }

               //Log.Debug(this,  _ClipActionRecords.Count + " ClipActionRecords added" );

            return parsingSuccess;
        }