1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxZipInputStream for reading files from ZIP archive
4 // Author: Vaclav Slavik
5 // Copyright: (c) 1999 Vaclav Slavik
6 // Licence: wxWindows licence
7 /////////////////////////////////////////////////////////////////////////////
9 #ifndef __ZIPSTREAM_H__
10 #define __ZIPSTREAM_H__
12 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
13 #pragma interface "zipstrm.h"
18 #if wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB
20 #include "wx/stream.h"
22 //--------------------------------------------------------------------------------
24 // This class is input stream from ZIP archive. The archive
25 // must be local file (accessible via FILE*)
26 //--------------------------------------------------------------------------------
29 class WXDLLIMPEXP_BASE wxZipInputStream
: public wxInputStream
32 wxZipInputStream(const wxString
& archive
, const wxString
& file
);
33 // archive is name of .zip archive, file is name of file to be extracted.
34 // Remember that archive must be local file accesible via fopen, fread functions!
37 virtual size_t GetSize() const {return m_Size
;}
38 virtual bool Eof() const;
41 virtual size_t OnSysRead(void *buffer
, size_t bufsize
);
42 virtual off_t
OnSysSeek(off_t seek
, wxSeekMode mode
);
43 virtual off_t
OnSysTell() const {return m_Pos
;}
49 // this void* is handle of archive . I'm sorry it is void and not proper
50 // type but I don't want to make unzip.h header public.
53 DECLARE_NO_COPY_CLASS(wxZipInputStream
)
58 // wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB