//  // // ##### #### # # -= Zipex Library =-  // //  ## # # ## ## Zipex.cpp - Main include header  // //  ## #### ###  // //  ## # ### Main header for zipex to be included by applications  // // ## # ## ## which use the library  // // ##### # # # R1 (C)2003-2004 Markus Ewald -> License.txt  // //  // #include "zipex/zipex.h" /** @mainpage Zipex documentation @section About About Zipex @subsection Intro Introduction Zipex is a small library for reading data from zip archives. It provides a number of unique features, whose abundance in other libraries also was the cause for writing it. First of all, the library is well designed and uses expressive names, making it very easy to understand and use. Its architecture also enables you to read the zip's directory only once and then access the contained files without scanning the whole zip archive again each time you do so. Another very important feature is the ability to stream files from the zip archive, combined with thread safety. Imagine you wanted to play back a zipped mp3 file. Of course you do not want to decompress the entire file before, but progressively read small blocks of data from it. Zipex does exactly what you want. You can still access other files in the zip archive, even from a different thread. What if the zip archive you'd like to open is not stored as a file on your harddisk ? Maybe it's even nested in another zip file ? Zipex can open zip archives from any source you provide. This is, of course, not done through memory blocks ("lumps"), but through derivation from Zipex' stream class, so that you don't have to load that 500 meg zip file completely into memory :) @subsection Features Features General - Clean and intuitive design - Freeware - Streaming of zipped files - Complete thread safety - Can open nested zip files without temporaries Unsupported: - All compression methods but deflate and store - Writing to zipped files @subsection Copy Copyright Zipex was written by Markus Ewald @ LunaticSystems. The author can be contacted via zipex@spam.lunaticsystems.de (remove the 'spam.') Zipex is freely distributable. You are free to use it in your own applications, freeware and commercial ones in any form, without the requirement of making the source to your application public or paying any royalties to me. See License.txt for further informations. @section Usage Usage @subsection Step1 Step 1: Integrating Zipex into your application The headers required to use zipex in another application are contained in the 'include' subdirectory of zipex. Inside this directory, you'll find other directory named 'zipex'. Do not add '<zipex_path>/include/zipex' to your include search paths, but add '<zipex_path>/include'. Link '<zipex_path>/lib/zipex/zipex.xyz' to your application, where '.xyz' is the appropriate extension of libraries in your compiler system. For MSVC users, this is usually '.lib'. My justification for this scheme: - Overlookable configuration: No more masses of include paths for per-project includes, only one general include folder per project. - Solves ambiguities: In your project, when you include headers from external libraries, you have to explicitely specify from which library folder to include. In consequence, you have to #include the zipex headers into your source files like this: @code #include "zipex/zipex.h" @endcode */ #if defined(ZIPEX_DLL) && defined(ZIPEX_WIN32) #define WIN32_LEAN_AND_MEAN #include // ############################################################################################# // // # DllMain() # // // ############################################################################################# // /** Dll main entry point @param hModule Dll instance module handle @param ul_reason_for_call Call reason message @param lpReserved Reserved */ BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } #endif // defined(ZIPEX_DLL) && defined(ZIPEX_WIN32)