Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

SZPZIP.H

&pagelevel(3)&pagelevel

#ifndef __SzpZip_h__
#define __SzpZip_h__
/*******************************************************************
 * BEGIN-INTERFACE  SZPZIP.H
 *
 *  TITLE   (/ zip program interface  /)
 *  Classes        CSzpZip
 *  NAME           szpzip.h
 *  DOMAIN         BS2ZIP
 *  LANGUAGE       CXX
 *
 *  Copyright (C) 2021 Fujitsu Technology Solutions GmbH
 *                     All rights reserved
 *
 *  COMPILATION-SCOPE RESTRICTED
 *  INTERFACE-TYPE    CALL
 *  RUN-CONTEXT       TU
 *
 *  VERSION        140
 *  Author         (/ V.Malets,I.Liatkouski IBA-BS2-CORE /)
 *  Date           2022-08-31
 *  Update         (/ BS2ZIP 21.0A20
 *                 #CORR PM#=A0616124
 *                 Added new operand *PATH-NAME
 *                 for ADD-FILE statement.
 *                 List of changes: 
 *                 - BS2UTIL:
 *                 Exchanging blanks in constructor with
 *                 non-blank character '59'X and vice
 *                 versa to avoid truncation depending on
 *                 blank location in CMDWCOI macro.
 *                 - SZPADDP:
 *                 New pathname property related to a new
 *                 *PATH-NAME operand
 *                 - SZPZIP:
 *                 Boolean pathname-field added to check
 *                 if '*PATH-NAME' parameter was specified
 *                 in ADD-FILE statement. If it is, then
 *                 check out if wildcard syntax not used
 *                 and further processing of to-file
 *                 operand as a new filename. New messages
 *                 SZP0124-SZP0127
 *                 - SZPSTMT:
 *                 Flag setting depending on *PATH-NAME
 *                 parameter usage.
 *                 - ZIPARCH:
 *                 FindFile method method now accepts
 *                 *PATH-NAME operand
 *                 /)
 *
 * END-INTERFACE
 ************************************************************************/
/*
 *  VERSION        139
 *  CRDATE         2021-08-19
 *  AUTHOR         (/ NDC BS2 /)
 *  UPDATE         (/ BS2ZIP 21.0
 *                 Character conversion using
 *                 *select operand
 *                 /)
 *  VERSION        135
 *  Date           2018-07-03
 *  Author         (/ NDC BS2 /)
 *  Update         (/ BS2ZIP v1.2K
 *                 Correction of PM # A0612521
 *                 Fixed the issue of visibility deleted files
 *                 via 7-zip in windows-compatible archive /)
 *
 *  VERSION        134
 *  Date           2018-02-23
 *  Author         C. Kasap
 *  Update         BS2ZIP v1.2J
 *                 Correction of PM # A0611565
 *                 Fixed the issue where adding files to the zip container
 
 *                 failed due to trace file being included
 *
 *  VERSION        133
 *  CRDATE         2014-04-08
 *  AUTHOR         (/ J. Beaume, OSL41 /)
 *  UPDATE         (/ BS2ZIP v1.2G10 /)
 *
 *  VERSION        132
 *  Date           2013-02-01
 *  Author         P. Louis - OSL EPS
 *  Update         BS2ZIP v1.2E05
 *
 *  VERSION        130
 *  Date           2011-05-18
 *  Author         J. Beaume - OSL EPS
 *  Update         BS2ZIP v1.2D05
 *
 *  VERSION        129
 *  Date           2009-09-30
 *  Author         P. Louis - OSL EPS
 *  Update         BS2ZIP v1.2C05
 *
 *  VERSION        128
 *  Date           2008-11-27
 *  Author         P. Louis - OSL EPS
 *  Update         BS2ZIP v1.2B05
 *                 Introduction CpuExhauster (A0571814)
 *
 *  VERSION        126
 *  Date           2008-10-14
 *  Author         Ph/Dumont- OSL EPS
 *  Update         BS2ZIP v1.2A25
 *                 Introduction CpuExhauster (A0570787)
 *
 *  VERSION        121
 *  Date           2008-04-18
 *  Author         P.Louis  - OSL EPS
 *  Update         BS2ZIP v1.2A10
 *
 *  VERSION        118
 *  Date           2007-12-01
 *  Author         P.Louis  - OSL EPS
 *  Update         BS2ZIP v1.2A
 *
 *  VERSION        116
 *  Date           2006-12-01
 *  Author         Ph.Dumont  - OSL EPS
 *  Update         BS2ZIP v1.1C

 *
 *  VERSION        115
 *  Date           2005-06-23
 *  Author         L. Tambour - OSL EPS
 *  Update         BS2ZIP v1.1B
 *
 *  VERSION        110
 *  Date           2004-09-30
 *  Author         L. Tambour - OSL EPS
 *  Update         BS2ZIP v1.1A
 *
 *  VERSION        100
 *  Date           2003-06-02
 *  Author         J. Beaume - OSL EPS
 *  Update         BS2ZIP v1.0B
 *******************************************************************/
#include "szpzout.h"
// SzpZip return codes:
#define CSZPZIP_MULT_FILE_REJECTION   127    //140
#define CSZPZIP_LEAD_SLASH_REJECTION  126    //140
#define CSZPZIP_DRIVE_REJECTION       125    //140
#define CSZPZIP_BACKSLASH_REJECTION   124    //140
#define CSZPZIP_LIB_EXCEPT_ERROR      114    //133
#define CSZPZIP_FILE_EXCEPT_ERROR     113    //133
#define CSZPZIP_LIB_SELECTION_ERROR   112    //133
#define CSZPZIP_FILE_SELECTION_ERROR  111    //133
#define CSZPZIP_DELETE_ORILIBEL_ERROR 110
#define CSZPZIP_DELETE_ORIGFILE_DMS   109
#define CSZPZIP_DELETE_ORIGFILE_ERROR 108
#define CSZPZIP_LMS_ERROR             101
#define CSZPZIP_PARAMETER_ERROR       100
#define CSZPZIP_INCOHERENT_FORMAT      99
#define CSZPZIP_OPEN_ERROR             98
#define CSZPZIP_CONTAINER_EXISTS       97
#define CSZPZIP_NO_CONTAINER_EXISTS    96
#define CSZPZIP_LINKNAME               95
#define CSZPZIP_NO_FILE                94
#define CSZPZIP_FILE_EXISTS            93
#define CSZPZIP_NO_FILE_EXISTS         92
#define CSZPZIP_INTERNAL_ERROR         91
#define CSZPZIP_RSV1                   90
#define CSZPZIP_EXTRACT_ERROR          89
#define CSZPZIP_CATALOG                88
#define CSZPZIP_NO_CONTAINER_OPENED    86
#define CSZPZIP_READMODE               85
#define CSZPZIP_ALREADY_ZIPPED         84
#define CSZPZIP_ALREADY_ZIPPED_WLDC    83
#define CSZPZIP_ADD_ERROR              82
#define CSZPZIP_ILLEGAL_NEW_NAME       81
#define CSZPZIP_ILLEGAL_LINK           80
#define CSZPZIP_INVALID_RENAMING       79
#define CSZPZIP_IMPOSSIBLE_RENAMING    39
#define CSZPZIP_REORG_ERROR            78
#define CSZPZIP_DELETE_ERROR           77
#define CSZPZIP_INCON_FORMAT_ERROR     76
#define CSZPZIP_OUCON_DMS_ERROR        75
#define CSZPZIP_INCON_DMS_ERROR        74
#define CSZPZIP_OUCON_EXIST_ERROR      73
#define CSZPZIP_OUCON_NOEXIST_ERROR    72
#define CSZPZIP_INCON_NOEXIST_ERROR    71
#define CSZPZIP_OUCON_LINK_ERROR       70
#define CSZPZIP_INCON_LINK_ERROR       69
#define CSZPZIP_OUCON_FLINK_ERROR      68
#define CSZPZIP_INCON_FLINK_ERROR      67
#define CSZPZIP_INCON_OPEN_ERROR       66
#define CSZPZIP_PSWORDCHECK_ERROR      42
#define CSZPZIP_PSWORDNOTCOR_ERROR     41
#define CSZPZIP_PSWORDNOTGIV_ERROR     40
#define CSZPZIP_DATATYPE_BS2000        37
#define CSZPZIP_DMS_ERROR              31
#define CSZPZIP_INT_ERROR              19
#define CSZPZIP_STD_NAME                2
#define CSZPZIP_SHORT_STD_NAME          1
// Message id
#define MSG_K2                  "SZP0207"
#define MSG_MULT_FILE_REJECTION "SZP0127"  //140
#define MSG_SLASH_REJECTION     "SZP0126"  //140
#define MSG_DRIVE_REJECTION     "SZP0125"  //140
#define MSG_BACKSLASH_REJECTION "SZP0124"  //140
#define MSG_LIB_EXCEPT_ERROR    "SZP0114"  //133
#define MSG_FILE_EXCEPT_ERROR   "SZP0113" //133
#define MSG_LIB_SELECTION_ERROR "SZP0112"  //133
#define MSG_FILE_SELECTION_ERROR "SZP0111" //133
#define MSG_DELETE_ORILEL_FILE  "SZP0110"  //133
#define MSG_DELETE_ORIDMS_FILE  "SZP0109"
#define MSG_DELETE_ORIGIN_FILE  "SZP0108"
#define MSG_LMS_ERROR           "SZP0101"
#define MSG_PARAMETER_ERROR     "SZP0100"
#define MSG_INCOHERENT_FORMAT   "SZP0099"
#define MSG_OPEN_ERROR          "SZP0098"
#define MSG_CONTAINER_EXISTS    "SZP0097"
#define MSG_NO_CONTAINER_EXISTS "SZP0096"
#define MSG_LINKNAME            "SZP0095"
#define MSG_NO_FILE             "SZP0094"
#define MSG_FILE_EXISTS         "SZP0093"
#define MSG_NO_FILE_EXISTS      "SZP0092"
 
 #define MSG_INTERNAL_ERROR      "SZP0091"
#define MSG_WARNING1            "SZP0090"
#define MSG_EXTRACT_ERROR       "SZP0089"
#define MSG_CATALOG             "SZP0088"
#define MSG_NO_CONTAINER_OPENED "SZP0086"
#define MSG_READMODE            "SZP0085"
#define MSG_ALREADY_ZIPPED      "SZP0084"
#define MSG_ALREADY_ZIPPED_WLDC "SZP0083"
#define MSG_ADD_ERROR           "SZP0082"
#define MSG_ILLEGAL_NEW_NAME    "SZP0081"
#define MSG_ILLEGAL_LINK        "SZP0080"
#define MSG_INVALID_RENAMING    "SZP0079"
#define MSG_IMPOSSIBLE_RENAMING "SZP0039"
#define MSG_REORG_ERROR         "SZP0078"
#define MSG_DELETE_ERROR        "SZP0077"
#define MSG_INCON_FORMAT_ERROR  "SZP0076"
#define MSG_OUCON_DMS_ERROR     "SZP0075"
#define MSG_INCON_DMS_ERROR     "SZP0074"
#define MSG_OUCON_EXIST_ERROR   "SZP0073"
#define MSG_OUCON_NOEXIST_ERROR "SZP0072"
#define MSG_INCON_NOEXIST_ERROR "SZP0071"
#define MSG_OUCON_LINK_ERROR    "SZP0070"
#define MSG_INCON_LINK_ERROR    "SZP0069"
#define MSG_OUCON_FLINK_ERROR   "SZP0068"
#define MSG_INCON_FLINK_ERROR   "SZP0067"
#define MSG_INCON_OPEN_ERROR    "SZP0066"
#define MSG_PSWORDCHECK_ERROR   "SZP0042"
#define MSG_PSWORDNOTCOR_ERROR  "SZP0041"
#define MSG_PSWORDNOTGIV_ERROR  "SZP0040"
#define MSG_DATATYPE_BS2000     "SZP0037"
#define MSG_DMS_ERROR           "SZP0031"
#define MSG_INT_ERROR           "SZP0019"
/**
This class is the C++ api for managing a BS2ZIP container file.
This class is able to handle the K2 but not to intercept it.
**/
class CSzpZip {
public:
   /**
   **/
   CSzpZip();
   /**
   **/
   CSzpZip(bool bOutputMsg);
   /**
   **/
   virtual ~CSzpZip();
   enum szpOpenMode {
 
      read,
      updateAny,
      updateNew
   };
   enum szpFormat {
      defaut,
      compatible,
      bs2000
   };
   enum szpConvertMode {
      std,
      none,
      ascii,
      ebcdic,
      byParameters
   };
   enum szpWriteMode {
      create,
      replace,
      any
   };
   enum szpLink {
      no,
      yes
   };
   enum szpDataType {
      notSpecified,
      character,
      binary,
      sambinary
   };
   enum szpBlkCtrlInfo {
      keep,
      ignore
   };
   enum szpLevel {
      noCompression = 0,
      bestSpeed = 1,
      bestCompression = 9,
      defaultCompression = -1
   };
   enum szpInfo  {
      infoNone,
      infoAll,
      infoSummary
   };
// 132
   enum szpDelete { 
      DeleteOption_No,
      DeleteOption_Yes
   };
   enum szpTofileOption {
       TofileOptionVersStd_TypeStd = 0,
       TofileOptionVersStd_TypeYes = 1,
       TofileOptionVersStd_TypeNo = 2,
       TofileOptionVersYes_TypeStd = 10,
       TofileOptionVersYes_TypeYes = 11,
       TofileOptionVersYes_TypeNo = 12,
       TofileOptionVersNo_TypeStd = 20,
       TofileOptionVersNo_TypeYes = 21,
       TofileOptionVersNo_TypeNo = 22
   };
   /**
   Open a zip container.
   It returns 0 if ok.
   char *pContainer = name of the zip container file
   this file name must be valid
   if "link=linkname", the container is opened
   using this link name
   int iOpenMode    = read, update, create
   int iFormat      = bs2000 or compatible
   **/
   int OpenZip(char *pContainer, int iOpenMode, int iFormat);
   /**
   Close the zip container and release eventually file link.
   It returns 0 if ok.
   **/
   int CloseZip();
   /**
   Add files in the zip container.  The filename may contain wildcards.
   By this way several files can be zipped in a single operation.  Eventual
   data conversion is required as well as the compression level.
   Files are compressed one by one.  If an error occurred, the data already
   written in the container remain in it but the entry is not visible.  If
   several files have to be written, the processing goes on even in case of
   error on a previous file.  The same behavior is implemented if K2 is handled
   during the processing of a file but if there are still files to be included,
   those ones are not processed.
   To keep the container coherent, the central header is rewritten after each
   added files and then reread to rebuild the structure in memory.
   It returns 0 if ok.
   V01.0B: introduction of the parameter data-type
   This operand is only significant for adding sam files in compatible format,
   otherwise, it is ignored. In char mode, each record of a sam file is
   interpreted as a line.  In binary mode, data are interpreted as a simple
   byte stream.  Such a file is extracted as a pam std 16. 
   char *pFileNames = file name (incl. wild cards ev.)
   int iConvertMode = convert mode
   int iLevel       = compression level
   int iDataType    = data type (not specified, character, binary)
   char *pToFiles   = target construction file name
   int iDeleteOption = source file delete option                         132
   **/
   int AddFiles(char *pFileNames, int iConvertMode, int iLevel, int iDataType, char *pToFiles, int iDeleteOption);
   /**
   Add files in the zip container.  Old format for program compatibility.
   **/
   int AddFiles(char *pFileNames, int iConvertMode, int iLevel, int iDataType, char *pToFiles);
   /**
   Add PLAM elements in the zip container.  The element names, version, base and type
   may contain wildcards.  Library name may not.
   By this way several elements can be zipped in a single operation.  Eventual
   data conversion is required as well as the compression level.
   Elements are compressed one by one.  If an error occurred, the data already
   written in the container remain in it but the entry is not visible.  If
   several elements have to be written, the processing goes on even in case of
   error on a previous file.  The same behavior is implemented if K2 is handled
   during the processing of a file but if there are still files to be included,
   those ones are not processed.
   To keep the container coherent, the central header is rewritten after each
   added elements and then reread to rebuild the structure in memory.
   It returns 0 if ok.
   V01.0B: introduction of the parameter data-type
   This operand is only significant for adding sam files in compatible format,
   otherwise, it is ignored. In char mode, each record of a sam file is
   interpreted as a line.  In binary mode, data are interpreted as a simple
   byte stream.  Such a file is extracted as a pam std 16.
   char *pLibName = library name (excl. wild cards)
   char *pElements = element name selector (incl. wild cards ev.)
   char *pVersion = element version selector (incl. wild cards ev.)
   char *pType = element type selector (incl. wild cards ev.)
   char *pBase = version base selector
   int iConvertMode = convert mode
   int iLevel       = compression level
   int iDataType    = data type (not specified, character, binary)
   char *pToFiles   = target construction file name
   int iTofileOption = specifies if libr element version and/or type are saved in the name
   int iDeleteOption = library element delete option                     132
   **/
   int AddLibElements(char *pLibName, char *pElements, char *pVersion,
          char *pType,char *pBase, int iConvertMode, int iLevel, int iDataType,
          char *pToFiles, int iTofileOption, int iDeleteOption);
   /**
   Add PLAM elements in the zip container.  Old format for program compatibility. 
  **/
   int AddLibElements(char *pLibName, char *pElements, char *pVersion,
          char *pType,char *pBase, int iConvertMode, int iLevel, int iDataType,
          char *pToFiles, int iTofileOption);
   /**
   Extract one or several files selected by the pFileNames patterns into
   BS2000 files named according the rule specified by the pToFiles pattern.
   If an error occurred during the extract of a file, the extract of this
   file is interrupted but the other files are processed.
   If K2 is handled, the current file process is stopped, the output file
   is deleted and the other extract files are not processed if any.
   char *pFileNames = file pattern used to select the files that must
   be extracted from the container
   char *pToFiles   = pattern specifying the output name of the extracted files
   int iWriteMode   = new (default) or replace
   int iDataType    = data type of the file (not specified (default), char or
   binary)
   int iConvertMode = convert mode (std (default), none, ascii or ebcdic)
   int iBlkCtrlInfo = specifies if the original block control must be used
   or not
   **/
   int ExtractFiles(char *pFileNames, char *pToFiles,
   int iWriteMode = 0, int iDataType = 0, int iConvertMode = 0,
   int iBlkCtrlInfo = 0, bool pname = false);
   /**
   Returns the information about the zipped files selected by the pFileNames
   pattern that may contain wild cards.  Information summary or full is possible.
   The layout of the output is described in the header file szpzout.h.
   Data are returned in a buffer requested by this method.  Its address and size
   are returned to the caller who is in charge to release it after use.
   The number of matching files is returned.  -1 is returned in case of error.
   char *pFileNames = file selection pattern
   char **pBuf      = address where the output buffer address is returned
   int *iSize       = address of an int where the output buffer size is returned
   int iInfo        = information type selection (infoAll default, infoSummary)
   **/
   int ListFiles(char *pFileNames, char **pBuf, int *iSize = 0, int iInfo = infoAll, bool ListFirst = true, bool pname = false);
     /**
   Delete files from a zip container.  The filename may contain wildcards.
   By this way several files can be deleted in a single operation.
   If several files have to be deleted, the processing goes on even in case of
   error on a previous file.  The same behavior is implemented if K2 is handled
   during the processing of a file but if there are still files to be deleted,
   those ones are not processed.

   It returns 0 if ok.
   char *pFileNames = file name (incl. wild cards ev.)
   **/ 
      int DeleteFiles(char *pFileNames, bool pname);
   /**
   CONVERT  ********************************************

   It returns 0 if ok.
   char *pFromContainer = Output file name
   char *pToContainer = Input file name
   int iHuser = Home userid length
   int iHcat  = Home catid length
   int iWriteMode   = new (default) or replace
   **/
   int CnvZip(char *pFromContainer, char *pToContainer, int iHuser, int iHcat, int iWriteMode = 0);

   /**
   MODIFY-ZIP-OPTIONS  ****************************************
   It returns 0 if ok.
   char *pCrypto = crypto password
   int iLen      = length of crypto password
   int iEncrypt  = encryption or not
   **/
   int ModZipopt(char *pCrypto, int iLen, int iEncrypt);

   /**
   // reorganize the file by rewriting only the files having a header in the central directory
   It returns 0 if ok.
   char *pContainer = name of the zip container file
   this file name must be valid
   if "link=linkname", the container is opened
   using this link name
   **/
   int ReorganizeZip(char *pContainer);
   /**
   Activate the trace processing.
   It returns 0 if ok.
   char *pFileName = name of the trace file.  If NULL, default name is used
   **/
   int ActivateTrace(char *pFileName);
   /**
   Deactivate the trace
   **/
   int DeactivateTrace();
   /**
   Check if trace is active
   **/
   bool IsTraceActivated();
   /**
   Get trace file name
   **/ 
   void GetTraceFilename(char *traceName);
   /**
   Return the zip container comments into the input buffer with the specified
   input size.  If this size is not sufficient, the data are truncated.
   char *Comments    = buffer address
   int iCommentsSize = buffer size
   **/
   int GetComments(char *Comments, int iCommentsSize);
   /**
   Allows to set or reset that K2 has been intercepted at interface level.
   bool b = indicates that K2 indicator must be set or reset
   **/
   void K2given(bool b);
   /**
   Activated if the 'Cpu Exhausted' event occurs.
   **/
   void CpuExhausted();
   /**
   Activated if the 'Term' event occurs.
   **/
   void Term();
   /**
   Global return code
   **/
   //void *pRcErr; // CRcErr m_RcErr;
   //#define RcErr (*((CRcErr*)pRcErr))
   /**
   Return the last error maincode.  Use for LIST problem when -1 is returned
   **/
   int GetLastError();
// private:
   /**
   Get the file name according to the link name.  The file name
   is returned in the ContainerName variable.
   ReadTFT rc is returned.
   char *pLink = link name
   **/
   long GetFileFromLink(char *pLink, char *pContainer);
   /**
   Check if the file exists.
   It returns 1 if the file exists, -1 if it exists but is empty,
   0 if it does not exist.
   char *pFileName = file name
   **/
   int FileExists(char* pFileName);
   /**
   Build a file name for output: :catid:$uid.FILEyyyymmdd.hhmmss
   **/ 
   void BuildFileName(char *fn, int i, char *catid=0, char *userid=0);
   /**
   Validate if the input file name is a valid file name
   Return true is bs2000 file name compliant.
   const char *fn = file name
   **/
   bool IsBS2000FileName(const char *fn);
   /**
   Not implemented
   **/
   static void fsRout(const char* fn, int i);
   /**
   Convert input string in upper case
   char *s = string to convert
   **/
   void ToUpperCase(char *s);
   /**
   Catalog a container (PAM, STD16)
   char *cont = container name
   char *link = link name
   int format = container format
   bool space = true (define space in prg)
   **/
   int CatalogContainer(char *cont, char *link, int format, bool space);
   /**
   Get new file name using SDF wildcard construction
   char *selection
   char *construction
   char *srcname
   char *newname
   **/
   int GetNewFileName(char *selection, char *construction, char *srcname, char *newname);
   /**
   Get new file name using SDF wildcard construction
   char *selection
   char *construction
   void *src = fileitem object
   char *newname
   **/
   int GetNewFileName(char *selection, char *construction, void *src, char *newname);
   /**
   Common function adding files or lib elements in ZIP container
   char *pFileNames = files or lib file name
   char *pElements = null ptr or element selector
   char *pVersion = null ptr or version selector
   char *pType = null ptr or type selector
   char *pBase = null ptr or base version base selector
   int iConvertMode = convert mode 
   int iLevel       = compression level
   int iDataType    = data type (not specified, character, binary)
   char *pToFiles   = target construction file name
   int iTofileOption = specifies if libr element version and/or type are saved in the name
   int iDeleteOption = library element delete option                     132
   int iLogOption = logging option                                       133
   long nbr = number of added files                                      133
   **/
   int AddItems(char *pFileNames, char *pElements, char *pVersion, char *pType,
             char *pBase, int iConvertMode, int iLevel, int iDataType,
    char *pToFiles, int iTofileOption, int iDeleteOption, int iLogOption, unsigned long &nbr, void *flist, bool pname);

   /* methods added for selection enhancement 1.2G */

   /* internal method
      pre-requisite CAddParam object has been created with all the parameters of the
      add statement
   */
   int AddToZip(void *paddparam);

   void SetExtractLogging(bool log);

   void SetSelectCCS(char *from, char *to);

   char    ContainerName[55];
   int     iCFormat;
   char FromCCS[9];
   char ToCCS[9];
   void *pZip;  //CZipArch m_Zip;
   #define Zip (*((CZipArch*)pZip))
   bool bRelLink;
   int m_OpenMode;
   bool k2Pressed;
   void UpdateUserInfo();
   bool bLib;
   int m_TofileOption;
   void *pAddParam; // CAddParam instance
   bool bExtractLoggingMax;                  // 134
   bool reorganizationNeeded; // 135
};
// extern bool glb_sysout;  // msg on sysout by default
#endif // __SzpZip_h__