punzip.h
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:6k
源码类别:

压缩解压

开发平台:

MultiPlatform

  1. //******************************************************************************
  2. //
  3. // File:        PUNZIP.H
  4. //
  5. // Description: This is our global header for the entire Pocket UnZip project.
  6. //              This header contains all global project build flags, defines,
  7. //              constants, and macros.  It also includes all other headers that
  8. //              are needed by the project.
  9. //
  10. // Copyright:   All the source files for Pocket UnZip, except for components
  11. //              written by the Info-ZIP group, are copyrighted 1997 by Steve P.
  12. //              Miller.  The product "Pocket UnZip" itself is property of the
  13. //              author and cannot be altered in any way without written consent
  14. //              from Steve P. Miller.
  15. //
  16. // Disclaimer:  All project files are provided "as is" with no guarantee of
  17. //              their correctness.  The authors are not liable for any outcome
  18. //              that is the result of using this source.  The source for Pocket
  19. //              UnZip has been placed in the public domain to help provide an
  20. //              understanding of its implementation.  You are hereby granted
  21. //              full permission to use this source in any way you wish, except
  22. //              to alter Pocket UnZip itself.  For comments, suggestions, and
  23. //              bug reports, please write to stevemil@pobox.com.
  24. //
  25. //
  26. // Date      Name          History
  27. // --------  ------------  -----------------------------------------------------
  28. // 02/01/97  Steve Miller  Created (Version 1.0 using Info-ZIP UnZip 5.30)
  29. //
  30. //******************************************************************************
  31. #ifndef __PUNZIP_H__
  32. #define __PUNZIP_H__
  33. #ifdef __cplusplus
  34. extern "C" {
  35. #endif
  36. //******************************************************************************
  37. //***** Standard Win32 project flags
  38. //******************************************************************************
  39. #ifndef WIN32
  40. #define WIN32
  41. #endif
  42. #ifndef _WINDOWS
  43. #define _WINDOWS
  44. #endif
  45. #ifndef UNICODE
  46. #define UNICODE
  47. #endif
  48. #ifndef _UNICODE
  49. #define _UNICODE
  50. #endif
  51. #ifndef WIN32_LEAN_AND_MEAN
  52. #define WIN32_LEAN_AND_MEAN
  53. #endif
  54. #ifndef STRICT
  55. #define STRICT
  56. #endif
  57. #if defined(_DEBUG) && !defined(DEBUG)
  58. #define DEBUG
  59. #endif
  60. #if defined(DEBUG) && !defined(_DEBUG)
  61. #define _DEBUG
  62. #endif
  63. #if defined(_NDEBUG) && !defined(NDEBUG)
  64. #define NDEBUG
  65. #endif
  66. #if defined(NDEBUG) && !defined(_NDEBUG)
  67. #define _NDEBUG
  68. #endif
  69. //******************************************************************************
  70. //***** Pocket Unzip and Info-ZIP flags
  71. //******************************************************************************
  72. #ifndef POCKET_UNZIP
  73. #define POCKET_UNZIP
  74. #endif
  75. #ifndef UNZIP_INTERNAL
  76. #define UNZIP_INTERNAL
  77. #endif
  78. #ifndef WINDLL
  79. #define WINDLL
  80. #endif
  81. #ifndef DLL
  82. #define DLL
  83. #endif
  84. #ifndef REENTRANT
  85. #define REENTRANT
  86. #endif
  87. #ifndef USE_EF_UT_TIME
  88. #define USE_EF_UT_TIME
  89. #endif
  90. #ifndef NO_ZIPINFO
  91. #define NO_ZIPINFO
  92. #endif
  93. #ifndef NO_STDDEF_H
  94. #define NO_STDDEF_H
  95. #endif
  96. #ifndef NO_NTSD_EAS
  97. #define NO_NTSD_EAS
  98. #endif
  99. #ifdef NTSD_EAS
  100. #undef NTSD_EAS
  101. #endif
  102. // Read COPYING document before enabling this define.
  103. #if 0
  104. #ifndef USE_SMITH_CODE
  105. #define USE_SMITH_CODE
  106. #endif
  107. #endif
  108. // Read COPYING document before enabling this define.
  109. #if 0
  110. #ifndef USE_UNSHRINK
  111. #define USE_UNSHRINK
  112. #endif
  113. #endif
  114. //******************************************************************************
  115. //***** Global defines, constants, and macros
  116. //******************************************************************************
  117. #ifndef PATH_MAX
  118. #define PATH_MAX _MAX_PATH
  119. #endif
  120. // WinCE uses ISO 8859-1 as codepage for 8-bit chars
  121. #define CRTL_CP_IS_ISO
  122. // The functionality of ISO <--> OEM conversion IS needed on WinCE, too!!
  123. // (Otherwise, extended ASCII filenames and passwords in archives coming
  124. // from other platforms may not be handled properly.)
  125. // Since WinCE does not supply ISO <--> OEM conversion, we try to fall
  126. // back to the hardcoded tables in the generic UnZip code.
  127. #define ASCII2OEM(c) (((c) & 0x80) ? iso2oem[(c) & 0x7f] : (c))
  128. #if !defined(CRYP_USES_ISO2OEM)
  129. #  define CRYP_USES_ISO2OEM
  130. #endif
  131. #define INTERN_TO_ISO(src, dst)  {if ((src) != (dst)) strcpy((dst), (src));}
  132. #define INTERN_TO_OEM(src, dst)  {register uch c;
  133.     register uch *dstp = (uch *)(dst), *srcp = (uch *)(src);
  134.     do {
  135.         c = (uch)foreign(*srcp++);
  136.         *dstp++ = (uch)ASCII2OEM(c);
  137.     } while (c != '');}
  138. #if (defined(_MSC_VER) && !defined(MSC))
  139. #define MSC
  140. #endif
  141. #ifdef MSC
  142. #define DIR_END   '\' // ZipInfo with VC++ 4.0 requires this
  143. #endif
  144. // We are defining a few new error types for our code.
  145. #define PK_EXCEPTION  500
  146. #define PK_ABORTED    501
  147. #ifndef DATE_FORMAT
  148. #define DATE_FORMAT   DF_MDY
  149. #endif
  150. #define lenEOL        2
  151. #define PutNativeEOL  {*q++ = native(CR); *q++ = native(LF);}
  152. #define countof(a) (sizeof(a)/sizeof(*(a)))
  153. // The max number of retires (not including the first attempt) for entering
  154. // a password for and encrypted file before giving up on that file.
  155. #define MAX_PASSWORD_RETRIES 2
  156. // Variables that we want to add to our Globals struct.
  157. #define SYSTEM_SPECIFIC_GLOBALS  
  158.    char  matchname[FILNAMSIZ];   
  159.    int   notfirstcall;           
  160.    char *zipfnPtr;               
  161.    char *wildzipfnPtr;
  162. //******************************************************************************
  163. //***** Global headers
  164. //******************************************************************************
  165. #include <windows.h>
  166. #include <setjmp.h>
  167. #include <stdlib.h>
  168. #include <excpt.h>
  169. #include "wincewince.h"     // Our WinCE specific code and our debug function.
  170. #include "winceresource.h"  // Our resource constants
  171. #include "wincepunzip.rcv"  // Our version information.
  172. #ifdef __cplusplus
  173. } // extern "C"
  174. #endif
  175. #endif // __PUNZIP_H__