git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        zipstream.h
 | 
						|
// Purpose:     wxZipInputStream for reading files from ZIP archive
 | 
						|
// Author:      Vaclav Slavik
 | 
						|
// Copyright:   (c) 1999 Vaclav Slavik
 | 
						|
// Licence:     wxWindows Licence
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
#ifndef __ZIPSTREAM_H__
 | 
						|
#define __ZIPSTREAM_H__
 | 
						|
 | 
						|
#ifdef __GNUG__
 | 
						|
#pragma interface "zipstrm.h"
 | 
						|
#endif
 | 
						|
 | 
						|
#include "wx/defs.h"
 | 
						|
 | 
						|
#if wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB 
 | 
						|
 | 
						|
#include "wx/stream.h"
 | 
						|
 | 
						|
//--------------------------------------------------------------------------------
 | 
						|
// wxZipInputStream
 | 
						|
//                  This class is input stream from ZIP archive. The archive
 | 
						|
//                  must be local file (accessible via FILE*)
 | 
						|
//--------------------------------------------------------------------------------
 | 
						|
 | 
						|
 | 
						|
class WXDLLEXPORT wxZipInputStream : public wxInputStream
 | 
						|
{
 | 
						|
public:
 | 
						|
    wxZipInputStream(const wxString& archive, const wxString& file);
 | 
						|
            // archive is name of .zip archive, file is name of file to be extracted.
 | 
						|
            // Remember that archive must be local file accesible via fopen, fread functions!
 | 
						|
    ~wxZipInputStream();
 | 
						|
 | 
						|
    virtual size_t GetSize() const {return m_Size;}
 | 
						|
    virtual bool Eof() const;
 | 
						|
 | 
						|
protected:
 | 
						|
    virtual size_t OnSysRead(void *buffer, size_t bufsize);
 | 
						|
    virtual off_t OnSysSeek(off_t seek, wxSeekMode mode);
 | 
						|
    virtual off_t OnSysTell() const {return m_Pos;}
 | 
						|
 | 
						|
private:
 | 
						|
    size_t m_Size;
 | 
						|
    off_t m_Pos;
 | 
						|
 | 
						|
    // this void* is handle of archive . I'm sorry it is void and not proper
 | 
						|
    // type but I don't want to make unzip.h header public.
 | 
						|
    void *m_Archive;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
#endif 
 | 
						|
   // wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB 
 | 
						|
 | 
						|
#endif 
 | 
						|
   // __ZIPSTREAM_H__
 |