image->SetMask(FALSE);
- return stream.IsOk();
+ return ( stream.LastError() == wxSTREAM_NO_ERROR || stream.LastError() == wxSTREAM_EOF );
}
bool wxBMPHandler::LoadDib(wxImage *image, wxInputStream& stream,
bool wxICOHandler::DoCanRead(wxInputStream& stream)
{
+ stream.SeekI(0);
unsigned char hdr[4];
if ( !stream.Read(hdr, WXSIZEOF(hdr)) )
return FALSE;
bool wxCURHandler::DoCanRead(wxInputStream& stream)
{
+ stream.SeekI(0);
unsigned char hdr[4];
if ( !stream.Read(hdr, WXSIZEOF(hdr)) )
return FALSE;
// we always have a data size
stream.Read(&datalen, 4);
datalen = wxINT32_SWAP_ON_BE(datalen) ;
+ //data should be padded to make even number of bytes
+ if (datalen % 2 == 1) datalen ++ ;
//now either data or a FCC
if ( (FCC1 == *riff32) || (FCC1 == *list32) )
{
wxInt32 *list32 = (wxInt32 *) listtxt;
wxInt32 *anih32 = (wxInt32 *) anihtxt;
+ stream.SeekI(0);
if ( !stream.Read(&FCC1, 4) )
return FALSE;
// we always have a data size:
stream.Read(&datalen, 4);
datalen = wxINT32_SWAP_ON_BE(datalen) ;
+ //data should be padded to make even number of bytes
+ if (datalen % 2 == 1) datalen ++ ;
// now either data or a FCC:
if ( (FCC1 == *riff32) || (FCC1 == *list32) )
{
// we always have a data size:
stream.Read(&datalen, 4);
datalen = wxINT32_SWAP_ON_BE(datalen) ;
+ //data should be padded to make even number of bytes
+ if (datalen % 2 == 1) datalen ++ ;
// now either data or a FCC:
if ( (FCC1 == *riff32) || (FCC1 == *list32) )
{