// ANI reading and decoding
//---------------------------------------------------------------------------
-bool wxANIDecoder::CanRead(wxInputStream& stream) const
+bool wxANIDecoder::DoCanRead(wxInputStream& stream) const
{
wxInt32 FCC1, FCC2;
- wxUint32 datalen ;
+ wxUint32 datalen;
wxInt32 riff32;
memcpy( &riff32, "RIFF", 4 );
wxInt32 anih32;
memcpy( &anih32, "anih", 4 );
- if ( stream.SeekI(0) == wxInvalidOffset )
+ if ( stream.IsSeekable() && stream.SeekI(0) == wxInvalidOffset )
+ {
return false;
+ }
+
if ( !stream.Read(&FCC1, 4) )
return false;
wxInt32 seq32;
memcpy( &seq32, "seq ", 4 );
- if ( stream.SeekI(0) == wxInvalidOffset)
+ if ( stream.IsSeekable() && stream.SeekI(0) == wxInvalidOffset )
+ {
return false;
+ }
+
if ( !stream.Read(&FCC1, 4) )
return false;
if ( FCC1 != riff32 )