The purpose of libmspack is to provide compressors and decompressors,archivers and dearchivers for Microsoft compression formats: CAB, CHM, WIM,LIT, HLP, KWAJ and SZDD. It is also designed to be easily embeddable,stable, robust and resource-efficient.

The library is not intended as a generalised "any archiver" interface.Users of the library must explicitly choose the format they intend to workwith.

All special features of the above formats will be covered as fully aspossible -- for example, CAB's multi-part cabinet sets, or CHM's fastlookup indices. All compression methods used by the formats will beimplemented as completely as possible.

However, other than what is required for access to these formats and theirfeatures, no other functionality is intended. There is no file metadatatranslation functionality. All file I/O is abstracted, although a defaultimplementation using the standard C library is provided.

There are a number of useful programs in the test/ directory whichexercise and demonstrate libmspack's features.

cabd_c10 - Tests the CAB decompressor on the C10 collection.cabd_compare - Compares the CAB decompressor with Microsoft's EXTRACT.EXEcabd_md5 - Prints the MD5 checksums of all files within a CAB file/set.cabd_memory - An mspack_system implementation that reads/writes to memory.cabd_test - Regression tests for libmspack's CAB decompression.cabrip - Extracts any CAB files embedded in another file.chmd_compare - Compares the CHM decompressor to Microsoft's HH.EXEchmd_find - Fast-finds a file within a CHM file.chmd_md5 - Prints the MD5 checksums of all files within a CHM file.chmd_order - Tests extracting files in a CHM file in four different ways.chminfo - Prints verbose information about CHM file structures.chmx - Extracts all files in a CHM file to disk.expand - Extracts an SZDD or KWAJ file.msdecompile_md5- Runs Microsoft's HH.EXE -DECOMPILE via WINE.msexpand_md5 - Runs Microsoft's EXTRACT.EXE via WINE.multifh - An mspack_system implementation that can simultaneously work on in-memory images, raw file descriptors, open file handles and regular disk files.