| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- _______________________________________________________________________________
- This is the Windows CE Info-ZIP port README, last updated 17 September 2003.
- _______________________________________________________________________________
- Copyright and Disclaimer
- _______________________________________________________________________________
- Copyright
- All the source files for Pocket UnZip are copyrighted by Info-ZIP.
- For details on terms and conditions look into the LICENSE file
- that should be part of the source distribution.
- The original author Steve P. Miller has gracefully allowed to
- put his own source contributions for "Pocket UnZip" under the
- Info-ZIP license.
- Disclaimer
- All project files are provided "as is" with no guarantee of
- their correctness. The authors are not liable for any outcome
- that is the result of using this source. The source for Pocket
- UnZip has been placed in the public domain to help provide an
- understanding of its implementation. You are hereby granted
- full permission to use this source in any way you wish, except
- to alter Pocket UnZip itself. For comments, suggestions, and
- bug reports, please write to stevemil@pobox.com or to the
- generic Info-ZIP e-mail address Zip-Bugs@lists.wku.edu.
- _______________________________________________________________________________
- About the Windows CE Port (known as "Pocket UnZip")
- _______________________________________________________________________________
- The Windows CE port, known as Pocket UnZip, is designed to run on Microsoft's
- Windows CE operating system. The port is completely contained in the files
- listed above. There were very few minor modifications made to the Info-ZIP
- code in order for this port to work. This was possible because the Info-ZIP
- code is fairly generic and also because several hooks have already been placed
- in the code from past Windows ports. The Windows CE port leverages off of
- these efforts for two reasons. Mainly, I wanted to avoid modifying the
- Info-ZIP core code since people don't like it when your changes break other
- ports. Second, this makes the Windows CE port easy to upgrade when fixes and
- features are released by the Info-ZIP group.
- The port is made up of the project file (punzip.dsp), one global header
- (punzip.h), three main source modules (winmain.cpp/h, intrface.cpp/h,
- and wince.cpp/h), the resource script files (punzip.rc, punzip.rcv, and
- resource.h), several resources (punzip.ic2, zipfile.ic2, imglist.2bp,
- ilmask.bmp, toolbar.2bp, punzip.ico, zipfile.ico, imglist.bmp, and
- toolbar.bmp), and the help file (punzip.htp).
- The application's entry point is WinMain(), which is located in winmain.cpp
- (what a surprise). winmain.cpp basically contains all the Windows code and
- the user interface. It knows nothing about the Info-ZIP code or things like
- the Globals struct. That stuff is the job of the intrface module.
- intrface.cpp implements an easy (or at least easier) to understand interface
- to the Info-ZIP routines. It also handles all the callbacks from Info-ZIP
- and relays the appropriate information back to the code in winmain.cpp.
- The final module is wince.cpp. This module implements all the Win32 APIs
- and C runtime functions that are called by the rest of the code, but are
- not natively implemented on Windows CE. Most all of this module is excluded
- for NT native builds.
- Two preprocessor defines are used in conjunction with several defines from
- the Info-ZIP code and from other ports. The two that are specific to the
- Windows CE port are:
- POCKET_UNZIP Always set for the Windows CE port (CE and NT).
- _WIN32_WCE Set for Windows CE native; not set for Windows NT native.
- These three defines are the minimum defines that must be addressed by the
- project file in order to build this port. This port's main header, punzip.h,
- gets included by all the Info-ZIP source files when POCKET_UNZIP is defined.
- punzip.h in turn ensures that all the other relevant Info-ZIP defines are set
- to correctly build the port. If you wish to alter the Info-ZIP defines used
- to build this port, you can do so by altering punzip.h.
- There are quite a few _WIN32_WCE checks throughout the source files for this
- port. These checks allow the application to build natively for Windows NT for
- debugging purposes, and just because it can with little effort due to the
- similarities between the Windows CE API and the Windows NT API. Any non-Windows
- CE code is assumed to be for Windows NT only. This project currently will not
- work on Windows 95 because Windows CE is mostly UNICODE, and this port assumes
- that all Win32 calls to the operating system take UNICODE parameters. I could
- scatter a few dozen "#ifdef UNICODE" checks around and make it work on Windows
- 95, but I see no reason to complicate this port's code for that reason since
- there is already a Windows 95 port of the Info-ZIP code.
- _______________________________________________________________________________
- Building the Windows CE Port (known as "Pocket UnZip")
- _______________________________________________________________________________
- At the time this README was written, Microsoft just released Visual C++ for
- Windows CE version 1.0. This development kit uses the the standard Microsoft
- Visual C++ version 5.0 or 6.0 development environment and project files
- (DSP files). To build Windows CE binaries of Pocket UnZip, you will need
- version 1.0 or later of Visual C++ for Windows CE.
- This port's project file, punzip.dsp, contains the information for building all
- the various binaries. These include Windows NT native, Windows CE native for
- Hitachi SH-3 processors, and Windows CE native for MIPS processors. All
- projects have Debug and Retail flavors as well. The following table lists the
- Windows CE devices and which binary they run:
- Manufacturer CPU Binary
- --------------------- ------------ ------
- Philips Electronics MIPS R3910 MIPS
- NEC Corp. NEC VR4101 MIPS
- Casio Computer Co. Hitachi SH-3 SH-3
- Compaq Computer Corp. Hitachi SH-3 SH-3
- Hewlett-Packard Co. Hitachi SH-3 SH-3
- Hitachi Ltd. Hitachi SH-3 SH-3
- LG Electronics Inc. Hitachi SH-3 SH-3
- The revision of this port made for UnZip 5.51 does now also provide a project
- file for use with Microsoft's free "Visual C++ embedded 3.0" development system
- for Windows CE.
- Pocket UnZip should build out of the box. If you have just unzipped the
- Info-ZIP's UnZip sources, you should have a root directory with the core
- Info-ZIP files in it and several subdirectories under it for the various
- ports, one of which is the WinCE directory. The project files punzip.dsp
- are located in the subdirectory vc5 resp. vc6 below the wince directory.
- Open the punzip.dsp file from the subdirectory matching your Visual C++
- base version. The project file uses all the files in the WinCE
- subdirectory as well as the following files in the Info-ZIP root:
- api.c crypt.h globals.c process.c unzip.h
- consts.h ebcdic.h globals.h ttyio.c unzpriv.h
- crc32.c explode.c inflate.c ttyio.h unzvers.h
- crc32.h extract.c inflate.h unreduce.c zip.h
- crypt.c fileio.c list.c unshrink.c
- _______________________________________________________________________________
- Contacting the Authors
- _______________________________________________________________________________
- The Info-ZIP group is made up of dozens of people, past and present, who
- have devoted countless hours to providing the public with free and portable
- compression software. The author of the Windows CE port, Pocket UnZip, is
- Steve P. Miller.
- If you have questions, comments, suggestions, or bug reports concerning Pocket
- UnZip itself, you can write Steve Miller at:
- stevemil@pobox.com
- If you find a bug that appears to be more Info-ZIP related (i.e. the actual
- decompression part of Pocket UnZip), you can send mail to:
- Zip-Bugs@lists.wku.edu
- For all other general discussion type questions or comments, you can send mail
- to (as well as join) the following mailing list:
- Info-Zip@lists.wku.edu
- See the main UnZip README file for info on how to join the latter list.
- _______________________________________________________________________________
- Beginning with UnZip 5.51, the source distribution contains a second port for
- WinCE, providing a "command line UnZip tool" for batch processing on Windows CE
- systems.
- This port was contributed in September 2002 by:
- Simon Roberts
- IBM Global Services, EMEA
- Phone: (INT 44- 2392 )(UK 02392 ) 563937: Tie-line(UK): 25-3937
- Notes: Simon Roberts/UK/IBM@IBMGB
- Internet: Simon_Roberts@uk.ibm.com
- The tight integration of this contribution into the main UnZip distribution
- code required some reorganization and was carried out by the UnZip maintenance
- coordinator Christian Spieler.
- The build of the Win CE command line program requires compiling
- and linking together the following source modules:
- wince/wcemain.c main entry point
- unzip.c unzip command line interface
- crc32.c CRC-32 calculation
- crypt.c decryption support
- extract.c general archive extraction handling
- fileio.c internal I/O helper routines
- globals.c global communication resources setup
- list.c archive listing
- match.c wildcard pattern matching
- process.c general archives processing code
- ttyio.c interactive console I/O
- explode.c decompression for "Imploded" data (LZ77)
- inflate.c decompression for "Deflate" methods
- unreduce.c decompression for "Reduced" data
- unshrink.c decompression for "Shrunk" data (LZW)
- wince/intrface.cpp WinCE specific UnZip code
- wince/wince.cpp WinCE specific C RTL lib replacements
- These source modules depend on the following header files:
- zip.h wrapper for unzip.h used by some modules
- unzip.h main UnZip project header
- unzpriv.h extended defines for project internals
- globals.h global resource structures
- wince/wcecfg.h Windows CE specific configuration
- wince/wince.h WinCE C(++) library roundups
- consts.h global constant data
- crc32.h CRC-32 calculation interface
- crypt.h decryption interface
- ebcdic.h ASCII <--> EBCDIC translation
- ttyio.h console I/O interface
- unzvers.h version/release information
- wince/intrface.h public entities in wince/intrface.cpp
|