Hex Artifact Content

Not logged in

Artifact e8ff6e20f86f7178c06fa198a09b2ffdebaa08fd:


0000: 23 69 66 6e 64 65 66 20 5f 5f 55 4e 41 43 45 44  #ifndef __UNACED
0010: 45 46 5f 48 5f 42 59 5f 4b 5f 49 4e 41 42 41 5f  EF_H_BY_K_INABA_
0020: 5f 0d 0a 23 64 65 66 69 6e 65 20 5f 5f 55 4e 41  _..#define __UNA
0030: 43 45 44 45 46 5f 48 5f 42 59 5f 4b 5f 49 4e 41  CEDEF_H_BY_K_INA
0040: 42 41 5f 5f 0d 0a 23 69 66 64 65 66 20 5f 5f 63  BA__..#ifdef __c
0050: 70 6c 75 73 70 6c 75 73 0d 0a 20 65 78 74 65 72  plusplus.. exter
0060: 6e 20 22 43 22 20 7b 0d 0a 23 65 6e 64 69 66 0d  n "C" {..#endif.
0070: 0a 0d 0a 2f 2f cd cd cd cd cd cd cd cd cd cd cd  ...//...........
0080: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
0090: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
00a0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
00b0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
00c0: cd cd 0d 0a 2f 2f cd cd cd cd cd cd cd cd cd cd  ....//..........
00d0: cd cd cd cd cd cd 3d 3d 3d 3d 3d 2d 2d 2d 20 20  ......=====---  
00e0: 50 61 72 74 20 31 3a 20 64 69 66 66 65 72 65 6e  Part 1: differen
00f0: 74 20 73 74 72 75 63 74 75 72 65 73 20 2d 2d 2d  t structures ---
0100: 3d 3d 3d 3d cd cd cd cd cd cd cd cd cd cd cd cd  ====............
0110: cd cd cd 0d 0a 2f 2f cd cd cd cd cd cd cd cd cd  .....//.........
0120: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
0130: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
0140: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
0150: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
0160: cd cd cd cd 0d 0a 0d 0a 20 20 2f 2f 2d 2d 2d 2d  ........  //----
0170: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0180: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0190: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
01a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
01b0: 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 2f 2f 0d 0a 20  -------..  //.. 
01c0: 20 2f 2f 20 48 65 72 65 20 69 6e 20 64 69 66 66   // Here in diff
01d0: 65 72 65 6e 74 20 73 74 72 75 63 74 75 72 65 73  erent structures
01e0: 20 75 73 65 64 20 61 74 20 63 61 6c 6c 62 61 63   used at callbac
01f0: 6b 20 66 75 6e 63 74 69 6f 6e 73 20 61 6e 64 0d  k functions and.
0200: 0a 20 20 2f 2f 20 41 43 45 2e 44 4c 4c 20 66 75  .  // ACE.DLL fu
0210: 6e 63 74 69 6f 6e 73 20 61 72 65 20 64 65 63 6c  nctions are decl
0220: 61 72 65 64 2e 0d 0a 20 20 2f 2f 0d 0a 20 20 2f  ared...  //..  /
0230: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
0240: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0250: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0260: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0270: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20  ------------..  
0280: 2f 2f 0d 0a 20 20 2f 2f 20 43 6f 6e 74 65 6e 74  //..  // Content
0290: 73 3a 0d 0a 20 20 2f 2f 20 20 20 50 61 72 74 20  s:..  //   Part 
02a0: 31 2e 31 3a 20 73 74 72 75 63 74 75 72 65 73 20  1.1: structures 
02b0: 75 73 65 64 20 69 6e 20 63 61 6c 6c 62 61 63 6b  used in callback
02c0: 20 73 74 72 75 63 74 75 72 65 73 0d 0a 20 20 2f   structures..  /
02d0: 2f 20 20 20 50 61 72 74 20 31 2e 32 3a 20 73 74  /   Part 1.2: st
02e0: 72 75 63 74 75 72 65 73 20 75 73 65 64 20 69 6e  ructures used in
02f0: 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 75 63 74   function struct
0300: 75 72 65 73 0d 0a 20 20 2f 2f 0d 0a 20 20 2f 2f  ures..  //..  //
0310: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0330: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0340: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0350: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 0d  -----------.....
0360: 0a 20 20 2f 2f cd cd cd cd cd cd cd cd cd cd cd  .  //...........
0370: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
0380: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
0390: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
03a0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
03b0: 0d 0a 20 20 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 2d 2d  ..  //========--
03c0: 2d 20 20 50 61 72 74 20 31 2e 31 3a 20 73 74 72  -  Part 1.1: str
03d0: 75 63 74 75 72 65 73 20 75 73 65 64 20 69 6e 20  uctures used in 
03e0: 63 61 6c 6c 62 61 63 6b 20 73 74 72 75 63 74 75  callback structu
03f0: 72 65 73 20 20 2d 2d 2d 3d 3d 3d 3d 3d 3d 3d 3d  res  ---========
0400: 3d 0d 0a 20 20 2f 2f cd cd cd cd cd cd cd cd cd  =..  //.........
0410: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
0420: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
0430: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
0440: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
0450: cd cd 0d 0a 0d 0a 20 20 20 20 2f 2f c4 c4 c4 c4  ......    //....
0460: c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
0470: c4 c4 c4 20 20 63 6f 6d 6d 65 6e 74 20 62 75 66  ...  comment buf
0480: 66 65 72 20 73 74 72 75 63 74 75 72 65 20 20 c4  fer structure  .
0490: c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
04a0: c4 c4 c4 c4 c4 0d 0a 20 20 20 20 2f 2f 20 55 73  .......    // Us
04b0: 65 64 20 69 6e 20 74 41 43 45 47 6c 6f 62 61 6c  ed in tACEGlobal
04c0: 44 61 74 61 53 74 72 75 63 2e 20 41 70 70 6c 69  DataStruc. Appli
04d0: 63 61 74 69 6f 6e 20 68 61 73 20 74 6f 20 73 70  cation has to sp
04e0: 65 63 69 66 79 20 77 68 65 72 65 20 74 68 65 0d  ecify where the.
04f0: 0a 20 20 20 20 2f 2f 20 63 6f 6d 6d 65 6e 74 20  .    // comment 
0500: 69 73 20 6f 72 20 73 68 6f 75 6c 64 20 62 65 20  is or should be 
0510: 73 74 6f 72 65 64 2e 0d 0a 20 20 20 20 2f 2f 2d  stored...    //-
0520: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0530: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0540: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0550: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0560: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20 20  --------....    
0570: 20 20 20 20 74 79 70 65 64 65 66 20 73 74 72 75      typedef stru
0580: 63 74 20 73 41 43 45 43 6f 6d 6d 65 6e 74 53 74  ct sACECommentSt
0590: 72 75 63 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a  ruc..        {..
05a0: 20 20 20 20 20 20 20 20 20 20 4c 50 53 54 52 20            LPSTR 
05b0: 42 75 66 3b 20 20 20 20 20 20 20 20 20 20 20 20  Buf;            
05c0: 20 20 20 20 20 20 2f 2f 20 61 72 65 61 20 77 68        // area wh
05d0: 65 72 65 20 74 68 65 20 63 6f 6d 6d 65 6e 74 73  ere the comments
05e0: 20 61 72 65 20 73 74 6f 72 65 64 0d 0a 20 20 20   are stored..   
05f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0600: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0610: 20 20 20 2f 2f 20 62 79 20 74 68 65 20 61 70 70     // by the app
0620: 6c 69 63 61 74 69 6f 6e 20 6f 72 20 62 79 20 74  lication or by t
0630: 68 65 20 44 6c 6c 0d 0a 20 20 20 20 20 20 20 20  he Dll..        
0640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
0660: 20 63 6f 6d 6d 65 6e 74 73 20 6d 75 73 74 20 62   comments must b
0670: 65 20 7a 65 72 6f 2d 74 65 72 6d 69 6e 61 74 65  e zero-terminate
0680: 64 0d 0a 20 20 20 20 20 20 20 20 20 20 55 4c 4f  d..          ULO
0690: 4e 47 20 42 75 66 53 69 7a 65 3b 20 20 20 20 20  NG BufSize;     
06a0: 20 20 20 20 20 20 20 20 20 2f 2f 20 73 69 7a 65           // size
06b0: 20 6f 66 20 74 68 69 73 20 61 72 65 61 0d 0a 20   of this area.. 
06c0: 20 20 20 20 20 20 20 20 20 55 4c 4f 4e 47 20 53           ULONG S
06d0: 74 61 74 65 3b 20 20 20 20 20 20 20 20 20 20 20  tate;           
06e0: 20 20 20 20 20 2f 2f 20 73 74 61 74 65 20 6f 66       // state of
06f0: 20 63 6f 6d 6d 65 6e 74 20 2d 20 73 65 65 20 41   comment - see A
0700: 43 45 5f 43 4f 4d 4d 45 4e 54 0d 0a 20 20 20 20  CE_COMMENT..    
0710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0720: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0730: 20 20 2f 2f 20 63 6f 6e 73 74 61 6e 74 73 20 62    // constants b
0740: 65 6c 6f 77 0d 0a 20 20 20 20 20 20 20 20 7d 20  elow..        } 
0750: 74 41 43 45 43 6f 6d 6d 65 6e 74 53 74 72 75 63  tACECommentStruc
0760: 2c 0d 0a 20 20 20 20 20 20 20 20 20 2a 70 41 43  ,..         *pAC
0770: 45 43 6f 6d 6d 65 6e 74 53 74 72 75 63 3b 0d 0a  ECommentStruc;..
0780: 0d 0a 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d  ....      //----
0790: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
07a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
07b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
07c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
07d0: 2d 2d 2d 0d 0a 20 20 20 20 20 20 2f 2f 20 44 65  ---..      // De
07e0: 66 69 6e 65 73 20 66 6f 72 20 74 68 65 20 74 41  fines for the tA
07f0: 43 45 43 6f 6d 6d 65 6e 74 53 74 72 75 63 2e 53  CECommentStruc.S
0800: 74 61 74 65 20 66 69 65 6c 64 2c 20 77 68 69 63  tate field, whic
0810: 68 20 74 65 6c 6c 73 20 61 62 6f 75 74 0d 0a 20  h tells about.. 
0820: 20 20 20 20 20 2f 2f 20 74 68 65 20 72 65 73 75       // the resu
0830: 6c 74 20 6f 66 20 74 68 65 20 6c 61 73 74 20 63  lt of the last c
0840: 6f 6d 6d 65 6e 74 20 65 78 74 72 61 63 74 69 6f  omment extractio
0850: 6e 2e 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d  n...      //----
0860: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0870: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0880: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0890: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
08a0: 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23  ---....        #
08b0: 64 65 66 69 6e 65 20 41 43 45 5f 43 4f 4d 4d 45  define ACE_COMME
08c0: 4e 54 5f 4f 4b 20 20 20 20 20 20 20 20 20 20 30  NT_OK          0
08d0: 20 20 20 20 2f 2f 20 63 6f 6d 6d 65 6e 74 20 65      // comment e
08e0: 78 74 72 61 63 74 69 6f 6e 20 77 65 6e 74 20 66  xtraction went f
08f0: 69 6e 65 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23  ine....        #
0900: 64 65 66 69 6e 65 20 41 43 45 5f 43 4f 4d 4d 45  define ACE_COMME
0910: 4e 54 5f 53 4d 41 4c 4c 42 55 46 20 20 20 20 31  NT_SMALLBUF    1
0920: 20 20 20 20 2f 2f 20 63 6f 6d 6d 65 6e 74 20 62      // comment b
0930: 75 66 66 65 72 20 74 6f 6f 20 73 6d 61 6c 6c 20  uffer too small 
0940: 74 6f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  to..            
0950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0970: 20 2f 2f 20 73 74 6f 72 65 20 74 68 65 20 77 68   // store the wh
0980: 6f 6c 65 20 63 6f 6d 6d 65 6e 74 20 69 6e 0d 0a  ole comment in..
0990: 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e  ..        #defin
09a0: 65 20 41 43 45 5f 43 4f 4d 4d 45 4e 54 5f 4e 4f  e ACE_COMMENT_NO
09b0: 4e 45 20 20 20 20 20 20 20 20 32 35 35 20 20 2f  NE        255  /
09c0: 2f 20 4e 6f 20 63 6f 6d 6d 65 6e 74 20 70 72 65  / No comment pre
09d0: 73 65 6e 74 0d 0a 0d 0a 0d 0a 20 20 20 20 2f 2f  sent......    //
09e0: c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
09f0: c4 c4 c4 c4 c4 c4 c4 20 20 67 6c 6f 62 61 6c 20  .......  global 
0a00: 64 61 74 61 20 73 74 72 75 63 74 75 72 65 20 20  data structure  
0a10: c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
0a20: c4 c4 c4 c4 c4 c4 c4 c4 c4 0d 0a 20 20 20 20 2f  ...........    /
0a30: 2f 20 54 68 69 73 20 73 74 72 75 63 74 75 72 65  / This structure
0a40: 20 63 6f 6e 74 61 69 6e 73 20 69 6e 66 6f 72 6d   contains inform
0a50: 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 44 6c  ation for the Dl
0a60: 6c 20 62 65 69 6e 67 20 69 6e 74 65 72 65 73 74  l being interest
0a70: 69 6e 67 20 66 6f 72 0d 0a 20 20 20 20 2f 2f 20  ing for..    // 
0a80: 6e 65 61 72 6c 79 20 61 6c 6c 20 66 75 6e 63 74  nearly all funct
0a90: 69 6f 6e 73 2e 20 54 68 65 20 44 6c 6c 20 68 61  ions. The Dll ha
0aa0: 73 20 74 6f 20 62 65 20 69 6e 69 74 69 61 6c 69  s to be initiali
0ab0: 7a 65 64 20 77 69 74 68 20 74 68 69 73 0d 0a 20  zed with this.. 
0ac0: 20 20 20 2f 2f 20 73 74 72 75 63 74 75 72 65 20     // structure 
0ad0: 70 61 73 73 65 64 20 74 6f 20 74 41 43 45 49 6e  passed to tACEIn
0ae0: 69 74 44 6c 6c 28 29 2e 20 54 68 69 73 20 73 74  itDll(). This st
0af0: 72 75 63 74 75 72 65 20 69 73 20 61 6c 73 6f 20  ructure is also 
0b00: 70 61 73 73 65 64 0d 0a 20 20 20 20 2f 2f 20 62  passed..    // b
0b10: 79 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 66  y the callback f
0b20: 75 6e 63 74 69 6f 6e 73 2e 0d 0a 20 20 20 20 2f  unctions...    /
0b30: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
0b40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0b50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0b60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0b70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20  ----------....  
0b80: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d              //--
0b90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0ba0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0bb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0bc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20  -------------.. 
0bd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
0be0: 46 6f 72 77 61 72 64 20 64 65 63 6c 61 72 61 74  Forward declarat
0bf0: 69 6f 6e 73 20 6f 66 20 63 61 6c 6c 62 61 63 6b  ions of callback
0c00: 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 61 6d 65   function parame
0c10: 74 65 72 73 0d 0a 20 20 20 20 20 20 20 20 20 20  ters..          
0c20: 20 20 20 20 2f 2f 20 75 73 65 64 20 69 6e 20 74      // used in t
0c30: 68 69 73 20 73 74 72 75 63 74 75 72 65 2e 0d 0a  his structure...
0c40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
0c50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0c60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0c70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0c80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
0c90: 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ...             
0ca0: 20 20 20 74 79 70 65 64 65 66 20 75 6e 69 6f 6e     typedef union
0cb0: 20 73 41 43 45 49 6e 66 6f 43 61 6c 6c 62 61 63   sACEInfoCallbac
0cc0: 6b 50 72 6f 63 53 74 72 75 63 0d 0a 20 20 20 20  kProcStruc..    
0cd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0ce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0cf0: 20 20 20 2a 70 41 43 45 49 6e 66 6f 43 61 6c 6c     *pACEInfoCall
0d00: 62 61 63 6b 50 72 6f 63 53 74 72 75 63 3b 0d 0a  backProcStruc;..
0d10: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
0d20: 20 20 74 79 70 65 64 65 66 20 75 6e 69 6f 6e 20    typedef union 
0d30: 73 41 43 45 45 72 72 6f 72 43 61 6c 6c 62 61 63  sACEErrorCallbac
0d40: 6b 50 72 6f 63 53 74 72 75 63 0d 0a 20 20 20 20  kProcStruc..    
0d50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0d60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0d70: 20 20 20 2a 70 41 43 45 45 72 72 6f 72 43 61 6c     *pACEErrorCal
0d80: 6c 62 61 63 6b 50 72 6f 63 53 74 72 75 63 3b 0d  lbackProcStruc;.
0d90: 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ...             
0da0: 20 20 20 74 79 70 65 64 65 66 20 75 6e 69 6f 6e     typedef union
0db0: 20 73 41 43 45 52 65 71 75 65 73 74 43 61 6c 6c   sACERequestCall
0dc0: 62 61 63 6b 50 72 6f 63 53 74 72 75 63 0d 0a 20  backProcStruc.. 
0dd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0df0: 20 20 20 20 20 20 2a 70 41 43 45 52 65 71 75 65        *pACEReque
0e00: 73 74 43 61 6c 6c 62 61 63 6b 50 72 6f 63 53 74  stCallbackProcSt
0e10: 72 75 63 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20  ruc;....        
0e20: 20 20 20 20 20 20 20 20 74 79 70 65 64 65 66 20          typedef 
0e30: 75 6e 69 6f 6e 20 73 41 43 45 53 74 61 74 65 43  union sACEStateC
0e40: 61 6c 6c 62 61 63 6b 50 72 6f 63 53 74 72 75 63  allbackProcStruc
0e50: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
0e60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0e70: 20 20 20 20 20 20 20 20 20 2a 70 41 43 45 53 74           *pACESt
0e80: 61 74 65 43 61 6c 6c 62 61 63 6b 50 72 6f 63 53  ateCallbackProcS
0e90: 74 72 75 63 3b 0d 0a 0d 0a 0d 0a 20 20 20 20 20  truc;......     
0ea0: 20 20 20 74 79 70 65 64 65 66 20 73 74 72 75 63     typedef struc
0eb0: 74 20 73 41 43 45 47 6c 6f 62 61 6c 44 61 74 61  t sACEGlobalData
0ec0: 53 74 72 75 63 0d 0a 20 20 20 20 20 20 20 20 7b  Struc..        {
0ed0: 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d  ..        //----
0ee0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0ef0: 2d 2d 2d 2d 20 66 69 65 6c 64 73 20 66 6f 72 20  ---- fields for 
0f00: 41 43 45 20 61 6e 64 20 55 6e 41 43 45 20 2d 2d  ACE and UnACE --
0f10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0f20: 2d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 76  -....          v
0f30: 6f 69 64 20 20 2a 4f 62 6a 3b 20 20 20 20 20 20  oid  *Obj;      
0f40: 20 20 20 20 20 2f 2f 20 2d 2d 2d 2d 20 72 65 73       // ---- res
0f50: 65 72 76 65 64 20 66 6f 72 20 61 70 70 6c 69 63  erved for applic
0f60: 61 74 69 6f 6e 21 20 2d 2d 2d 2d 0d 0a 20 20 20  ation! ----..   
0f70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0f80: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
0f90: 74 68 6f 75 67 68 74 20 74 6f 20 62 65 20 75 73  thought to be us
0fa0: 65 64 20 61 73 20 61 20 70 6f 69 6e 74 65 72 20  ed as a pointer 
0fb0: 74 6f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  to..            
0fc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0fd0: 20 20 20 20 2f 2f 20 61 6e 20 6f 62 6a 65 63 74      // an object
0fe0: 3b 20 77 68 65 6e 20 61 20 63 61 6c 6c 62 61 63  ; when a callbac
0ff0: 6b 2d 66 75 6e 63 74 69 6f 6e 20 69 73 0d 0a 20  k-function is.. 
1000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
1020: 2f 20 63 61 6c 6c 65 64 2c 20 74 68 65 20 6f 62  / called, the ob
1030: 6a 65 63 74 20 70 6f 69 6e 74 65 72 20 63 61 6e  ject pointer can
1040: 20 62 65 20 75 73 65 64 20 74 6f 0d 0a 20 20 20   be used to..   
1050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1060: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
1070: 68 61 6e 64 6c 65 20 74 68 65 20 63 61 6c 6c 62  handle the callb
1080: 61 63 6b 20 69 6e 20 61 20 73 70 65 63 69 66 69  ack in a specifi
1090: 63 20 77 61 79 3b 0d 0a 20 20 20 20 20 20 20 20  c way;..        
10a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10b0: 20 20 20 20 20 20 20 20 2f 2f 20 74 68 65 20 70          // the p
10c0: 6f 69 6e 74 65 72 20 68 61 73 20 74 6f 20 62 65  ointer has to be
10d0: 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 62 79 0d   initialized by.
10e0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
10f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1100: 20 2f 2f 20 41 43 45 49 6e 69 74 44 6c 6c 28 29   // ACEInitDll()
1110: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 55 4c  ....          UL
1120: 4f 4e 47 20 4d 61 78 41 72 63 68 69 76 65 54 65  ONG MaxArchiveTe
1130: 73 74 42 79 74 65 73 3b 0d 0a 0d 0a 20 20 20 20  stBytes;....    
1140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1150: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 68              // h
1160: 6f 77 20 6d 61 6e 79 20 62 79 74 65 73 20 6f 66  ow many bytes of
1170: 20 61 20 66 69 6c 65 20 73 68 6f 75 6c 64 20 62   a file should b
1180: 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  e..             
1190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11a0: 20 20 20 2f 2f 20 6c 6f 6f 6b 65 64 20 75 70 6f     // looked upo
11b0: 6e 20 61 74 20 61 72 63 68 69 76 65 20 68 65 61  n at archive hea
11c0: 64 65 72 20 73 65 61 72 63 68 3f 0d 0a 0d 0a 20  der search?.... 
11d0: 20 20 20 20 20 20 20 20 20 55 4c 4f 4e 47 20 4d           ULONG M
11e0: 61 78 46 69 6c 65 42 75 66 53 69 7a 65 3b 0d 0a  axFileBufSize;..
11f0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
1200: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1210: 20 20 2f 2f 20 6d 61 78 69 6d 75 6d 20 62 75 66    // maximum buf
1220: 66 65 72 20 73 69 7a 65 20 66 6f 72 20 62 75 66  fer size for buf
1230: 66 65 72 65 64 0d 0a 20 20 20 20 20 20 20 20 20  fered..         
1240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1250: 20 20 20 20 20 20 20 2f 2f 20 49 2f 4f 20 6f 70         // I/O op
1260: 65 72 61 74 69 6f 6e 73 0d 0a 0d 0a 20 20 20 20  erations....    
1270: 20 20 20 20 20 20 74 41 43 45 43 6f 6d 6d 65 6e        tACECommen
1280: 74 53 74 72 75 63 20 20 20 20 20 20 2f 2f 20 75  tStruc      // u
1290: 73 65 64 20 74 6f 20 65 78 63 68 61 6e 67 65 20  sed to exchange 
12a0: 63 6f 6d 6d 65 6e 74 20 64 61 74 61 0d 0a 20 20  comment data..  
12b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f                Co
12c0: 6d 6d 65 6e 74 3b 20 20 20 20 20 20 20 20 2f 2f  mment;        //
12d0: 20 62 65 74 77 65 65 6e 20 61 70 70 6c 69 63 61   between applica
12e0: 74 69 6f 6e 20 61 6e 64 20 44 6c 6c 0d 0a 20 20  tion and Dll..  
12f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1300: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
1310: 20 75 73 69 6e 67 20 63 61 6c 6c 62 61 63 6b 20   using callback 
1320: 66 75 6e 63 74 69 6f 6e 73 0d 0a 0d 0a 20 20 20  functions....   
1330: 20 20 20 20 20 20 20 4c 50 53 54 52 20 44 65 63         LPSTR Dec
1340: 72 79 70 74 50 61 73 73 77 6f 72 64 3b 0d 0a 0d  ryptPassword;...
1350: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1360: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1370: 20 2f 2f 20 74 68 65 20 44 65 63 72 79 70 74 50   // the DecryptP
1380: 61 73 73 77 6f 72 64 20 73 70 65 63 69 66 69 65  assword specifie
1390: 64 20 61 74 0d 0a 20 20 20 20 20 20 20 20 20 20  d at..          
13a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13b0: 20 20 20 20 20 20 2f 2f 20 41 43 45 49 6e 69 74        // ACEInit
13c0: 44 6c 6c 28 29 20 69 73 20 6f 76 65 72 77 72 69  Dll() is overwri
13d0: 74 74 65 6e 20 62 79 20 74 68 65 0d 0a 20 20 20  tten by the..   
13e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
1400: 44 65 63 72 79 70 74 50 61 73 73 77 6f 72 64 20  DecryptPassword 
1410: 66 69 65 6c 64 20 6f 66 20 74 41 43 45 41 64 64  field of tACEAdd
1420: 53 74 72 75 63 20 61 6e 64 0d 0a 20 20 20 20 20  Struc and..     
1430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1440: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 74             // ot
1450: 68 65 72 20 66 75 6e 63 74 69 6f 6e 2d 73 70 65  her function-spe
1460: 63 69 66 69 63 20 73 74 72 75 63 74 75 72 65 73  cific structures
1470: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ;..             
1480: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1490: 20 20 20 2f 2f 20 62 75 74 20 74 68 69 73 20 66     // but this f
14a0: 69 65 6c 64 20 63 61 6e 20 62 65 20 75 73 65 64  ield can be used
14b0: 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 0d 0a   to change the..
14c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14e0: 2f 2f 20 70 61 73 73 77 6f 72 64 20 61 74 20 63  // password at c
14f0: 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e  allback function
1500: 20 63 61 6c 6c 73 0d 0a 0d 0a 20 20 20 20 20 20   calls....      
1510: 20 20 20 20 42 4f 4f 4c 20 55 73 65 56 42 53 74      BOOL UseVBSt
1520: 72 75 63 74 75 72 65 73 3b 20 2f 2f 20 20 70 61  ructures; //  pa
1530: 73 73 65 73 20 73 74 72 75 63 74 75 72 65 73 20  sses structures 
1540: 74 6f 20 63 61 6c 6c 62 61 63 6b 20 66 75 6e 63  to callback func
1550: 74 69 6f 6e 73 0d 0a 20 20 20 20 20 20 20 20 20  tions..         
1560: 20 09 09 09 2f 2f 20 20 6d 75 63 68 20 62 65 74   ...//  much bet
1570: 74 65 72 20 73 75 69 74 65 64 20 66 6f 72 20 56  ter suited for V
1580: 69 73 75 61 6c 20 42 61 73 69 63 0d 0a 0d 0a 20  isual Basic.... 
1590: 20 20 20 20 20 20 20 20 20 43 48 41 52 20 20 52           CHAR  R
15a0: 65 73 65 72 76 65 64 31 5b 36 30 5d 3b 20 20 2f  eserved1[60];  /
15b0: 2f 20 68 61 73 20 74 6f 20 62 65 20 66 69 6c 6c  / has to be fill
15c0: 65 64 20 77 69 74 68 20 7a 65 72 6f 73 0d 0a 0d  ed with zeros...
15d0: 0a 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d  .        //-----
15e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15f0: 2d 2d 2d 2d 2d 2d 20 66 69 65 6c 64 73 20 66 6f  ------ fields fo
1600: 72 20 41 43 45 20 6f 6e 6c 79 20 2d 2d 2d 2d 2d  r ACE only -----
1610: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1620: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 4c 50  ....          LP
1630: 53 54 52 20 45 6e 63 72 79 70 74 50 61 73 73 77  STR EncryptPassw
1640: 6f 72 64 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20  ord;....        
1650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1660: 20 20 20 20 20 20 20 20 2f 2f 20 74 68 69 6e 67          // thing
1670: 73 20 73 74 61 74 65 64 20 61 74 20 74 68 65 20  s stated at the 
1680: 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74  description of t
1690: 68 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  he..            
16a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16b0: 20 20 20 20 2f 2f 20 44 65 63 72 79 70 74 50 61      // DecryptPa
16c0: 73 73 77 6f 72 64 20 66 69 65 6c 64 20 61 70 70  ssword field app
16d0: 6c 79 20 68 65 72 65 20 61 73 20 77 65 6c 6c 0d  ly here as well.
16e0: 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 4c  .....          L
16f0: 50 53 54 52 20 54 65 6d 70 44 69 72 3b 20 20 20  PSTR TempDir;   
1700: 20 20 20 20 20 2f 2f 20 64 69 72 65 63 74 6f 72       // director
1710: 79 20 74 6f 20 73 61 76 65 20 74 65 6d 70 6f 72  y to save tempor
1720: 61 72 79 20 61 72 63 68 69 76 65 0d 0a 0d 0a 20  ary archive.... 
1730: 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d         //-------
1740: 2d 20 72 65 67 69 73 74 72 61 74 69 6f 6e 20 28  - registration (
1750: 41 43 45 20 44 4c 4c 73 20 6f 6e 6c 79 2c 20 62  ACE DLLs only, b
1760: 75 74 20 6e 6f 74 20 75 73 65 64 20 61 74 20 41  ut not used at A
1770: 43 4c 29 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  CL) ----------..
1780: 0d 0a 20 20 20 20 20 20 20 20 20 20 4c 50 53 54  ..          LPST
1790: 52 20 4b 65 79 50 61 74 68 3b 20 20 20 20 20 20  R KeyPath;      
17a0: 20 20 2f 2f 20 6e 65 63 65 73 73 61 72 79 20 66    // necessary f
17b0: 6f 72 20 72 65 61 64 69 6e 67 20 61 6e 64 20 77  or reading and w
17c0: 72 69 74 69 6e 67 20 6b 65 79 20 66 69 6c 65 0d  riting key file.
17d0: 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 4c 50 53  ...          LPS
17e0: 54 52 20 55 73 65 72 41 56 3b 20 20 20 20 20 20  TR UserAV;      
17f0: 20 20 20 2f 2f 20 44 6c 6c 20 72 65 74 75 72 6e     // Dll return
1800: 73 20 74 68 65 20 41 56 20 73 74 72 69 6e 67 20  s the AV string 
1810: 28 69 66 20 72 65 67 69 73 74 65 72 65 64 29 0d  (if registered).
1820: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1840: 20 2f 2f 20 69 6e 20 74 68 69 73 20 66 69 65 6c   // in this fiel
1850: 64 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 4c  d....          L
1860: 50 53 54 52 20 49 73 47 65 6e 65 72 61 6c 4b 65  PSTR IsGeneralKe
1870: 79 3b 20 20 20 2f 2f 20 44 4c 4c 20 72 65 74 75  y;   // DLL retu
1880: 72 6e 73 20 74 68 65 20 6b 65 79 2c 20 69 66 20  rns the key, if 
1890: 69 74 20 69 73 20 61 20 67 65 6e 65 72 61 6c 20  it is a general 
18a0: 6b 65 79 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20  key....         
18b0: 20 48 57 4e 44 20 20 4f 77 6e 65 72 57 69 6e 64   HWND  OwnerWind
18c0: 6f 77 3b 20 20 20 20 2f 2f 20 73 70 65 63 69 66  ow;    // specif
18d0: 69 65 73 20 74 68 65 20 61 70 70 6c 69 63 61 74  ies the applicat
18e0: 69 6f 6e 73 20 77 69 6e 64 6f 77 20 74 6f 20 62  ions window to b
18f0: 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  e..             
1900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1910: 20 20 20 2f 2f 20 70 61 72 65 6e 74 20 6f 66 20     // parent of 
1920: 74 68 65 20 72 65 67 69 73 74 72 61 74 69 6f 6e  the registration
1930: 20 72 65 6d 69 6e 64 65 72 20 64 69 61 6c 6f 67   reminder dialog
1940: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2d 2d  ....        //--
1950: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1960: 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 66 69 65 6c 64 73  --------- fields
1970: 20 66 6f 72 20 41 43 45 20 6f 6e 6c 79 20 2d 2d   for ACE only --
1980: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1990: 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20  ---....         
19a0: 20 55 4c 4f 4e 47 20 43 6f 6d 70 72 65 73 73 69   ULONG Compressi
19b0: 6f 6e 4c 65 76 65 6c 3b 0d 0a 20 20 20 20 20 20  onLevel;..      
19c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 63 6f 6e            // con
19e0: 74 61 69 6e 73 20 74 68 65 20 63 75 72 72 65 6e  tains the curren
19f0: 74 6c 79 20 75 73 65 64 20 63 6f 6d 70 72 65 73  tly used compres
1a00: 73 69 6f 6e 0d 0a 20 20 20 20 20 20 20 20 20 20  sion..          
1a10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a20: 20 20 20 20 20 20 2f 2f 20 6c 65 76 65 6c 20 2d        // level -
1a30: 20 6d 61 79 20 62 65 20 63 68 61 6e 67 65 64 20   may be changed 
1a40: 64 75 72 69 6e 67 20 63 6f 6d 70 72 65 73 73 69  during compressi
1a50: 6f 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  on..            
1a60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a70: 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e      // operation
1a80: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 43 48  ....          CH
1a90: 41 52 20 20 52 65 73 65 72 76 65 64 32 5b 35 36  AR  Reserved2[56
1aa0: 5d 3b 20 20 2f 2f 20 68 61 73 20 74 6f 20 62 65  ];  // has to be
1ab0: 20 66 69 6c 6c 65 64 20 77 69 74 68 20 7a 65 72   filled with zer
1ac0: 6f 73 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20  os......        
1ad0: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
1ae0: 2d 2d 2d 2d 2d 2d 2d 2d 20 20 63 61 6c 6c 62 61  --------  callba
1af0: 63 6b 20 66 75 6e 63 74 69 6f 6e 73 20 28 41 43  ck functions (AC
1b00: 45 20 61 6e 64 20 55 6e 41 43 45 29 20 2d 2d 2d  E and UnACE) ---
1b10: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20  -------....     
1b20: 20 20 20 20 20 49 4e 54 20 28 5f 5f 73 74 64 63       INT (__stdc
1b30: 61 6c 6c 20 2a 49 6e 66 6f 43 61 6c 6c 62 61 63  all *InfoCallbac
1b40: 6b 50 72 6f 63 29 0d 0a 20 20 20 20 20 20 20 20  kProc)..        
1b50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b60: 20 20 28 70 41 43 45 49 6e 66 6f 43 61 6c 6c 62    (pACEInfoCallb
1b70: 61 63 6b 50 72 6f 63 53 74 72 75 63 20 49 6e 66  ackProcStruc Inf
1b80: 6f 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20  o);....         
1b90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba0: 20 20 20 20 20 20 20 2f 2f 20 20 49 6e 66 6f 72         //  Infor
1bb0: 6d 73 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 61  ms application a
1bc0: 62 6f 75 74 20 64 65 74 61 69 6c 73 20 6c 69 6b  bout details lik
1bd0: 65 20 74 68 65 0d 0a 20 20 20 20 20 20 20 20 20  e the..         
1be0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf0: 20 20 20 20 20 20 20 2f 2f 20 20 63 72 65 61 74         //  creat
1c00: 69 6f 6e 20 6f 66 20 61 20 74 65 6d 70 6f 72 61  ion of a tempora
1c10: 72 79 20 61 72 63 68 69 76 65 2e 0d 0a 20 20 20  ry archive...   
1c20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
1c40: 20 53 65 65 20 41 43 45 5f 43 41 4c 4c 42 41 43   See ACE_CALLBAC
1c50: 4b 5f 49 4e 46 4f 20 64 65 66 69 6e 69 74 69 6f  K_INFO definitio
1c60: 6e 73 20 66 6f 72 0d 0a 20 20 20 20 20 20 20 20  ns for..        
1c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c80: 20 20 20 20 20 20 20 20 2f 2f 20 20 6d 6f 72 65          //  more
1c90: 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0d 0a 0d   information....
1ca0: 0a 20 20 20 20 20 20 20 20 20 20 49 4e 54 20 28  .          INT (
1cb0: 5f 5f 73 74 64 63 61 6c 6c 20 2a 45 72 72 6f 72  __stdcall *Error
1cc0: 43 61 6c 6c 62 61 63 6b 50 72 6f 63 29 0d 0a 20  CallbackProc).. 
1cd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce0: 20 20 20 20 20 20 20 20 20 20 28 70 41 43 45 45            (pACEE
1cf0: 72 72 6f 72 43 61 6c 6c 62 61 63 6b 50 72 6f 63  rrorCallbackProc
1d00: 53 74 72 75 63 20 45 72 72 6f 72 29 3b 0d 0a 0d  Struc Error);...
1d10: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1d20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d30: 20 2f 2f 20 20 43 61 6c 6c 65 64 20 74 6f 20 6c   //  Called to l
1d40: 65 74 20 74 68 65 20 61 70 70 6c 69 63 61 74 69  et the applicati
1d50: 6f 6e 20 6b 6e 6f 77 20 61 62 6f 75 74 0d 0a 20  on know about.. 
1d60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
1d80: 2f 20 20 65 72 72 6f 72 73 2e 20 54 68 65 20 43  /  errors. The C
1d90: 6f 64 65 20 66 69 65 6c 64 20 6f 66 20 45 72 72  ode field of Err
1da0: 6f 72 20 77 69 6c 6c 0d 0a 20 20 20 20 20 20 20  or will..       
1db0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc0: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 63 6f 6e           //  con
1dd0: 74 61 69 6e 20 61 6e 20 41 43 45 5f 43 41 4c 4c  tain an ACE_CALL
1de0: 42 41 43 4b 5f 45 52 52 4f 52 20 76 61 6c 75 65  BACK_ERROR value
1df0: 2e 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 49  .....          I
1e00: 4e 54 20 28 5f 5f 73 74 64 63 61 6c 6c 20 2a 52  NT (__stdcall *R
1e10: 65 71 75 65 73 74 43 61 6c 6c 62 61 63 6b 50 72  equestCallbackPr
1e20: 6f 63 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20  oc)..           
1e30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e40: 28 70 41 43 45 52 65 71 75 65 73 74 43 61 6c 6c  (pACERequestCall
1e50: 62 61 63 6b 50 72 6f 63 53 74 72 75 63 20 52 65  backProcStruc Re
1e60: 71 75 65 73 74 29 3b 0d 0a 0d 0a 20 20 20 20 20  quest);....     
1e70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e80: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 43             //  C
1e90: 61 6c 6c 65 64 20 74 6f 20 6c 65 74 20 74 68 65  alled to let the
1ea0: 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 6b 6e 6f   application kno
1eb0: 77 20 61 62 6f 75 74 0d 0a 20 20 20 20 20 20 20  w about..       
1ec0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ed0: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 72 65 71           //  req
1ee0: 75 65 73 74 73 20 66 6f 72 20 64 61 74 61 2e 20  uests for data. 
1ef0: 43 6f 64 65 20 77 69 6c 6c 20 63 6f 6e 74 61 69  Code will contai
1f00: 6e 20 61 6e 0d 0a 20 20 20 20 20 20 20 20 20 20  n an..          
1f10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f20: 20 20 20 20 20 20 2f 2f 20 20 41 43 45 5f 43 41        //  ACE_CA
1f30: 4c 4c 42 41 43 4b 5f 52 45 51 55 45 53 54 20 76  LLBACK_REQUEST v
1f40: 61 6c 75 65 2e 0d 0a 0d 0a 20 20 20 20 20 20 20  alue.....       
1f50: 20 20 20 49 4e 54 20 28 5f 5f 73 74 64 63 61 6c     INT (__stdcal
1f60: 6c 20 2a 53 74 61 74 65 43 61 6c 6c 62 61 63 6b  l *StateCallback
1f70: 50 72 6f 63 29 0d 0a 20 20 20 20 20 20 20 20 20  Proc)..         
1f80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f90: 20 20 28 70 41 43 45 53 74 61 74 65 43 61 6c 6c    (pACEStateCall
1fa0: 62 61 63 6b 50 72 6f 63 53 74 72 75 63 20 53 74  backProcStruc St
1fb0: 61 74 65 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20  ate);....       
1fc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fd0: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 43 61 6c           //  Cal
1fe0: 6c 65 64 20 74 6f 20 6c 65 74 20 74 68 65 20 61  led to let the a
1ff0: 70 70 6c 69 63 61 74 69 6f 6e 20 6b 6e 6f 77 20  pplication know 
2000: 61 62 6f 75 74 0d 0a 20 20 20 20 20 20 20 20 20  about..         
2010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2020: 20 20 20 20 20 20 20 2f 2f 20 20 74 68 65 20 70         //  the p
2030: 72 6f 67 72 65 73 73 20 6f 66 20 6f 70 65 72 61  rogress of opera
2040: 74 69 6f 6e 73 2e 0d 0a 0d 0a 0d 0a 20 20 20 20  tions.......    
2050: 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
2060: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2070: 20 64 69 66 66 65 72 65 6e 74 20 6e 65 77 20 66   different new f
2080: 69 65 6c 64 73 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ields ----------
2090: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20  -----------..   
20a0: 20 20 20 20 20 20 20 43 48 41 52 20 20 52 65 73         CHAR  Res
20b0: 65 72 76 65 64 33 5b 36 34 5d 3b 20 20 2f 2f 20  erved3[64];  // 
20c0: 68 61 73 20 74 6f 20 62 65 20 66 69 6c 6c 65 64  has to be filled
20d0: 20 77 69 74 68 20 7a 65 72 6f 73 0d 0a 20 20 20   with zeros..   
20e0: 20 20 20 20 20 7d 20 74 41 43 45 47 6c 6f 62 61       } tACEGloba
20f0: 6c 44 61 74 61 53 74 72 75 63 2c 0d 0a 20 20 20  lDataStruc,..   
2100: 20 20 20 20 20 20 2a 70 41 43 45 47 6c 6f 62 61        *pACEGloba
2110: 6c 44 61 74 61 53 74 72 75 63 3b 0d 0a 0d 0a 0d  lDataStruc;.....
2120: 0a 20 20 20 20 2f 2f c4 c4 c4 c4 c4 c4 c4 c4 c4  .    //.........
2130: c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 20 20  ..............  
2140: 61 72 63 68 69 76 65 20 64 61 74 61 20 73 74 72  archive data str
2150: 75 63 74 75 72 65 20 20 c4 c4 c4 c4 c4 c4 c4 c4  ucture  ........
2160: c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
2170: 0d 0a 20 20 20 20 2f 2f 20 49 6e 66 6f 72 6d 73  ..    // Informs
2180: 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 66 75   the callback fu
2190: 6e 63 74 69 6f 6e 73 20 61 62 6f 75 74 20 74 68  nctions about th
21a0: 65 20 63 75 72 72 65 6e 74 20 61 72 63 68 69 76  e current archiv
21b0: 65 2c 20 69 74 73 20 76 6f 6c 75 6d 65 0d 0a 20  e, its volume.. 
21c0: 20 20 20 2f 2f 20 6e 75 6d 62 65 72 2c 20 74 68     // number, th
21d0: 65 20 61 72 63 68 69 76 65 2d 66 6c 61 67 73 20  e archive-flags 
21e0: 28 73 65 65 20 41 43 45 5f 46 4c 41 47 20 63 6f  (see ACE_FLAG co
21f0: 6e 73 74 61 6e 74 73 29 2c 20 74 68 65 20 63 72  nstants), the cr
2200: 65 61 74 69 6f 6e 20 68 6f 73 74 0d 0a 20 20 20  eation host..   
2210: 20 2f 2f 20 73 79 73 74 65 6d 20 28 73 65 65 20   // system (see 
2220: 41 43 45 5f 48 4f 53 54 20 63 6f 6e 73 74 61 6e  ACE_HOST constan
2230: 74 73 29 20 61 6e 64 20 74 68 65 20 41 56 20 69  ts) and the AV i
2240: 66 20 70 72 65 73 65 6e 74 20 69 6e 20 61 72 63  f present in arc
2250: 68 69 76 65 2e 0d 0a 20 20 20 20 2f 2f 20 41 6c  hive...    // Al
2260: 73 6f 20 75 73 65 64 20 61 74 20 41 43 45 52 65  so used at ACERe
2270: 61 64 41 72 63 68 69 76 65 44 61 74 61 28 29 2e  adArchiveData().
2280: 0d 0a 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d  ..    //--------
2290: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
22a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
22b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
22c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
22d0: 2d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 74 79 70  -....        typ
22e0: 65 64 65 66 20 73 74 72 75 63 74 20 73 41 43 45  edef struct sACE
22f0: 41 72 63 68 69 76 65 44 61 74 61 53 74 72 75 63  ArchiveDataStruc
2300: 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20  ..        {..   
2310: 20 20 20 20 20 20 20 4c 50 53 54 52 20 41 72 63         LPSTR Arc
2320: 68 69 76 65 4e 61 6d 65 3b 0d 0a 20 20 20 20 20  hiveName;..     
2330: 20 20 20 20 20 55 4c 4f 4e 47 20 56 6f 6c 75 6d       ULONG Volum
2340: 65 4e 75 6d 62 65 72 2c 0d 0a 20 20 20 20 20 20  eNumber,..      
2350: 20 20 20 20 20 20 20 20 20 20 46 6c 61 67 73 2c            Flags,
2360: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73 65 65            // see
2370: 20 41 43 45 5f 41 52 43 46 4c 41 47 20 64 65 66   ACE_ARCFLAG def
2380: 69 6e 65 73 20 62 65 6c 6f 77 0d 0a 20 20 20 20  ines below..    
2390: 20 20 20 20 20 20 20 20 20 20 20 20 48 6f 73 74              Host
23a0: 43 72 65 61 74 65 64 2c 20 20 20 20 2f 2f 20 73  Created,    // s
23b0: 65 65 20 41 43 45 5f 48 4f 53 54 20 64 65 66 69  ee ACE_HOST defi
23c0: 6e 65 73 20 62 65 6c 6f 77 0d 0a 20 20 20 20 20  nes below..     
23d0: 20 20 20 20 20 20 20 20 20 20 20 54 69 6d 65 43             TimeC
23e0: 72 65 61 74 65 64 2c 20 20 20 20 2f 2f 20 69 6e  reated,    // in
23f0: 20 4d 53 2d 44 4f 53 20 66 6f 72 6d 61 74 0d 0a   MS-DOS format..
2400: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2410: 56 65 72 73 69 6f 6e 43 72 65 61 74 65 64 2c 0d  VersionCreated,.
2420: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
2430: 20 56 65 72 73 69 6f 6e 45 78 74 72 61 63 74 3b   VersionExtract;
2440: 20 2f 2f 20 76 65 72 73 69 6f 6e 20 6e 65 65 64   // version need
2450: 65 64 20 74 6f 20 65 78 74 72 61 63 74 20 66 69  ed to extract fi
2460: 6c 65 73 0d 0a 20 20 20 20 20 20 20 20 20 20 4c  les..          L
2470: 50 53 54 52 20 41 56 3b 20 20 20 20 20 20 20 20  PSTR AV;        
2480: 20 20 20 20 20 2f 2f 20 6e 6f 74 20 75 73 65 64       // not used
2490: 20 69 6e 20 41 43 4c 0d 0a 20 20 20 20 20 20 20   in ACL..       
24a0: 20 20 20 43 48 41 52 20 20 52 65 73 65 72 76 65     CHAR  Reserve
24b0: 64 5b 36 34 5d 3b 20 20 20 2f 2f 20 66 69 6c 6c  d[64];   // fill
24c0: 65 64 20 77 69 74 68 20 7a 65 72 6f 73 0d 0a 20  ed with zeros.. 
24d0: 20 20 20 20 20 20 20 7d 20 74 41 43 45 41 72 63         } tACEArc
24e0: 68 69 76 65 44 61 74 61 53 74 72 75 63 2c 0d 0a  hiveDataStruc,..
24f0: 20 20 20 20 20 20 20 20 20 2a 70 41 43 45 41 72           *pACEAr
2500: 63 68 69 76 65 44 61 74 61 53 74 72 75 63 3b 0d  chiveDataStruc;.
2510: 0a 0d 0a 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d  .....      //---
2520: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2530: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2540: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2550: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2560: 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 2f 2f 20 46  ----..      // F
2570: 6c 61 67 20 63 6f 6e 73 74 61 6e 74 73 20 66 6f  lag constants fo
2580: 72 20 74 41 43 45 41 72 63 68 69 76 65 44 61 74  r tACEArchiveDat
2590: 61 53 74 72 75 63 2e 46 6c 61 67 73 20 66 69 65  aStruc.Flags fie
25a0: 6c 64 2e 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d  ld...      //---
25b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
25c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
25d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
25e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
25f0: 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20 20 20 20  ----....        
2600: 23 64 65 66 69 6e 65 20 41 43 45 5f 41 52 43 46  #define ACE_ARCF
2610: 4c 41 47 5f 4d 41 49 4e 43 4f 4d 4d 45 4e 54 20  LAG_MAINCOMMENT 
2620: 20 20 20 20 20 20 20 20 32 0d 0a 20 20 20 20 20          2..     
2630: 20 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 41     #define ACE_A
2640: 52 43 46 4c 41 47 5f 53 46 58 20 20 20 20 20 20  RCFLAG_SFX      
2650: 20 20 20 20 20 20 20 20 20 20 20 35 31 32 0d 0a             512..
2660: 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20          #define 
2670: 41 43 45 5f 41 52 43 46 4c 41 47 5f 4c 49 4d 49  ACE_ARCFLAG_LIMI
2680: 54 53 46 58 4a 52 20 20 20 20 20 20 20 20 20 20  TSFXJR          
2690: 31 30 32 34 20 20 2f 2f 20 69 73 20 61 6e 20 53  1024  // is an S
26a0: 46 58 20 61 72 63 68 69 76 65 0d 0a 20 20 20 20  FX archive..    
26b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
26c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
26d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
26e0: 20 20 2f 2f 20 74 68 61 74 20 73 75 70 70 6f 72    // that suppor
26f0: 74 73 20 32 35 36 6b 0d 0a 20 20 20 20 20 20 20  ts 256k..       
2700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2720: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
2730: 2f 20 64 69 63 74 69 6f 6e 61 72 79 20 6f 6e 6c  / dictionary onl
2740: 79 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69  y..        #defi
2750: 6e 65 20 41 43 45 5f 41 52 43 46 4c 41 47 5f 4d  ne ACE_ARCFLAG_M
2760: 55 4c 54 49 56 4f 4c 55 4d 45 20 20 20 20 20 20  ULTIVOLUME      
2770: 20 20 20 32 30 34 38 0d 0a 20 20 20 20 20 20 20     2048..       
2780: 20 23 64 65 66 69 6e 65 20 41 43 45 5f 41 52 43   #define ACE_ARC
2790: 46 4c 41 47 5f 41 56 20 20 20 20 20 20 20 20 20  FLAG_AV         
27a0: 20 20 20 20 20 20 20 20 20 34 30 39 36 20 20 2f           4096  /
27b0: 2f 20 6e 6f 74 20 75 73 65 64 20 69 6e 20 41 43  / not used in AC
27c0: 4c 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69  L..        #defi
27d0: 6e 65 20 41 43 45 5f 41 52 43 46 4c 41 47 5f 52  ne ACE_ARCFLAG_R
27e0: 45 43 4f 56 45 52 59 52 45 43 20 20 20 20 20 20  ECOVERYREC      
27f0: 20 20 20 38 31 39 32 0d 0a 20 20 20 20 20 20 20     8192..       
2800: 20 23 64 65 66 69 6e 65 20 41 43 45 5f 41 52 43   #define ACE_ARC
2810: 46 4c 41 47 5f 4c 4f 43 4b 20 20 20 20 20 20 20  FLAG_LOCK       
2820: 20 20 20 20 20 20 20 20 20 31 36 33 38 34 0d 0a           16384..
2830: 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20          #define 
2840: 41 43 45 5f 41 52 43 46 4c 41 47 5f 53 4f 4c 49  ACE_ARCFLAG_SOLI
2850: 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  D               
2860: 33 32 37 36 38 0d 0a 0d 0a 0d 0a 20 20 20 20 20  32768......     
2870: 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   //-------------
2880: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2890: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
28a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
28b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20  ----------..    
28c0: 20 20 2f 2f 20 48 6f 73 74 20 73 79 73 74 65 6d    // Host system
28d0: 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 65 20   used to create 
28e0: 61 6e 20 61 72 63 68 69 76 65 2e 20 55 73 65 64  an archive. Used
28f0: 20 61 74 0d 0a 20 20 20 20 20 20 2f 2f 20 74 41   at..      // tA
2900: 43 45 41 72 63 68 69 76 65 44 61 74 61 53 74 72  CEArchiveDataStr
2910: 75 63 2e 48 6f 73 74 43 72 65 61 74 65 64 20 66  uc.HostCreated f
2920: 69 65 6c 64 2e 0d 0a 20 20 20 20 20 20 2f 2f 2d  ield...      //-
2930: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2940: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2950: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2960: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2970: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20 20  ------....      
2980: 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 48 4f    #define ACE_HO
2990: 53 54 5f 4d 53 44 4f 53 20 20 20 20 20 20 20 20  ST_MSDOS        
29a0: 20 20 20 20 20 20 20 20 20 20 30 20 20 20 20 20            0     
29b0: 2f 2f 20 61 72 63 68 69 76 65 20 63 72 65 61 74  // archive creat
29c0: 65 64 20 62 79 0d 0a 20 20 20 20 20 20 20 20 20  ed by..         
29d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
29e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
29f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
2a00: 4d 53 44 4f 53 20 41 43 45 20 61 72 63 68 69 76  MSDOS ACE archiv
2a10: 65 72 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66  er..        #def
2a20: 69 6e 65 20 41 43 45 5f 48 4f 53 54 5f 4f 53 32  ine ACE_HOST_OS2
2a30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2a40: 20 20 20 20 31 20 20 20 20 20 2f 2f 20 63 72 65      1     // cre
2a50: 61 74 65 64 20 62 79 20 4f 53 32 20 41 43 45 0d  ated by OS2 ACE.
2a60: 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65  .        #define
2a70: 20 41 43 45 5f 48 4f 53 54 5f 57 49 4e 33 32 20   ACE_HOST_WIN32 
2a80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2a90: 20 32 20 20 20 20 20 2f 2f 20 63 72 65 61 74 65   2     // create
2aa0: 64 20 62 79 20 57 69 6e 33 32 20 41 43 45 0d 0a  d by Win32 ACE..
2ab0: 0d 0a 0d 0a 20 20 20 20 2f 2f c4 c4 c4 c4 c4 c4  ....    //......
2ac0: c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
2ad0: c4 c4 20 20 66 69 6c 65 20 64 61 74 61 20 73 74  ..  file data st
2ae0: 72 75 63 74 75 72 65 20 20 c4 c4 c4 c4 c4 c4 c4  ructure  .......
2af0: c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
2b00: c4 c4 c4 0d 0a 20 20 20 20 2f 2f 20 43 6f 6e 74  .....    // Cont
2b10: 61 69 6e 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e  ains information
2b20: 20 61 62 6f 75 74 20 61 6e 20 61 72 63 68 69 76   about an archiv
2b30: 65 64 20 66 69 6c 65 2e 0d 0a 20 20 20 20 2f 2f  ed file...    //
2b40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2b50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2b60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2b70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2b80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20  ---------....   
2b90: 20 20 20 20 20 74 79 70 65 64 65 66 20 73 74 72       typedef str
2ba0: 75 63 74 20 73 41 43 45 46 69 6c 65 44 61 74 61  uct sACEFileData
2bb0: 53 74 72 75 63 0d 0a 20 20 20 20 20 20 20 20 7b  Struc..        {
2bc0: 0d 0a 20 20 20 20 20 20 20 20 20 20 4c 50 53 54  ..          LPST
2bd0: 52 20 53 6f 75 72 63 65 46 69 6c 65 4e 61 6d 65  R SourceFileName
2be0: 3b 20 20 20 20 20 20 2f 2f 20 72 65 6c 61 74 69  ;      // relati
2bf0: 76 65 20 66 69 6c 65 20 6e 61 6d 65 0d 0a 20 20  ve file name..  
2c00: 20 20 20 20 20 20 20 20 4c 50 53 54 52 20 44 65          LPSTR De
2c10: 73 74 69 6e 61 74 69 6f 6e 46 69 6c 65 4e 61 6d  stinationFileNam
2c20: 65 3b 20 2f 2f 20 61 62 73 6f 6c 75 74 65 20 66  e; // absolute f
2c30: 69 6c 65 20 6e 61 6d 65 3b 0d 0a 20 20 20 20 20  ile name;..     
2c40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2c50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2c60: 2f 2f 20 76 61 6c 69 64 20 66 6f 72 20 61 64 64  // valid for add
2c70: 20 61 6e 64 20 65 78 74 72 61 63 74 20 6f 6e 6c   and extract onl
2c80: 79 21 0d 0a 20 20 20 20 20 20 20 20 20 20 55 4c  y!..          UL
2c90: 4f 4e 47 20 46 6c 61 67 73 2c 20 20 20 20 20 20  ONG Flags,      
2ca0: 20 20 20 20 20 20 20 20 20 2f 2f 20 73 65 65 20           // see 
2cb0: 41 43 45 5f 46 49 4c 45 46 4c 41 47 20 64 65 66  ACE_FILEFLAG def
2cc0: 69 6e 65 73 20 62 65 6c 6f 77 0d 0a 20 20 20 20  ines below..    
2cd0: 20 20 20 20 20 20 20 20 20 20 20 20 43 52 43 33              CRC3
2ce0: 32 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  2,..            
2cf0: 20 20 20 20 4d 65 74 68 6f 64 2c 20 20 20 20 20      Method,     
2d00: 20 20 20 20 20 20 20 20 20 2f 2f 20 30 3d 73 74           // 0=st
2d10: 6f 72 65 64 2c 20 31 3d 4c 5a 37 37 2c 20 32 3d  ored, 1=LZ77, 2=
2d20: 56 32 30 43 6f 6d 70 72 65 73 73 69 6f 6e 0d 0a  V20Compression..
2d30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2d40: 44 69 63 74 69 6f 6e 61 72 79 3b 20 20 20 20 20  Dictionary;     
2d50: 20 20 20 20 20 2f 2f 20 44 69 63 74 69 6f 6e 61       // Dictiona
2d60: 72 79 53 69 7a 65 20 3d 20 32 5e 44 69 63 74 69  rySize = 2^Dicti
2d70: 6f 6e 61 72 79 0d 0a 20 20 20 20 20 20 20 20 20  onary..         
2d80: 20 44 57 4f 52 44 4c 4f 4e 47 0d 0a 20 20 20 20   DWORDLONG..    
2d90: 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6d 70              Comp
2da0: 72 65 73 73 65 64 53 69 7a 65 2c 0d 0a 20 20 20  ressedSize,..   
2db0: 20 20 20 20 20 20 20 20 20 20 20 20 20 53 69 7a               Siz
2dc0: 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 55 4c  e;..          UL
2dd0: 4f 4e 47 20 54 69 6d 65 2c 0d 0a 20 20 20 20 20  ONG Time,..     
2de0: 20 20 20 20 20 20 20 20 20 20 20 41 74 74 72 69             Attri
2df0: 62 75 74 65 73 3b 0d 0a 20 20 20 20 20 20 20 20  butes;..        
2e00: 20 20 43 48 41 52 20 20 52 65 73 65 72 76 65 64    CHAR  Reserved
2e10: 5b 36 34 5d 3b 20 20 20 20 20 20 20 20 2f 2f 20  [64];        // 
2e20: 66 69 6c 6c 65 64 20 77 69 74 68 20 7a 65 72 6f  filled with zero
2e30: 73 0d 0a 20 20 20 20 20 20 20 20 7d 20 74 41 43  s..        } tAC
2e40: 45 46 69 6c 65 44 61 74 61 53 74 72 75 63 2c 0d  EFileDataStruc,.
2e50: 0a 20 20 20 20 20 20 20 20 20 2a 70 41 43 45 46  .         *pACEF
2e60: 69 6c 65 44 61 74 61 53 74 72 75 63 3b 0d 0a 0d  ileDataStruc;...
2e70: 0a 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d  ...      //-----
2e80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2e90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2ea0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2eb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2ec0: 2d 2d 0d 0a 20 20 20 20 20 20 2f 2f 20 46 6c 61  --..      // Fla
2ed0: 67 20 63 6f 6e 73 74 61 6e 74 73 20 66 6f 72 20  g constants for 
2ee0: 74 68 65 20 74 41 43 45 46 69 6c 65 44 61 74 61  the tACEFileData
2ef0: 2e 46 6c 61 67 73 20 66 69 65 6c 64 2e 0d 0a 20  .Flags field... 
2f00: 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
2f10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2f20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2f30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2f40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
2f50: 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e  ..        #defin
2f60: 65 20 41 43 45 5f 46 49 4c 45 46 4c 41 47 5f 46  e ACE_FILEFLAG_F
2f70: 49 4c 45 43 4f 4d 4d 45 4e 54 20 20 20 20 20 20  ILECOMMENT      
2f80: 20 20 32 20 20 20 20 20 2f 2f 20 66 69 6c 65 20    2     // file 
2f90: 68 61 73 20 63 6f 6d 6d 65 6e 74 0d 0a 20 20 20  has comment..   
2fa0: 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45       #define ACE
2fb0: 5f 46 49 4c 45 46 4c 41 47 5f 53 50 4c 49 54 42  _FILEFLAG_SPLITB
2fc0: 45 46 4f 52 45 20 20 20 20 20 20 20 20 34 30 39  EFORE        409
2fd0: 36 20 20 2f 2f 20 63 6f 6e 74 69 6e 75 65 64 20  6  // continued 
2fe0: 66 72 6f 6d 0d 0a 20 20 20 20 20 20 20 20 20 20  from..          
2ff0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3010: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 70              // p
3020: 72 65 76 69 6f 75 73 20 76 6f 6c 75 6d 65 0d 0a  revious volume..
3030: 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20          #define 
3040: 41 43 45 5f 46 49 4c 45 46 4c 41 47 5f 53 50 4c  ACE_FILEFLAG_SPL
3050: 49 54 41 46 54 45 52 20 20 20 20 20 20 20 20 20  ITAFTER         
3060: 38 31 39 32 20 20 2f 2f 20 63 6f 6e 74 69 6e 75  8192  // continu
3070: 65 64 20 6f 6e 0d 0a 20 20 20 20 20 20 20 20 20  ed on..         
3080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
30a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
30b0: 6e 65 78 74 20 76 6f 6c 75 6d 65 0d 0a 20 20 20  next volume..   
30c0: 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45       #define ACE
30d0: 5f 46 49 4c 45 46 4c 41 47 5f 50 41 53 53 57 4f  _FILEFLAG_PASSWO
30e0: 52 44 20 20 20 20 20 20 20 20 20 20 20 31 36 33  RD           163
30f0: 38 34 20 2f 2f 20 69 73 20 65 6e 63 72 79 70 74  84 // is encrypt
3100: 65 64 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66  ed..        #def
3110: 69 6e 65 20 41 43 45 5f 46 49 4c 45 46 4c 41 47  ine ACE_FILEFLAG
3120: 5f 53 4f 4c 49 44 20 20 20 20 20 20 20 20 20 20  _SOLID          
3130: 20 20 20 20 33 32 37 36 38 20 2f 2f 20 75 73 65      32768 // use
3140: 73 20 64 61 74 61 20 6f 66 20 70 72 65 76 69 6f  s data of previo
3150: 75 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  us..            
3160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3180: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 66 69 6c            // fil
3190: 65 73 20 28 73 6f 6c 69 64 20 6d 6f 64 65 29 0d  es (solid mode).
31a0: 0a 0d 0a 0d 0a 20 20 20 20 2f 2f c4 c4 c4 c4 c4  .....    //.....
31b0: c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
31c0: c4 c4 c4 20 20 63 6f 70 79 20 69 6e 66 6f 20 73  ...  copy info s
31d0: 74 72 75 63 74 75 72 65 20 20 c4 c4 c4 c4 c4 c4  tructure  ......
31e0: c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
31f0: c4 c4 c4 c4 0d 0a 20 20 20 20 2f 2f 20 49 73 20  ......    // Is 
3200: 70 61 73 73 65 64 20 74 6f 20 41 43 45 49 6e 66  passed to ACEInf
3210: 6f 43 61 6c 6c 62 61 63 6b 50 72 6f 63 20 77 69  oCallbackProc wi
3220: 74 68 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f  th ACE_CALLBACK_
3230: 49 4e 46 4f 5f 43 4f 50 59 20 61 73 20 63 6f 64  INFO_COPY as cod
3240: 65 2e 0d 0a 20 20 20 20 2f 2f 20 49 6e 66 6f 72  e...    // Infor
3250: 6d 73 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 61  ms application a
3260: 62 6f 75 74 20 74 68 65 20 70 72 6f 67 72 65 73  bout the progres
3270: 73 20 6f 66 20 63 6f 70 79 69 6e 67 20 65 69 74  s of copying eit
3280: 68 65 72 20 61 6e 20 61 72 63 68 69 76 65 20 74  her an archive t
3290: 6f 0d 0a 20 20 20 20 2f 2f 20 61 20 74 65 6d 70  o..    // a temp
32a0: 6f 72 61 72 79 20 61 72 63 68 69 76 65 2c 20 6f  orary archive, o
32b0: 72 20 61 20 74 65 6d 70 6f 72 61 72 79 20 61 72  r a temporary ar
32c0: 63 68 69 76 65 20 62 61 63 6b 20 74 6f 20 61 20  chive back to a 
32d0: 6e 6f 72 6d 61 6c 20 61 72 63 68 69 76 65 2e 0d  normal archive..
32e0: 0a 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d  .    //---------
32f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3300: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3310: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3330: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 74 79 70 65  ....        type
3340: 64 65 66 20 73 74 72 75 63 74 20 73 41 43 45 43  def struct sACEC
3350: 6f 70 79 49 6e 66 6f 53 74 72 75 63 0d 0a 20 20  opyInfoStruc..  
3360: 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20        {..       
3370: 20 20 20 4c 50 53 54 52 20 53 6f 75 72 63 65 46     LPSTR SourceF
3380: 69 6c 65 4e 61 6d 65 2c 20 20 20 20 20 20 2f 2f  ileName,      //
3390: 20 73 6f 75 72 63 65 20 66 69 6c 65 0d 0a 20 20   source file..  
33a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 65                De
33b0: 73 74 69 6e 61 74 69 6f 6e 46 69 6c 65 4e 61 6d  stinationFileNam
33c0: 65 3b 20 2f 2f 20 74 68 65 20 66 69 6c 65 20 63  e; // the file c
33d0: 6f 70 79 69 6e 67 20 74 68 65 20 73 6f 75 72 63  opying the sourc
33e0: 65 20 74 6f 0d 0a 20 20 20 20 20 20 20 20 20 20  e to..          
33f0: 44 57 4f 52 44 4c 4f 4e 47 0d 0a 20 20 20 20 20  DWORDLONG..     
3400: 20 20 20 20 20 20 20 20 20 20 20 43 6f 70 69 65             Copie
3410: 64 42 79 74 65 73 2c 20 20 20 20 20 20 20 20 20  dBytes,         
3420: 2f 2f 20 62 79 74 65 73 20 61 6c 72 65 61 64 79  // bytes already
3430: 20 63 6f 70 69 65 64 0d 0a 20 20 20 20 20 20 20   copied..       
3440: 20 20 20 20 20 20 20 20 20 46 69 6c 65 53 69 7a           FileSiz
3450: 65 3b 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f  e;            //
3460: 20 73 6f 75 72 63 65 20 66 69 6c 65 20 73 69 7a   source file siz
3470: 65 0d 0a 20 20 20 20 20 20 20 20 20 20 43 48 41  e..          CHA
3480: 52 20 20 52 65 73 65 72 76 65 64 5b 36 34 5d 3b  R  Reserved[64];
3490: 20 20 20 20 20 20 20 20 2f 2f 20 66 69 6c 6c 65          // fille
34a0: 64 20 77 69 74 68 20 7a 65 72 6f 73 0d 0a 20 20  d with zeros..  
34b0: 20 20 20 20 20 20 7d 20 74 41 43 45 43 6f 70 79        } tACECopy
34c0: 49 6e 66 6f 53 74 72 75 63 2c 0d 0a 20 20 20 20  InfoStruc,..    
34d0: 20 20 20 20 20 2a 70 41 43 45 43 6f 70 79 49 6e       *pACECopyIn
34e0: 66 6f 53 74 72 75 63 3b 0d 0a 0d 0a 0d 0a 20 20  foStruc;......  
34f0: 20 20 2f 2f c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4    //............
3500: c4 c4 c4 c4 c4 c4 c4 c4 20 20 6f 70 65 72 61 74  ........  operat
3510: 69 6f 6e 20 70 72 6f 67 72 65 73 73 20 73 74 72  ion progress str
3520: 75 63 74 75 72 65 20 20 c4 c4 c4 c4 c4 c4 c4 c4  ucture  ........
3530: c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 0d 0a 20  ............... 
3540: 20 20 20 2f 2f 20 55 73 65 64 20 74 6f 20 73 74     // Used to st
3550: 61 74 65 20 74 68 65 20 70 72 6f 67 72 65 73 73  ate the progress
3560: 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20   of the current 
3570: 6f 70 65 72 61 74 69 6f 6e 2e 0d 0a 20 20 20 20  operation...    
3580: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
3590: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
35a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
35b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
35c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20  -----------.... 
35d0: 20 20 20 20 20 20 20 74 79 70 65 64 65 66 20 73         typedef s
35e0: 74 72 75 63 74 20 73 41 43 45 50 72 6f 67 72 65  truct sACEProgre
35f0: 73 73 44 61 74 61 53 74 72 75 63 0d 0a 20 20 20  ssDataStruc..   
3600: 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20       {..        
3610: 20 20 4c 50 53 54 52 20 20 20 20 20 41 64 64 72    LPSTR     Addr
3620: 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;               
3630: 2f 2f 20 61 64 64 72 65 73 73 20 6f 66 20 75 6e  // address of un
3640: 63 6f 6d 70 72 65 73 73 65 64 20 64 61 74 61 20  compressed data 
3650: 62 6c 6f 63 6b 0d 0a 20 20 20 20 20 20 20 20 20  block..         
3660: 20 55 4c 4f 4e 47 20 20 20 20 20 53 69 7a 65 3b   ULONG     Size;
3670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
3680: 2f 20 73 69 7a 65 20 6f 66 20 75 6e 63 6f 6d 70  / size of uncomp
3690: 72 65 73 73 65 64 20 64 61 74 61 20 62 6c 6f 63  ressed data bloc
36a0: 6b 0d 0a 20 20 20 20 20 20 20 20 20 20 44 57 4f  k..          DWO
36b0: 52 44 4c 4f 4e 47 20 54 6f 74 61 6c 50 72 6f 63  RDLONG TotalProc
36c0: 65 73 73 65 64 53 69 7a 65 3b 20 2f 2f 20 63 6f  essedSize; // co
36d0: 75 6e 74 65 64 20 62 79 20 44 6c 6c 3a 0d 0a 20  unted by Dll:.. 
36e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
36f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3700: 20 20 20 20 20 20 20 2f 2f 20 74 6f 74 61 6c 20         // total 
3710: 75 6e 63 6f 6d 70 72 65 73 73 65 64 20 62 79 74  uncompressed byt
3720: 65 73 20 70 72 6f 63 65 73 73 65 64 0d 0a 20 20  es processed..  
3730: 20 20 20 20 20 20 20 20 44 57 4f 52 44 4c 4f 4e          DWORDLON
3740: 47 20 54 6f 74 61 6c 43 6f 6d 70 72 65 73 73 65  G TotalCompresse
3750: 64 53 69 7a 65 3b 2f 2f 20 74 6f 74 61 6c 20 63  dSize;// total c
3760: 6f 6d 70 72 65 73 73 65 64 20 62 79 74 65 73 20  ompressed bytes 
3770: 70 72 6f 63 65 73 73 65 64 0d 0a 20 20 20 20 20  processed..     
3780: 20 20 20 20 20 44 57 4f 52 44 4c 4f 4e 47 20 54       DWORDLONG T
3790: 6f 74 61 6c 53 69 7a 65 3b 20 20 20 20 20 20 20  otalSize;       
37a0: 20 20 20 2f 2f 20 74 6f 74 61 6c 20 75 6e 63 6f     // total unco
37b0: 6d 70 72 65 73 73 65 64 20 62 79 74 65 73 20 74  mpressed bytes t
37c0: 6f 20 70 72 6f 63 65 73 73 0d 0a 20 20 20 20 20  o process..     
37d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
37e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
37f0: 20 20 20 2f 2f 20 28 73 75 6d 20 6f 66 20 61 6c     // (sum of al
3800: 6c 20 6f 72 69 67 69 6e 61 6c 20 66 69 6c 65 20  l original file 
3810: 73 69 7a 65 73 29 0d 0a 20 20 20 20 20 20 20 20  sizes)..        
3820: 20 20 44 57 4f 52 44 4c 4f 4e 47 20 46 69 6c 65    DWORDLONG File
3830: 50 72 6f 63 65 73 73 65 64 53 69 7a 65 3b 20 20  ProcessedSize;  
3840: 2f 2f 20 75 6e 63 6f 6d 70 72 2e 20 62 79 74 65  // uncompr. byte
3850: 73 20 6f 66 20 66 69 6c 65 20 70 72 6f 63 65 73  s of file proces
3860: 73 65 64 0d 0a 20 20 20 20 20 20 20 20 20 20 44  sed..          D
3870: 57 4f 52 44 4c 4f 4e 47 20 46 69 6c 65 43 6f 6d  WORDLONG FileCom
3880: 70 72 65 73 73 65 64 53 69 7a 65 3b 20 2f 2f 20  pressedSize; // 
3890: 63 6f 6d 70 72 2e 20 62 79 74 65 73 20 6f 66 20  compr. bytes of 
38a0: 66 69 6c 65 20 70 72 6f 63 65 73 73 65 64 0d 0a  file processed..
38b0: 20 20 20 20 20 20 20 20 20 20 44 57 4f 52 44 4c            DWORDL
38c0: 4f 4e 47 20 46 69 6c 65 53 69 7a 65 3b 20 20 20  ONG FileSize;   
38d0: 20 20 20 20 20 20 20 20 2f 2f 20 75 6e 63 6f 6d          // uncom
38e0: 70 72 65 73 73 65 64 20 66 69 6c 65 20 73 69 7a  pressed file siz
38f0: 65 0d 0a 20 20 20 20 20 20 20 20 7d 20 74 41 43  e..        } tAC
3900: 45 50 72 6f 67 72 65 73 73 44 61 74 61 53 74 72  EProgressDataStr
3910: 75 63 2c 0d 0a 20 20 20 20 20 20 20 20 20 2a 70  uc,..         *p
3920: 41 43 45 50 72 6f 67 72 65 73 73 44 61 74 61 53  ACEProgressDataS
3930: 74 72 75 63 3b 0d 0a 0d 0a 0d 0a 20 20 2f 2f cd  truc;......  //.
3940: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
3950: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
3960: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
3970: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
3980: cd cd cd cd cd cd cd cd cd cd 0d 0a 20 20 2f 2f  ............  //
3990: 3d 3d 3d 3d 3d 3d 3d 3d 2d 2d 2d 20 20 50 61 72  ========---  Par
39a0: 74 20 31 2e 32 3a 20 73 74 72 75 63 74 75 72 65  t 1.2: structure
39b0: 73 20 75 73 65 64 20 69 6e 20 66 75 6e 63 74 69  s used in functi
39c0: 6f 6e 20 73 74 72 75 63 74 75 72 65 73 20 20 2d  on structures  -
39d0: 2d 2d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 20 20 2f  --=========..  /
39e0: 2f cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  /...............
39f0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
3a00: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
3a10: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
3a20: cd cd cd cd cd cd cd cd cd cd cd cd 0d 0a 0d 0a  ................
3a30: 20 20 20 20 2f 2f c4 c4 c4 c4 c4 c4 c4 c4 c4 c4      //..........
3a40: c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 20  ............... 
3a50: 20 66 69 6c 65 20 6c 69 73 74 20 73 74 72 75 63   file list struc
3a60: 74 75 72 65 20 20 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ture  ..........
3a70: c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 0d  ................
3a80: 0a 20 20 20 20 2f 2f 20 54 68 69 73 20 73 74 72  .    // This str
3a90: 75 63 74 75 72 65 20 69 73 20 75 73 65 64 20 69  ucture is used i
3aa0: 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 73  n the function s
3ab0: 70 65 63 69 66 69 63 20 73 74 72 75 63 74 75 72  pecific structur
3ac0: 65 73 2e 0d 0a 20 20 20 20 2f 2f 20 54 68 65 20  es...    // The 
3ad0: 61 70 70 6c 69 63 61 74 69 6f 6e 20 68 61 73 20  application has 
3ae0: 74 6f 20 75 73 65 20 74 68 69 73 20 73 74 72 75  to use this stru
3af0: 63 74 75 72 65 20 74 6f 20 69 6e 64 69 63 61 74  cture to indicat
3b00: 65 20 77 68 69 63 68 20 66 69 6c 65 73 0d 0a 20  e which files.. 
3b10: 20 20 20 2f 2f 20 68 61 76 65 20 74 6f 20 62 65     // have to be
3b20: 20 70 72 6f 63 65 73 73 65 64 20 62 79 20 74 68   processed by th
3b30: 65 20 44 4c 4c 2e 0d 0a 20 20 20 20 2f 2f 2d 2d  e DLL...    //--
3b40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3b50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3b60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3b70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3b80: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20  -------....     
3b90: 20 20 20 74 79 70 65 64 65 66 20 73 74 72 75 63     typedef struc
3ba0: 74 20 73 41 43 45 46 69 6c 65 73 53 74 72 75 63  t sACEFilesStruc
3bb0: 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20  ..        {..   
3bc0: 20 20 20 20 20 20 20 4c 50 53 54 52 20 53 6f 75         LPSTR Sou
3bd0: 72 63 65 44 69 72 3b 20 20 20 20 20 20 20 20 20  rceDir;         
3be0: 20 20 20 2f 2f 20 6d 61 79 62 65 20 61 20 72 65     // maybe a re
3bf0: 61 6c 20 6f 72 20 61 6e 20 61 72 63 68 69 76 65  al or an archive
3c00: 20 64 69 72 65 63 74 6f 72 79 0d 0a 20 20 20 20   directory..    
3c10: 20 20 20 20 20 20 4c 50 53 54 52 20 46 69 6c 65        LPSTR File
3c20: 4c 69 73 74 3b 20 20 20 20 20 20 20 20 20 20 20  List;           
3c30: 20 20 2f 2f 20 70 6f 69 6e 74 65 72 20 74 6f 20    // pointer to 
3c40: 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 74 6f  list of files to
3c50: 20 70 72 6f 63 65 73 73 3b 0d 0a 20 20 20 20 20   process;..     
3c60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3c80: 20 2f 2f 20 7a 65 72 6f 2d 74 65 72 6d 69 6e 61   // zero-termina
3c90: 74 65 64 3b 20 66 69 6c 65 73 20 68 61 76 65 20  ted; files have 
3ca0: 74 6f 20 62 65 0d 0a 20 20 20 20 20 20 20 20 20  to be..         
3cb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3cc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
3cd0: 73 65 70 61 72 61 74 65 64 20 62 79 20 63 61 72  separated by car
3ce0: 72 69 61 67 65 2d 72 65 74 75 72 6e 20 28 30 78  riage-return (0x
3cf0: 64 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  d);..           
3d00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3d10: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 46 69             // Fi
3d20: 6c 65 4c 69 73 74 20 6d 61 79 2f 77 69 6c 6c 20  leList may/will 
3d30: 62 65 20 6d 6f 64 69 66 69 65 64 20 62 79 20 74  be modified by t
3d40: 68 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  he..            
3d50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3d60: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 44 6c 6c            // Dll
3d70: 3b 20 69 66 20 6e 6f 74 68 69 6e 67 20 69 73 20  ; if nothing is 
3d80: 73 70 65 63 69 66 69 65 64 2c 20 22 2a 22 0d 0a  specified, "*"..
3d90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3da0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3db0: 20 20 20 20 20 20 2f 2f 20 77 69 6c 6c 20 62 65        // will be
3dc0: 20 75 73 65 64 0d 0a 20 20 20 20 20 20 20 20 20   used..         
3dd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
3df0: 28 61 74 74 65 6e 74 69 6f 6e 20 61 74 20 41 43  (attention at AC
3e00: 45 44 65 6c 65 74 65 21 21 29 0d 0a 20 20 20 20  EDelete!!)..    
3e10: 20 20 20 20 20 20 4c 50 53 54 52 20 45 78 63 6c        LPSTR Excl
3e20: 75 64 65 4c 69 73 74 3b 20 20 20 20 20 20 20 20  udeList;        
3e30: 20 20 2f 2f 20 6c 69 73 74 20 6f 66 20 66 69 6c    // list of fil
3e40: 65 73 20 74 6f 20 65 78 63 6c 75 64 65 20 66 72  es to exclude fr
3e50: 6f 6d 20 70 72 6f 63 65 73 73 0d 0a 20 20 20 20  om process..    
3e60: 20 20 20 20 20 20 42 4f 4f 4c 20 20 46 75 6c 6c        BOOL  Full
3e70: 4d 61 74 63 68 3b 20 20 20 20 20 20 20 20 20 20  Match;          
3e80: 20 20 2f 2f 20 73 70 65 63 69 66 69 63 61 74 69    // specificati
3e90: 6f 6e 73 20 6d 75 73 74 20 66 75 6c 6c 79 20 6d  ons must fully m
3ea0: 61 74 63 68 0d 0a 20 20 20 20 20 20 20 20 20 20  atch..          
3eb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3ec0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 28              // (
3ed0: 6e 6f 20 66 69 6c 65 73 20 77 69 74 68 20 74 68  no files with th
3ee0: 65 20 73 61 6d 65 20 6e 61 6d 65 20 69 6e 0d 0a  e same name in..
3ef0: 09 09 09 09 20 20 20 20 20 20 2f 2f 20 20 73 75  ....      //  su
3f00: 62 64 69 72 73 20 61 72 65 20 70 72 6f 63 65 73  bdirs are proces
3f10: 73 65 64 29 0d 0a 20 20 20 20 20 20 20 20 20 20  sed)..          
3f20: 42 4f 4f 4c 20 20 52 65 63 75 72 73 65 53 75 62  BOOL  RecurseSub
3f30: 44 69 72 73 3b 20 20 20 20 20 20 20 2f 2f 20 72  Dirs;       // r
3f40: 65 63 75 72 73 65 20 73 75 62 64 69 72 65 63 74  ecurse subdirect
3f50: 6f 72 69 65 73 0d 0a 20 20 20 20 20 20 20 20 20  ories..         
3f60: 20 20 09 09 09 20 20 20 20 20 20 2f 2f 20 28 76    ...      // (v
3f70: 61 6c 69 64 20 66 6f 72 20 61 64 64 20 6f 70 65  alid for add ope
3f80: 72 61 74 69 6f 6e 73 20 6f 6e 6c 79 29 0d 0a 20  rations only).. 
3f90: 20 20 20 20 20 20 20 20 20 43 48 41 52 20 20 52           CHAR  R
3fa0: 65 73 65 72 76 65 64 5b 36 30 5d 20 3b 20 20 20  eserved[60] ;   
3fb0: 20 20 20 20 20 20 2f 2f 20 68 61 73 20 74 6f 20        // has to 
3fc0: 62 65 20 66 69 6c 6c 65 64 20 77 69 74 68 20 7a  be filled with z
3fd0: 65 72 6f 73 0d 0a 20 20 20 20 20 20 20 20 20 20  eros..          
3fe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3ff0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 66              // f
4000: 6f 72 20 66 75 74 75 72 65 3a 20 70 6f 73 73 69  or future: possi
4010: 62 6c 79 20 69 6e 2d 2f 65 78 63 6c 75 64 69 6e  bly in-/excludin
4020: 67 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  g..             
4030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4040: 20 20 20 20 20 20 20 20 20 2f 2f 20 66 69 6c 65           // file
4050: 20 61 74 74 72 69 62 75 74 65 73 20 61 6e 64 20   attributes and 
4060: 64 61 74 65 2f 74 69 6d 65 20 72 61 6e 67 65 0d  date/time range.
4070: 0a 20 20 20 20 20 20 20 20 7d 20 74 41 43 45 46  .        } tACEF
4080: 69 6c 65 73 53 74 72 75 63 2c 0d 0a 20 20 20 20  ilesStruc,..    
4090: 20 20 20 20 20 2a 70 41 43 45 46 69 6c 65 73 53       *pACEFilesS
40a0: 74 72 75 63 3b 0d 0a 0d 0a 0d 0a 20 20 20 20 2f  truc;......    /
40b0: 2f c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  /...............
40c0: c4 c4 c4 c4 c4 c4 20 20 56 32 2e 30 20 63 6f 6d  ......  V2.0 com
40d0: 70 72 65 73 73 69 6f 6e 20 73 74 72 75 63 74 75  pression structu
40e0: 72 65 20 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  re .............
40f0: c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 0d 0a 20 20 20 20  ............    
4100: 2f 2f 20 53 70 65 63 69 66 69 65 73 20 77 68 65  // Specifies whe
4110: 74 68 65 72 20 74 6f 20 75 73 65 20 76 32 2e 30  ther to use v2.0
4120: 20 63 6f 6d 70 72 65 73 73 69 6f 6e 20 6f 72 20   compression or 
4130: 6e 6f 74 2e 20 49 66 20 79 6f 75 20 75 73 65 20  not. If you use 
4140: 76 32 2e 30 0d 0a 20 20 20 20 2f 2f 20 63 6f 6d  v2.0..    // com
4150: 70 72 65 73 73 69 6f 6e 20 79 6f 75 20 63 61 6e  pression you can
4160: 20 61 6c 73 6f 20 73 70 65 63 69 66 79 20 77 68   also specify wh
4170: 69 63 68 20 76 32 2e 30 20 63 6f 6d 70 72 65 73  ich v2.0 compres
4180: 73 69 6f 6e 20 74 65 63 68 6e 69 71 75 65 73 0d  sion techniques.
4190: 0a 20 20 20 20 2f 2f 20 79 6f 75 20 77 61 6e 74  .    // you want
41a0: 20 74 6f 20 75 73 65 2e 20 28 41 43 45 20 6f 6e   to use. (ACE on
41b0: 6c 79 29 0d 0a 20 20 20 20 2f 2f 2d 2d 2d 2d 2d  ly)..    //-----
41c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
41d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
41e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
41f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4200: 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20 20 20 20  ----....        
4210: 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 73  typedef struct s
4220: 41 43 45 56 32 30 43 6f 6d 70 72 65 73 73 69 6f  ACEV20Compressio
4230: 6e 53 74 72 75 63 0d 0a 20 20 20 20 20 20 20 20  nStruc..        
4240: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 42 4f 4f  {..          BOO
4250: 4c 20 20 44 6f 55 73 65 2c 20 20 20 20 20 20 20  L  DoUse,       
4260: 20 20 20 20 20 20 20 20 20 2f 2f 20 69 66 20 44           // if D
4270: 6f 55 73 65 3d 31 20 61 6e 64 20 61 6c 6c 20 6f  oUse=1 and all o
4280: 74 68 65 72 20 66 69 65 6c 64 73 20 61 72 65 0d  ther fields are.
4290: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
42a0: 20 44 6f 55 73 65 44 65 6c 74 61 2c 20 20 20 20   DoUseDelta,    
42b0: 20 20 20 20 20 20 20 2f 2f 20 7a 65 72 6f 2c 20         // zero, 
42c0: 74 68 65 6e 20 61 6c 6c 20 76 32 2e 30 20 63 6f  then all v2.0 co
42d0: 6d 70 72 65 73 73 69 6f 6e 0d 0a 20 20 20 20 20  mpression..     
42e0: 20 20 20 20 20 20 20 20 20 20 20 44 6f 55 73 65             DoUse
42f0: 45 78 65 2c 20 20 20 20 20 20 20 20 20 20 20 20  Exe,            
4300: 20 2f 2f 20 74 65 63 68 6e 69 71 75 65 73 20 77   // techniques w
4310: 69 6c 6c 20 62 65 20 75 73 65 64 0d 0a 20 20 20  ill be used..   
4320: 20 20 20 20 20 20 20 20 20 20 20 20 20 44 6f 55               DoU
4330: 73 65 50 69 63 2c 0d 0a 20 20 20 20 20 20 20 20  sePic,..        
4340: 20 20 20 20 20 20 20 20 44 6f 55 73 65 53 6f 75          DoUseSou
4350: 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 43  nd;..          C
4360: 48 41 52 20 20 52 65 73 65 72 76 65 64 5b 36 34  HAR  Reserved[64
4370: 5d 3b 20 20 20 20 20 20 20 20 20 2f 2f 20 68 61  ];         // ha
4380: 73 20 74 6f 20 62 65 20 66 69 6c 6c 65 64 20 77  s to be filled w
4390: 69 74 68 20 7a 65 72 6f 73 0d 0a 20 20 20 20 20  ith zeros..     
43a0: 20 20 20 7d 20 74 41 43 45 56 32 30 43 6f 6d 70     } tACEV20Comp
43b0: 72 65 73 73 69 6f 6e 53 74 72 75 63 2c 0d 0a 20  ressionStruc,.. 
43c0: 20 20 20 20 20 20 20 20 2a 70 41 43 45 56 32 30          *pACEV20
43d0: 43 6f 6d 70 72 65 73 73 69 6f 6e 53 74 72 75 63  CompressionStruc
43e0: 3b 0d 0a 0d 0a 0d 0a 20 20 20 20 2f 2f c4 c4 c4  ;......    //...
43f0: c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
4400: 20 20 63 6f 6d 70 72 65 73 73 69 6f 6e 20 70 61    compression pa
4410: 72 61 6d 65 74 65 72 20 73 74 72 75 63 74 75 72  rameter structur
4420: 65 20 20 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  e  .............
4430: c4 c4 c4 c4 c4 c4 0d 0a 20 20 20 20 2f 2f 20 55  ........    // U
4440: 73 65 64 20 69 6e 20 74 41 43 45 41 64 64 53 74  sed in tACEAddSt
4450: 72 75 63 20 61 6e 64 20 74 41 43 45 44 65 6c 65  ruc and tACEDele
4460: 74 65 53 74 72 75 63 2e 20 28 41 43 45 20 6f 6e  teStruc. (ACE on
4470: 6c 79 29 0d 0a 20 20 20 20 2f 2f 2d 2d 2d 2d 2d  ly)..    //-----
4480: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4490: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
44a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
44b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
44c0: 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20 20 20 20  ----....        
44d0: 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 73  typedef struct s
44e0: 41 43 45 43 6f 6d 70 72 65 73 73 50 61 72 61 6d  ACECompressParam
44f0: 73 53 74 72 75 63 0d 0a 20 20 20 20 20 20 20 20  sStruc..        
4500: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 55 4c 4f  {..          ULO
4510: 4e 47 20 4c 65 76 65 6c 2c 20 20 20 20 20 20 20  NG Level,       
4520: 20 20 20 20 20 20 20 20 20 2f 2f 20 73 65 65 20           // see 
4530: 41 43 45 5f 4c 45 56 45 4c 20 63 6f 6e 73 74 61  ACE_LEVEL consta
4540: 6e 74 73 20 62 65 6c 6f 77 0d 0a 20 20 20 20 20  nts below..     
4550: 20 20 20 20 20 20 20 20 20 20 20 44 69 63 74 69             Dicti
4560: 6f 6e 61 72 79 3b 20 20 20 20 20 20 20 20 20 20  onary;          
4570: 20 2f 2f 20 31 35 28 33 32 6b 29 2e 2e 32 32 28   // 15(32k)..22(
4580: 34 4d 62 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20  4Mb)....        
4590: 20 20 74 41 43 45 56 32 30 43 6f 6d 70 72 65 73    tACEV20Compres
45a0: 73 69 6f 6e 53 74 72 75 63 20 20 20 20 20 2f 2f  sionStruc     //
45b0: 20 69 6e 64 69 63 61 74 65 73 20 69 66 20 28 6f   indicates if (o
45c0: 72 20 77 68 69 63 68 29 20 76 32 2e 30 0d 0a 20  r which) v2.0.. 
45d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 56                 V
45e0: 32 30 43 6f 6d 70 72 65 73 73 69 6f 6e 3b 20 20  20Compression;  
45f0: 20 20 20 20 20 2f 2f 20 63 6f 6d 70 72 65 73 73       // compress
4600: 69 6f 6e 20 74 65 63 68 6e 69 71 75 65 73 20 73  ion techniques s
4610: 68 61 6c 6c 20 62 65 20 75 73 65 64 0d 0a 0d 0a  hall be used....
4620: 20 20 20 20 20 20 20 20 20 20 42 4f 4f 4c 20 20            BOOL  
4630: 54 65 73 74 41 66 74 65 72 3b 20 20 20 20 20 20  TestAfter;      
4640: 20 20 20 20 20 20 2f 2f 20 6d 61 6b 65 20 61 20        // make a 
4650: 74 65 73 74 20 66 6f 72 20 43 52 43 20 63 68 65  test for CRC che
4660: 63 6b 20 65 72 72 6f 72 73 0d 0a 20 20 20 20 20  ck errors..     
4670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4680: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4690: 20 2f 2f 20 61 66 74 65 72 20 63 6f 6d 70 72 65   // after compre
46a0: 73 73 69 6f 6e 0d 0a 20 20 20 20 20 20 20 20 20  ssion..         
46b0: 20 43 48 41 52 20 20 52 65 73 65 72 76 65 64 5b   CHAR  Reserved[
46c0: 36 34 5d 3b 20 20 20 20 20 20 20 20 20 2f 2f 20  64];         // 
46d0: 68 61 73 20 74 6f 20 62 65 20 66 69 6c 6c 65 64  has to be filled
46e0: 20 77 69 74 68 20 7a 65 72 6f 73 0d 0a 20 20 20   with zeros..   
46f0: 20 20 20 20 20 7d 20 74 41 43 45 43 6f 6d 70 72       } tACECompr
4700: 65 73 73 50 61 72 61 6d 73 53 74 72 75 63 2c 0d  essParamsStruc,.
4710: 0a 20 20 20 20 20 20 20 20 20 2a 70 41 43 45 43  .         *pACEC
4720: 6f 6d 70 72 65 73 73 50 61 72 61 6d 73 53 74 72  ompressParamsStr
4730: 75 63 3b 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 2f  uc;......      /
4740: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
4750: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4760: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4770: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4780: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20  --------..      
4790: 2f 2f 20 54 65 6c 6c 73 20 74 68 65 20 44 6c 6c  // Tells the Dll
47a0: 20 77 68 69 63 68 20 63 6f 6d 70 72 65 73 73 69   which compressi
47b0: 6f 6e 20 6c 65 76 65 6c 20 74 6f 20 75 73 65 2e  on level to use.
47c0: 20 28 41 43 45 20 6f 6e 6c 79 29 0d 0a 20 20 20   (ACE only)..   
47d0: 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d     //-----------
47e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
47f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4800: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4810: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a  ------------....
4820: 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20          #define 
4830: 41 43 45 5f 4c 45 56 45 4c 5f 53 54 4f 52 45 20  ACE_LEVEL_STORE 
4840: 20 20 20 20 30 20 2f 2f 20 73 61 76 65 20 66 69      0 // save fi
4850: 6c 65 20 6f 6e 6c 79 3b 20 64 6f 20 6e 6f 74 20  le only; do not 
4860: 63 6f 6d 70 72 65 73 73 0d 0a 20 20 20 20 20 20  compress..      
4870: 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 4c 45    #define ACE_LE
4880: 56 45 4c 5f 46 41 53 54 45 53 54 20 20 20 31 20  VEL_FASTEST   1 
4890: 2f 2f 20 63 6f 6d 70 72 65 73 73 20 76 65 72 79  // compress very
48a0: 20 66 61 73 74 0d 0a 20 20 20 20 20 20 20 20 23   fast..        #
48b0: 64 65 66 69 6e 65 20 41 43 45 5f 4c 45 56 45 4c  define ACE_LEVEL
48c0: 5f 46 41 53 54 20 20 20 20 20 20 32 20 2f 2f 20  _FAST      2 // 
48d0: 63 6f 6d 70 72 65 73 73 20 66 61 73 74 0d 0a 20  compress fast.. 
48e0: 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41         #define A
48f0: 43 45 5f 4c 45 56 45 4c 5f 4e 4f 52 4d 41 4c 20  CE_LEVEL_NORMAL 
4900: 20 20 20 33 20 2f 2f 20 67 6f 6f 64 20 63 6f 6d     3 // good com
4910: 70 72 6f 6d 69 73 65 20 62 65 74 77 65 65 6e 20  promise between 
4920: 73 70 65 65 64 20 61 6e 64 0d 0a 20 20 20 20 20  speed and..     
4930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4950: 20 2f 2f 20 63 6f 6d 70 72 65 73 73 69 6f 6e 20   // compression 
4960: 72 61 74 65 0d 0a 20 20 20 20 20 20 20 20 23 64  rate..        #d
4970: 65 66 69 6e 65 20 41 43 45 5f 4c 45 56 45 4c 5f  efine ACE_LEVEL_
4980: 47 4f 4f 44 20 20 20 20 20 20 34 20 2f 2f 20 61  GOOD      4 // a
4990: 63 68 69 65 76 65 73 20 67 6f 6f 64 20 63 6f 6d  chieves good com
49a0: 70 72 65 73 73 69 6f 6e 0d 0a 20 20 20 20 20 20  pression..      
49b0: 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 4c 45    #define ACE_LE
49c0: 56 45 4c 5f 42 45 53 54 20 20 20 20 20 20 35 20  VEL_BEST      5 
49d0: 2f 2f 20 62 65 73 74 20 63 6f 6d 70 72 65 73 73  // best compress
49e0: 69 6f 6e 3b 20 62 69 74 20 73 6c 6f 77 0d 0a 0d  ion; bit slow...
49f0: 0a 0d 0a 2f 2f cd cd cd cd cd cd cd cd cd cd cd  ...//...........
4a00: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
4a10: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
4a20: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
4a30: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
4a40: cd cd 0d 0a 2f 2f cd cd cd cd cd cd cd cd cd cd  ....//..........
4a50: cd 3d 3d 3d 3d 3d 2d 2d 2d 20 20 50 61 72 74 20  .=====---  Part 
4a60: 32 3a 20 41 43 45 2e 44 4c 4c 20 63 61 6c 6c 62  2: ACE.DLL callb
4a70: 61 63 6b 20 64 65 63 6c 61 72 61 74 69 6f 6e 73  ack declarations
4a80: 20 2d 2d 2d 3d 3d 3d 3d cd cd cd cd cd cd cd cd   ---====........
4a90: cd cd cd 0d 0a 2f 2f cd cd cd cd cd cd cd cd cd  .....//.........
4aa0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
4ab0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
4ac0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
4ad0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
4ae0: cd cd cd cd 0d 0a 0d 0a 20 20 2f 2f 2d 2d 2d 2d  ........  //----
4af0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4b00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4b10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4b20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4b30: 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 2f 2f 0d 0a 20  -------..  //.. 
4b40: 20 2f 2f 20 41 43 45 2e 44 4c 4c 20 6d 61 6b 65   // ACE.DLL make
4b50: 73 20 75 73 65 20 6f 66 20 66 6f 75 72 20 63 61  s use of four ca
4b60: 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e 73  llback functions
4b70: 20 74 6f 20 65 78 63 68 61 6e 67 65 20 64 61 74   to exchange dat
4b80: 61 0d 0a 20 20 2f 2f 20 77 69 74 68 20 74 68 65  a..  // with the
4b90: 20 61 70 70 6c 69 63 61 74 69 6f 6e 3a 0d 0a 20   application:.. 
4ba0: 20 2f 2f 0d 0a 20 20 2f 2f 20 20 20 31 29 20 49   //..  //   1) I
4bb0: 6e 66 6f 43 61 6c 6c 62 61 63 6b 50 72 6f 63 20  nfoCallbackProc 
4bc0: 20 20 28 70 41 43 45 49 6e 66 6f 43 61 6c 6c 62    (pACEInfoCallb
4bd0: 61 63 6b 50 72 6f 63 53 74 72 75 63 20 20 20 20  ackProcStruc    
4be0: 49 6e 66 6f 29 0d 0a 20 20 2f 2f 20 20 20 32 29  Info)..  //   2)
4bf0: 20 45 72 72 6f 72 43 61 6c 6c 62 61 63 6b 50 72   ErrorCallbackPr
4c00: 6f 63 20 20 28 70 41 43 45 45 72 72 6f 72 43 61  oc  (pACEErrorCa
4c10: 6c 6c 62 61 63 6b 50 72 6f 63 53 74 72 75 63 20  llbackProcStruc 
4c20: 20 20 45 72 72 6f 72 29 0d 0a 20 20 2f 2f 20 20    Error)..  //  
4c30: 20 33 29 20 52 65 71 75 65 73 74 43 61 6c 6c 62   3) RequestCallb
4c40: 61 63 6b 50 72 6f 63 28 70 41 43 45 52 65 71 75  ackProc(pACERequ
4c50: 65 73 74 43 61 6c 6c 62 61 63 6b 50 72 6f 63 53  estCallbackProcS
4c60: 74 72 75 63 20 52 65 71 75 65 73 74 29 0d 0a 20  truc Request).. 
4c70: 20 2f 2f 20 20 20 34 29 20 53 74 61 74 65 43 61   //   4) StateCa
4c80: 6c 6c 62 61 63 6b 50 72 6f 63 20 20 28 70 41 43  llbackProc  (pAC
4c90: 45 53 74 61 74 65 43 61 6c 6c 62 61 63 6b 50 72  EStateCallbackPr
4ca0: 6f 63 53 74 72 75 63 20 20 20 53 74 61 74 65 29  ocStruc   State)
4cb0: 0d 0a 20 20 2f 2f 0d 0a 20 20 2f 2f 20 4d 65 61  ..  //..  // Mea
4cc0: 6e 69 6e 67 20 6f 66 20 64 69 66 66 65 72 65 6e  ning of differen
4cd0: 74 20 63 61 6c 6c 62 61 63 6b 20 74 79 70 65 73  t callback types
4ce0: 3a 0d 0a 20 20 2f 2f 20 20 20 49 6e 66 6f 20 20  :..  //   Info  
4cf0: 20 20 2d 20 6c 65 74 73 20 74 68 65 20 61 70 70    - lets the app
4d00: 6c 69 63 61 74 69 6f 6e 20 6b 6e 6f 77 20 61 62  lication know ab
4d10: 6f 75 74 20 61 63 74 69 6f 6e 73 20 74 68 61 74  out actions that
4d20: 20 74 61 6b 65 20 73 6f 6d 65 0d 0a 20 20 2f 2f   take some..  //
4d30: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 69 6d               tim
4d40: 65 20 62 75 74 20 61 72 65 20 6e 6f 74 20 65 73  e but are not es
4d50: 73 65 6e 74 69 61 6c 0d 0a 20 20 2f 2f 20 20 20  sential..  //   
4d60: 20 20 20 20 20 20 20 20 20 20 28 43 6f 64 65 20            (Code 
4d70: 69 73 20 6f 6e 65 20 6f 66 20 41 43 45 5f 43 41  is one of ACE_CA
4d80: 4c 4c 42 41 43 4b 5f 49 4e 46 4f 20 63 6f 6e 73  LLBACK_INFO cons
4d90: 74 61 6e 74 73 29 0d 0a 20 20 2f 2f 20 20 20 45  tants)..  //   E
4da0: 72 72 6f 72 20 20 20 2d 20 61 6e 20 65 72 72 6f  rror   - an erro
4db0: 72 20 6f 63 63 75 72 65 64 3b 20 69 66 20 74 68  r occured; if th
4dc0: 65 20 72 65 61 73 6f 6e 20 66 6f 72 20 74 68 69  e reason for thi
4dd0: 73 20 65 72 72 6f 72 20 63 61 6e 0d 0a 20 20 2f  s error can..  /
4de0: 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65  /             be
4df0: 20 73 6f 6c 76 65 64 20 62 79 20 74 68 65 20 61   solved by the a
4e00: 70 70 6c 69 63 61 74 69 6f 6e 20 74 68 65 6e 20  pplication then 
4e10: 74 68 65 20 44 6c 6c 20 63 61 6e 20 63 6f 6e 74  the Dll can cont
4e20: 69 6e 75 65 0d 0a 20 20 2f 2f 20 20 20 20 20 20  inue..  //      
4e30: 20 20 20 20 20 20 20 74 68 65 20 63 75 72 72 65         the curre
4e40: 6e 74 20 6f 70 65 72 61 74 69 6f 6e 2c 20 6f 74  nt operation, ot
4e50: 68 65 72 77 69 73 65 20 74 68 65 20 6f 70 65 72  herwise the oper
4e60: 61 74 69 6f 6e 20 68 61 73 20 74 6f 0d 0a 20 20  ation has to..  
4e70: 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 62  //             b
4e80: 65 20 63 61 6e 63 65 6c 65 64 0d 0a 20 20 2f 2f  e canceled..  //
4e90: 20 20 20 20 20 20 20 20 20 20 20 20 20 28 43 6f               (Co
4ea0: 64 65 20 69 73 20 6f 6e 65 20 6f 66 20 41 43 45  de is one of ACE
4eb0: 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 20  _CALLBACK_ERROR 
4ec0: 63 6f 6e 73 74 61 6e 74 73 29 0d 0a 20 20 2f 2f  constants)..  //
4ed0: 20 20 20 52 65 71 75 65 73 74 20 2d 20 74 68 65     Request - the
4ee0: 20 44 6c 6c 20 6e 65 65 64 73 20 73 6f 6d 65 20   Dll needs some 
4ef0: 75 73 65 72 20 69 6e 70 75 74 0d 0a 20 20 2f 2f  user input..  //
4f00: 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72               for
4f10: 20 65 78 2e 3a 20 22 4f 76 65 72 77 72 69 74 65   ex.: "Overwrite
4f20: 20 66 69 6c 65 3f 20 28 79 65 73 2f 6e 6f 2f 63   file? (yes/no/c
4f30: 61 6e 63 65 6c 29 22 0d 0a 20 20 2f 2f 20 20 20  ancel)"..  //   
4f40: 20 20 20 20 20 20 20 20 20 20 28 43 6f 64 65 20            (Code 
4f50: 69 73 20 6f 6e 65 20 6f 66 20 41 43 45 5f 43 41  is one of ACE_CA
4f60: 4c 4c 42 41 43 4b 5f 52 45 51 55 45 53 54 20 63  LLBACK_REQUEST c
4f70: 6f 6e 73 74 61 6e 74 73 29 0d 0a 20 20 2f 2f 20  onstants)..  // 
4f80: 20 20 53 74 61 74 65 20 20 20 2d 20 44 6c 6c 20    State   - Dll 
4f90: 69 6e 66 6f 72 6d 73 20 61 70 70 6c 69 63 61 74  informs applicat
4fa0: 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 70 72  ion about the pr
4fb0: 6f 67 72 65 73 73 20 6f 66 20 61 6e 20 6f 70 65  ogress of an ope
4fc0: 72 61 74 69 6f 6e 0d 0a 20 20 2f 2f 20 20 20 20  ration..  //    
4fd0: 20 20 20 20 20 20 20 20 20 28 43 6f 64 65 20 69           (Code i
4fe0: 73 20 6f 6e 65 20 6f 66 20 41 43 45 5f 43 41 4c  s one of ACE_CAL
4ff0: 4c 42 41 43 4b 5f 53 54 41 54 45 20 63 6f 6e 73  LBACK_STATE cons
5000: 74 61 6e 74 73 29 0d 0a 20 20 2f 2f 0d 0a 20 20  tants)..  //..  
5010: 2f 2f 20 54 68 65 20 70 6f 69 6e 74 65 72 73 20  // The pointers 
5020: 74 6f 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20  to the callback 
5030: 66 75 6e 63 74 69 6f 6e 73 20 68 61 73 20 74 6f  functions has to
5040: 20 62 65 20 73 65 74 20 62 79 20 74 68 65 20 61   be set by the a
5050: 70 70 6c 69 63 61 74 69 6f 6e 0d 0a 20 20 2f 2f  pplication..  //
5060: 20 77 68 65 6e 20 63 61 6c 6c 69 6e 67 20 41 43   when calling AC
5070: 45 49 6e 69 74 44 6c 6c 28 29 2e 20 49 66 20 74  EInitDll(). If t
5080: 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 64  he application d
5090: 6f 65 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 0d  oes not install.
50a0: 0a 20 20 2f 2f 20 61 20 63 61 6c 6c 62 61 63 6b  .  // a callback
50b0: 20 66 75 6e 63 74 69 6f 6e 2c 20 69 73 20 68 61   function, is ha
50c0: 73 20 73 65 74 20 74 68 65 20 63 6f 72 72 65 73  s set the corres
50d0: 70 6f 6e 64 69 6e 67 20 70 6f 69 6e 74 65 72 20  ponding pointer 
50e0: 74 6f 20 4e 55 4c 4c 2e 0d 0a 20 20 2f 2f 20 49  to NULL...  // I
50f0: 66 20 74 68 65 20 41 43 45 2e 44 4c 4c 20 68 61  f the ACE.DLL ha
5100: 73 20 74 6f 20 63 61 6c 6c 20 74 68 65 20 45 72  s to call the Er
5110: 72 6f 72 20 6f 72 20 52 65 71 75 65 73 74 20 63  ror or Request c
5120: 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e  allback function
5130: 0d 0a 20 20 2f 2f 20 61 6e 64 20 74 68 65 79 20  ..  // and they 
5140: 61 72 65 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65  are not installe
5150: 64 2c 20 74 68 65 20 41 43 45 2e 44 4c 4c 20 77  d, the ACE.DLL w
5160: 69 6c 6c 20 63 61 6e 63 65 6c 20 74 68 65 20 6f  ill cancel the o
5170: 70 65 72 61 74 69 6f 6e 2e 0d 0a 20 20 2f 2f 0d  peration...  //.
5180: 0a 20 20 2f 2f 20 54 68 65 20 61 70 70 6c 69 63  .  // The applic
5190: 61 74 69 6f 6e 20 68 61 73 20 74 68 65 20 70 6f  ation has the po
51a0: 73 73 69 62 69 6c 69 74 79 20 74 6f 20 63 61 6e  ssibility to can
51b0: 63 65 6c 20 74 68 65 20 63 75 72 72 65 6e 74 20  cel the current 
51c0: 6f 70 65 72 61 74 69 6f 6e 0d 0a 20 20 2f 2f 20  operation..  // 
51d0: 61 74 20 65 61 63 68 20 63 61 6c 6c 62 61 63 6b  at each callback
51e0: 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2e 20   function call. 
51f0: 53 6f 20 69 66 20 74 68 65 20 75 73 65 72 20 63  So if the user c
5200: 6c 69 63 6b 73 20 6f 6e 20 61 20 43 61 6e 63 65  licks on a Cance
5210: 6c 2d 62 75 74 74 6f 6e 2c 0d 0a 20 20 2f 2f 20  l-button,..  // 
5220: 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20  the application 
5230: 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 41 43  should return AC
5240: 45 5f 43 41 4c 4c 42 41 43 4b 5f 52 45 54 55 52  E_CALLBACK_RETUR
5250: 4e 5f 43 41 4e 43 45 4c 20 61 74 20 74 68 65 20  N_CANCEL at the 
5260: 6e 65 78 74 0d 0a 20 20 2f 2f 20 63 61 6c 6c 62  next..  // callb
5270: 61 63 6b 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c  ack function cal
5280: 6c 2e 0d 0a 20 20 2f 2f 0d 0a 20 20 2f 2f 20 41  l...  //..  // A
5290: 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 66 75 6e 63  ll callback func
52a0: 74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 73 20  tion parameters 
52b0: 61 72 65 20 64 65 63 6c 61 72 65 64 20 61 73 20  are declared as 
52c0: 75 6e 69 6f 6e 73 2e 0d 0a 20 20 2f 2f 20 54 68  unions...  // Th
52d0: 65 20 53 74 72 75 63 74 75 72 65 54 79 70 65 20  e StructureType 
52e0: 66 69 65 6c 64 20 63 6f 6e 74 61 69 6e 73 20 68  field contains h
52f0: 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 73 74  e type of the st
5300: 72 75 63 74 75 72 65 20 77 68 69 63 68 20 69 73  ructure which is
5310: 20 75 73 65 64 2e 0d 0a 20 20 2f 2f 20 57 68 65   used...  // Whe
5320: 6e 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f  n the applicatio
5330: 6e 20 6b 6e 6f 77 73 20 77 68 69 63 68 20 74 79  n knows which ty
5340: 70 65 20 6f 66 20 73 74 72 75 63 74 75 72 65 20  pe of structure 
5350: 69 74 20 68 61 73 20 74 6f 20 75 73 65 2c 0d 0a  it has to use,..
5360: 20 20 2f 2f 20 69 74 20 77 69 6c 6c 20 68 61 76    // it will hav
5370: 65 20 74 6f 20 69 6e 74 65 72 70 72 65 74 20 74  e to interpret t
5380: 68 65 20 43 6f 64 65 20 66 69 65 6c 64 20 74 6f  he Code field to
5390: 20 67 65 74 20 74 6f 20 6b 6e 6f 77 20 74 68 65   get to know the
53a0: 20 72 65 61 73 6f 6e 0d 0a 20 20 2f 2f 20 66 6f   reason..  // fo
53b0: 72 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 66  r the callback f
53c0: 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2e 0d 0a 20  unction call... 
53d0: 20 2f 2f 0d 0a 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d   //..  //-------
53e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
53f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5400: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5410: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5420: 2d 2d 2d 2d 0d 0a 20 20 2f 2f 0d 0a 20 20 2f 2f  ----..  //..  //
5430: 20 43 6f 6e 74 65 6e 74 73 3a 0d 0a 20 20 2f 2f   Contents:..  //
5440: 20 20 20 50 61 72 74 20 32 2e 31 3a 20 6f 70 65     Part 2.1: ope
5450: 72 61 74 69 6f 6e 20 74 79 70 65 73 0d 0a 20 20  ration types..  
5460: 2f 2f 20 20 20 50 61 72 74 20 32 2e 32 3a 20 63  //   Part 2.2: c
5470: 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e  allback function
5480: 20 72 65 74 75 72 6e 20 63 6f 64 65 73 0d 0a 20   return codes.. 
5490: 20 2f 2f 20 20 20 50 61 72 74 20 32 2e 33 3a 20   //   Part 2.3: 
54a0: 63 61 6c 6c 62 61 63 6b 20 73 74 72 75 63 74 75  callback structu
54b0: 72 65 20 74 79 70 65 73 0d 0a 20 20 2f 2f 20 20  re types..  //  
54c0: 20 50 61 72 74 20 32 2e 34 3a 20 63 61 6c 6c 62   Part 2.4: callb
54d0: 61 63 6b 20 73 74 72 75 63 74 75 72 65 73 0d 0a  ack structures..
54e0: 20 20 2f 2f 20 20 20 50 61 72 74 20 32 2e 35 3a    //   Part 2.5:
54f0: 20 69 6e 66 6f 20 63 61 6c 6c 62 61 63 6b 20 66   info callback f
5500: 75 6e 63 74 69 6f 6e 0d 0a 20 20 2f 2f 20 20 20  unction..  //   
5510: 50 61 72 74 20 32 2e 36 3a 20 65 72 72 6f 72 20  Part 2.6: error 
5520: 63 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f  callback functio
5530: 6e 0d 0a 20 20 2f 2f 20 20 20 50 61 72 74 20 32  n..  //   Part 2
5540: 2e 37 3a 20 72 65 71 75 65 73 74 20 63 61 6c 6c  .7: request call
5550: 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e 0d 0a 20  back function.. 
5560: 20 2f 2f 20 20 20 50 61 72 74 20 32 2e 38 3a 20   //   Part 2.8: 
5570: 73 74 61 74 65 20 63 61 6c 6c 62 61 63 6b 20 66  state callback f
5580: 75 6e 63 74 69 6f 6e 0d 0a 20 20 2f 2f 0d 0a 20  unction..  //.. 
5590: 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   //-------------
55a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
55b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
55c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
55d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
55e0: 0d 0a 0d 0a 20 20 2f 2f cd cd cd cd cd cd cd cd  ....  //........
55f0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
5600: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
5610: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
5620: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
5630: cd cd cd 0d 0a 20 20 2f 2f 3d 3d 3d 3d 3d 3d 3d  .....  //=======
5640: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 2d 2d  ==============--
5650: 2d 20 20 50 61 72 74 20 32 2e 31 3a 20 6f 70 65  -  Part 2.1: ope
5660: 72 61 74 69 6f 6e 20 63 6f 64 65 73 20 20 2d 2d  ration codes  --
5670: 2d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  -===============
5680: 3d 3d 3d 3d 0d 0a 20 20 2f 2f cd cd cd cd cd cd  ====..  //......
5690: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
56a0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
56b0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
56c0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
56d0: cd cd cd cd cd 0d 0a 20 20 2f 2f 20 50 61 73 73  .......  // Pass
56e0: 65 64 20 74 6f 20 63 61 6c 6c 62 61 63 6b 20 66  ed to callback f
56f0: 75 6e 63 74 69 6f 6e 73 20 69 6e 64 69 63 61 74  unctions indicat
5700: 69 6e 67 20 74 68 65 20 63 75 72 72 65 6e 74 20  ing the current 
5710: 6f 70 65 72 61 74 69 6f 6e 2e 0d 0a 20 20 2f 2f  operation...  //
5720: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5730: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5740: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5750: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5760: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20  ---------....   
5770: 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45       #define ACE
5780: 5f 43 41 4c 4c 42 41 43 4b 5f 4f 50 45 52 41 54  _CALLBACK_OPERAT
5790: 49 4f 4e 5f 4c 49 53 54 20 20 20 20 20 20 20 20  ION_LIST        
57a0: 20 30 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66   0..        #def
57b0: 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b  ine ACE_CALLBACK
57c0: 5f 4f 50 45 52 41 54 49 4f 4e 5f 54 45 53 54 20  _OPERATION_TEST 
57d0: 20 20 20 20 20 20 20 20 31 0d 0a 20 20 20 20 20          1..     
57e0: 20 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43     #define ACE_C
57f0: 41 4c 4c 42 41 43 4b 5f 4f 50 45 52 41 54 49 4f  ALLBACK_OPERATIO
5800: 4e 5f 41 4e 41 4c 59 5a 45 20 20 20 20 20 20 32  N_ANALYZE      2
5810: 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e  ..        #defin
5820: 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 4f  e ACE_CALLBACK_O
5830: 50 45 52 41 54 49 4f 4e 5f 45 58 54 52 41 43 54  PERATION_EXTRACT
5840: 20 20 20 20 20 20 33 0d 0a 20 20 20 20 20 20 20        3..       
5850: 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c   #define ACE_CAL
5860: 4c 42 41 43 4b 5f 4f 50 45 52 41 54 49 4f 4e 5f  LBACK_OPERATION_
5870: 41 44 44 20 20 20 20 20 20 20 20 20 20 34 0d 0a  ADD          4..
5880: 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20          #define 
5890: 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 4f 50 45  ACE_CALLBACK_OPE
58a0: 52 41 54 49 4f 4e 5f 52 45 50 41 43 4b 20 20 20  RATION_REPACK   
58b0: 20 20 20 20 35 0d 0a 20 20 20 20 20 20 20 20 23      5..        #
58c0: 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42  define ACE_CALLB
58d0: 41 43 4b 5f 4f 50 45 52 41 54 49 4f 4e 5f 44 45  ACK_OPERATION_DE
58e0: 4c 45 54 45 20 20 20 20 20 20 20 36 0d 0a 20 20  LETE       6..  
58f0: 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43        #define AC
5900: 45 5f 43 41 4c 4c 42 41 43 4b 5f 4f 50 45 52 41  E_CALLBACK_OPERA
5910: 54 49 4f 4e 5f 52 45 50 41 49 52 20 20 20 20 20  TION_REPAIR     
5920: 20 20 37 20 20 20 20 2f 2f 20 72 65 70 61 69 72    7    // repair
5930: 20 77 69 74 68 6f 75 74 0d 0a 20 20 20 20 20 20   without..      
5940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5970: 20 20 20 2f 2f 20 72 65 63 6f 76 65 72 79 20 72     // recovery r
5980: 65 63 6f 72 64 0d 0a 20 20 20 20 20 20 20 20 23  ecord..        #
5990: 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42  define ACE_CALLB
59a0: 41 43 4b 5f 4f 50 45 52 41 54 49 4f 4e 5f 53 45  ACK_OPERATION_SE
59b0: 54 43 4d 54 20 20 20 20 20 20 20 38 0d 0a 20 20  TCMT       8..  
59c0: 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43        #define AC
59d0: 45 5f 43 41 4c 4c 42 41 43 4b 5f 4f 50 45 52 41  E_CALLBACK_OPERA
59e0: 54 49 4f 4e 5f 45 4e 43 52 59 50 54 20 20 20 20  TION_ENCRYPT    
59f0: 20 20 39 0d 0a 20 20 20 20 20 20 20 20 23 64 65    9..        #de
5a00: 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43  fine ACE_CALLBAC
5a10: 4b 5f 4f 50 45 52 41 54 49 4f 4e 5f 4b 45 45 50  K_OPERATION_KEEP
5a20: 20 20 20 20 20 20 20 20 20 31 30 20 20 20 2f 2f           10   //
5a30: 20 66 69 6c 65 20 69 73 20 74 6f 20 62 65 0d 0a   file is to be..
5a40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5a50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5a60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5a70: 20 20 20 20 20 20 20 20 20 2f 2f 20 74 61 6b 65           // take
5a80: 6e 20 61 6c 6f 6e 67 0d 0a 20 20 20 20 20 20 20  n along..       
5a90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5aa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5ab0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5ac0: 20 20 2f 2f 20 77 69 74 68 6f 75 74 20 72 65 63    // without rec
5ad0: 6f 6d 70 72 65 73 73 0d 0a 20 20 20 20 20 20 20  ompress..       
5ae0: 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c   #define ACE_CAL
5af0: 4c 42 41 43 4b 5f 4f 50 45 52 41 54 49 4f 4e 5f  LBACK_OPERATION_
5b00: 52 45 43 4f 56 45 52 20 20 20 20 20 20 31 31 20  RECOVER      11 
5b10: 20 20 2f 2f 20 62 65 67 69 6e 20 6f 66 0d 0a 20    // begin of.. 
5b20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5b30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5b40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5b50: 20 20 20 20 20 20 20 20 2f 2f 20 72 65 63 6f 76          // recov
5b60: 65 72 69 6e 67 20 61 72 63 68 69 76 65 0d 0a 20  ering archive.. 
5b70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5b80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5b90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5ba0: 20 20 20 20 20 20 20 20 2f 2f 20 62 79 20 72 65          // by re
5bb0: 63 6f 76 65 72 79 20 72 65 63 6f 72 64 0d 0a 20  covery record.. 
5bc0: 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41         #define A
5bd0: 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 4f 50 45 52  CE_CALLBACK_OPER
5be0: 41 54 49 4f 4e 5f 48 45 41 44 53 45 41 52 43 48  ATION_HEADSEARCH
5bf0: 20 20 20 31 32 20 20 20 2f 2f 20 62 65 67 69 6e     12   // begin
5c00: 20 6f 66 20 73 65 61 72 63 68 69 6e 67 0d 0a 20   of searching.. 
5c10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5c20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5c40: 20 20 20 20 20 20 20 20 2f 2f 20 66 6f 72 20 66          // for f
5c50: 69 6c 65 20 68 65 61 64 65 72 73 0d 0a 20 20 20  ile headers..   
5c60: 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45       #define ACE
5c70: 5f 43 41 4c 4c 42 41 43 4b 5f 4f 50 45 52 41 54  _CALLBACK_OPERAT
5c80: 49 4f 4e 5f 52 45 43 52 45 43 53 45 41 52 43 48  ION_RECRECSEARCH
5c90: 20 31 33 20 20 20 2f 2f 20 62 65 67 69 6e 20 6f   13   // begin o
5ca0: 66 20 73 65 61 72 63 68 69 6e 67 0d 0a 20 20 20  f searching..   
5cb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5cc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5cd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5ce0: 20 20 20 20 20 20 2f 2f 20 66 6f 72 20 72 65 63        // for rec
5cf0: 6f 76 65 72 79 20 72 65 63 6f 72 64 0d 0a 20 20  overy record..  
5d00: 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43        #define AC
5d10: 45 5f 43 41 4c 4c 42 41 43 4b 5f 4f 50 45 52 41  E_CALLBACK_OPERA
5d20: 54 49 4f 4e 5f 41 44 44 53 46 58 20 20 20 20 20  TION_ADDSFX     
5d30: 20 20 31 34 0d 0a 20 20 20 20 20 20 20 20 23 64    14..        #d
5d40: 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41  efine ACE_CALLBA
5d50: 43 4b 5f 4f 50 45 52 41 54 49 4f 4e 5f 4c 4f 43  CK_OPERATION_LOC
5d60: 4b 20 20 20 20 20 20 20 20 20 31 35 0d 0a 20 20  K         15..  
5d70: 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43        #define AC
5d80: 45 5f 43 41 4c 4c 42 41 43 4b 5f 4f 50 45 52 41  E_CALLBACK_OPERA
5d90: 54 49 4f 4e 5f 41 44 44 41 56 20 20 20 20 20 20  TION_ADDAV      
5da0: 20 20 31 36 20 20 20 2f 2f 20 6e 6f 74 20 75 73    16   // not us
5db0: 65 64 20 69 6e 20 41 43 4c 0d 0a 20 20 20 20 20  ed in ACL..     
5dc0: 20 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43     #define ACE_C
5dd0: 41 4c 4c 42 41 43 4b 5f 4f 50 45 52 41 54 49 4f  ALLBACK_OPERATIO
5de0: 4e 5f 41 44 44 52 45 43 4f 56 52 45 43 20 20 31  N_ADDRECOVREC  1
5df0: 37 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69  7..        #defi
5e00: 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f  ne ACE_CALLBACK_
5e10: 4f 50 45 52 41 54 49 4f 4e 5f 52 45 47 49 53 54  OPERATION_REGIST
5e20: 45 52 20 20 20 20 20 31 38 20 20 20 2f 2f 20 6e  ER     18   // n
5e30: 6f 74 20 75 73 65 64 20 69 6e 20 41 43 4c 0d 0a  ot used in ACL..
5e40: 0d 0a 0d 0a 20 20 2f 2f cd cd cd cd cd cd cd cd  ....  //........
5e50: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
5e60: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
5e70: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
5e80: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
5e90: cd cd cd 0d 0a 20 20 2f 2f 3d 3d 3d 3d 3d 3d 3d  .....  //=======
5ea0: 3d 3d 3d 3d 3d 3d 2d 2d 2d 20 20 50 61 72 74 20  ======---  Part 
5eb0: 32 2e 32 3a 20 63 61 6c 6c 62 61 63 6b 20 66 75  2.2: callback fu
5ec0: 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 20 63 6f  nction return co
5ed0: 64 65 73 20 20 2d 2d 2d 3d 3d 3d 3d 3d 3d 3d 3d  des  ---========
5ee0: 3d 3d 3d 3d 0d 0a 20 20 2f 2f cd cd cd cd cd cd  ====..  //......
5ef0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
5f00: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
5f10: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
5f20: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
5f30: cd cd cd cd cd 0d 0a 20 20 2f 2f 20 4f 6e 65 20  .......  // One 
5f40: 6f 66 20 74 68 65 73 65 20 72 65 73 75 6c 74 20  of these result 
5f50: 63 6f 64 65 73 20 68 61 73 20 74 6f 20 62 65 20  codes has to be 
5f60: 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 20  returned by the 
5f70: 61 70 70 6c 69 63 61 74 69 6f 6e 2d 62 61 73 65  application-base
5f80: 64 0d 0a 20 20 2f 2f 20 63 61 6c 6c 62 61 63 6b  d..  // callback
5f90: 20 66 75 6e 63 74 69 6f 6e 73 2e 0d 0a 20 20 2f   functions...  /
5fa0: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
5fb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5fc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5fd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5fe0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a  ------------....
5ff0: 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20          #define 
6000: 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 52 45 54  ACE_CALLBACK_RET
6010: 55 52 4e 5f 4f 4b 20 20 20 20 20 20 20 20 20 20  URN_OK          
6020: 20 20 20 20 30 20 20 20 20 2f 2f 20 61 6c 73 6f      0    // also
6030: 20 22 79 65 73 22 20 61 74 0d 0a 20 20 20 20 20   "yes" at..     
6040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6070: 20 20 20 20 2f 2f 20 72 65 71 75 65 73 74 73 0d      // requests.
6080: 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65  .        #define
6090: 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 52 45   ACE_CALLBACK_RE
60a0: 54 55 52 4e 5f 4e 4f 20 20 20 20 20 20 20 20 20  TURN_NO         
60b0: 20 20 20 20 20 31 20 20 20 20 2f 2f 20 6e 6f 2c       1    // no,
60c0: 20 64 6f 20 6e 6f 74 2f 0d 0a 20 20 20 20 20 20   do not/..      
60d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
60e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
60f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6100: 20 20 20 2f 2f 20 64 6f 20 6e 6f 74 20 72 65 74     // do not ret
6110: 72 79 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66  ry..        #def
6120: 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b  ine ACE_CALLBACK
6130: 5f 52 45 54 55 52 4e 5f 43 41 4e 43 45 4c 20 20  _RETURN_CANCEL  
6140: 20 20 20 20 20 20 20 20 32 20 20 20 20 2f 2f 20          2    // 
6150: 61 62 6f 72 74 20 6f 70 65 72 61 74 69 6f 6e 0d  abort operation.
6160: 0a 0d 0a 0d 0a 20 20 2f 2f cd cd cd cd cd cd cd  .....  //.......
6170: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
6180: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
6190: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
61a0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
61b0: cd cd cd cd 0d 0a 20 20 2f 2f 3d 3d 3d 3d 3d 3d  ......  //======
61c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 2d 2d 2d 20 20 50  ==========---  P
61d0: 61 72 74 20 32 2e 33 3a 20 63 61 6c 6c 62 61 63  art 2.3: callbac
61e0: 6b 20 73 74 72 75 63 74 75 72 65 20 74 79 70 65  k structure type
61f0: 73 20 20 2d 2d 2d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  s  ---==========
6200: 3d 3d 3d 3d 3d 0d 0a 20 20 2f 2f cd cd cd cd cd  =====..  //.....
6210: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
6220: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
6230: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
6240: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
6250: cd cd cd cd cd cd 0d 0a 20 20 2f 2f 20 53 74 61  ........  // Sta
6260: 74 65 73 20 6f 66 20 77 68 69 63 68 20 74 79 70  tes of which typ
6270: 65 20 74 68 65 20 70 61 73 73 65 64 20 73 74 72  e the passed str
6280: 75 63 74 75 72 65 20 69 73 20 77 68 65 6e 20 61  ucture is when a
6290: 20 63 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69   callback functi
62a0: 6f 6e 0d 0a 20 20 2f 2f 20 69 73 20 63 61 6c 6c  on..  // is call
62b0: 65 64 2e 20 54 68 65 20 74 79 70 65 20 69 73 20  ed. The type is 
62c0: 77 72 69 74 74 65 6e 20 74 6f 20 74 68 65 20 53  written to the S
62d0: 74 72 75 63 74 75 72 65 54 79 70 65 20 66 69 65  tructureType fie
62e0: 6c 64 2e 0d 0a 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d  ld...  //-------
62f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6300: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6310: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6330: 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20 20 20 20  ----....        
6340: 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c  #define ACE_CALL
6350: 42 41 43 4b 5f 54 59 50 45 5f 47 4c 4f 42 41 4c  BACK_TYPE_GLOBAL
6360: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6370: 30 78 30 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20  0x0....         
6380: 20 20 20 20 20 20 20 2f 2f 20 74 79 70 65 20 6f         // type o
6390: 66 20 73 74 72 75 63 74 75 72 65 20 69 73 0d 0a  f structure is..
63a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
63b0: 2f 2f 20 74 41 43 45 43 61 6c 6c 62 61 63 6b 47  // tACECallbackG
63c0: 6c 6f 62 61 6c 53 74 72 75 63 0d 0a 20 20 20 20  lobalStruc..    
63d0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d              //--
63e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
63f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6400: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6410: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20  -----------..   
6420: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
6430: 63 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f  callback functio
6440: 6e 20 20 20 7c 20 63 6f 64 65 73 20 75 73 69 6e  n   | codes usin
6450: 67 20 74 68 69 73 20 73 74 72 75 63 74 75 72 65  g this structure
6460: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
6470: 20 20 2f 2f 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d    // --- --- ---
6480: 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d   --- --- --- ---
6490: 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d   --- --- --- ---
64a0: 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d   --- --- --- ---
64b0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
64c0: 20 20 2f 2f 20 49 6e 66 6f 43 61 6c 6c 62 61 63    // InfoCallbac
64d0: 6b 50 72 6f 63 20 20 20 20 7c 20 41 43 45 5f 43  kProc    | ACE_C
64e0: 41 4c 4c 42 41 43 4b 5f 49 4e 46 4f 5f 47 45 4e  ALLBACK_INFO_GEN
64f0: 45 52 41 4c 4b 45 59 20 20 20 20 20 20 2f 2f 20  ERALKEY      // 
6500: 6e 6f 74 20 75 73 65 64 20 69 6e 20 41 43 4c 0d  not used in ACL.
6510: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
6520: 20 2f 2f 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20   // - - - - - - 
6530: 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20  - - - - - - - - 
6540: 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20  - - - - - - - - 
6550: 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 0d  - - - - - - - -.
6560: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
6570: 20 2f 2f 20 45 72 72 6f 72 43 61 6c 6c 62 61 63   // ErrorCallbac
6580: 6b 50 72 6f 63 20 20 20 7c 20 41 43 45 5f 43 41  kProc   | ACE_CA
6590: 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 4d 45 4d  LLBACK_ERROR_MEM
65a0: 4f 52 59 20 2f 2f 20 66 81 72 20 4d 61 6e 79 46  ORY // f.r ManyF
65b0: 69 6c 65 73 45 72 72 6f 72 20 75 6e 64 20 45 78  ilesError und Ex
65c0: 74 72 61 63 74 4d 65 6d 20 61 6e 64 65 72 65 20  tractMem andere 
65d0: 43 6f 64 65 73 20 76 65 72 77 65 6e 64 65 6e 21  Codes verwenden!
65e0: 3f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ?..             
65f0: 20 20 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20     //           
6600: 20 20 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f            | ACE_
6610: 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 52  CALLBACK_ERROR_R
6620: 45 47 49 53 54 45 52 20 20 20 20 20 20 20 2f 2f  EGISTER       //
6630: 20 6e 6f 74 20 75 73 65 64 20 69 6e 20 41 43 4c   not used in ACL
6640: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
6650: 20 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20    //            
6660: 20 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f 43           | ACE_C
6670: 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 52 45  ALLBACK_ERROR_RE
6680: 41 44 4b 45 59 20 20 20 20 20 20 20 20 2f 2f 20  ADKEY        // 
6690: 6e 6f 74 20 75 73 65 64 20 69 6e 20 41 43 4c 0d  not used in ACL.
66a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
66b0: 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20   //             
66c0: 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41          | ACE_CA
66d0: 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 57 52 49  LLBACK_ERROR_WRI
66e0: 54 45 4b 45 59 20 20 20 20 20 20 20 2f 2f 20 6e  TEKEY       // n
66f0: 6f 74 20 75 73 65 64 20 69 6e 20 41 43 4c 0d 0a  ot used in ACL..
6700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6710: 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20  //              
6720: 20 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41 4c         | ACE_CAL
6730: 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 4e 4f 57 49  LBACK_ERROR_NOWI
6740: 4e 41 43 45 4b 45 59 20 20 20 20 2f 2f 20 6e 6f  NACEKEY    // no
6750: 74 20 75 73 65 64 20 69 6e 20 41 43 4c 0d 0a 20  t used in ACL.. 
6760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
6770: 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  /               
6780: 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c        | ACE_CALL
6790: 42 41 43 4b 5f 45 52 52 4f 52 5f 4e 4f 41 43 54  BACK_ERROR_NOACT
67a0: 49 56 45 41 43 45 4b 45 59 20 2f 2f 20 6e 6f 74  IVEACEKEY // not
67b0: 20 75 73 65 64 20 69 6e 20 41 43 4c 0d 0a 20 20   used in ACL..  
67c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
67d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
67e0: 20 20 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c 42       | ACE_CALLB
67f0: 41 43 4b 5f 45 52 52 4f 52 5f 55 4e 43 53 50 41  ACK_ERROR_UNCSPA
6800: 43 45 20 20 20 20 20 20 20 2f 2f 20 77 69 72 64  CE       // wird
6810: 20 6e 6f 63 68 20 6e 69 63 68 74 20 76 65 72 77   noch nicht verw
6820: 65 6e 64 65 74 21 0d 0a 20 20 20 20 20 20 20 20  endet!..        
6830: 20 20 20 20 20 20 20 20 2f 2f 20 2d 20 2d 20 2d          // - - -
6840: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
6850: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
6860: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
6870: 20 2d 20 2d 20 2d 0d 0a 20 20 20 20 20 20 20 20   - - -..        
6880: 20 20 20 20 20 20 20 20 2f 2f 20 52 65 71 75 65          // Reque
6890: 73 74 43 61 6c 6c 62 61 63 6b 50 72 6f 63 20 7c  stCallbackProc |
68a0: 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 52 45   ACE_CALLBACK_RE
68b0: 51 55 45 53 54 5f 52 45 47 49 53 54 45 52 20 20  QUEST_REGISTER  
68c0: 20 20 20 2f 2f 20 6e 6f 74 20 75 73 65 64 20 69     // not used i
68d0: 6e 20 41 43 4c 0d 0a 20 20 20 20 20 20 20 20 20  n ACL..         
68e0: 20 20 20 20 20 20 20 2f 2f 0d 0a 0d 0a 0d 0a 20         //...... 
68f0: 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41         #define A
6900: 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45  CE_CALLBACK_TYPE
6910: 5f 41 52 43 48 49 56 45 20 20 20 20 20 20 20 20  _ARCHIVE        
6920: 20 20 20 20 20 20 20 30 78 31 0d 0a 0d 0a 20 20         0x1....  
6930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
6940: 20 74 79 70 65 20 6f 66 20 73 74 72 75 63 74 75   type of structu
6950: 72 65 20 69 73 0d 0a 20 20 20 20 20 20 20 20 20  re is..         
6960: 20 20 20 20 20 20 20 2f 2f 20 74 41 43 45 43 61         // tACECa
6970: 6c 6c 62 61 63 6b 41 72 63 68 69 76 65 53 74 72  llbackArchiveStr
6980: 75 63 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  uc..            
6990: 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
69a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
69b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
69c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
69d0: 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ---..           
69e0: 20 20 20 20 20 2f 2f 20 63 61 6c 6c 62 61 63 6b       // callback
69f0: 20 66 75 6e 63 74 69 6f 6e 20 20 20 7c 20 63 6f   function   | co
6a00: 64 65 73 20 75 73 69 6e 67 20 74 68 69 73 20 73  des using this s
6a10: 74 72 75 63 74 75 72 65 0d 0a 20 20 20 20 20 20  tructure..      
6a20: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 2d 2d 2d            // ---
6a30: 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d   --- --- --- ---
6a40: 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d   --- --- --- ---
6a50: 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d   --- --- --- ---
6a60: 20 2d 2d 2d 20 2d 2d 2d 0d 0a 20 20 20 20 20 20   --- ---..      
6a70: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 49 6e 66            // Inf
6a80: 6f 43 61 6c 6c 62 61 63 6b 50 72 6f 63 20 20 20  oCallbackProc   
6a90: 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f   | ACE_CALLBACK_
6aa0: 49 4e 46 4f 5f 54 4d 50 41 52 43 43 52 45 41 54  INFO_TMPARCCREAT
6ab0: 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  E..             
6ac0: 20 20 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20     //           
6ad0: 20 20 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f            | ACE_
6ae0: 43 41 4c 4c 42 41 43 4b 5f 49 4e 46 4f 5f 54 4d  CALLBACK_INFO_TM
6af0: 50 41 52 43 43 52 45 41 54 45 45 4e 44 0d 0a 20  PARCCREATEEND.. 
6b00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
6b10: 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  /               
6b20: 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c        | ACE_CALL
6b30: 42 41 43 4b 5f 49 4e 46 4f 5f 41 44 44 52 45 43  BACK_INFO_ADDREC
6b40: 52 45 43 0d 0a 20 20 20 20 20 20 20 20 20 20 20  REC..           
6b50: 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20 20 20       //         
6b60: 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 41 43              | AC
6b70: 45 5f 43 41 4c 4c 42 41 43 4b 5f 49 4e 46 4f 5f  E_CALLBACK_INFO_
6b80: 41 44 44 52 45 43 52 45 43 45 4e 44 0d 0a 20 20  ADDRECRECEND..  
6b90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
6ba0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6bb0: 20 20 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c 42       | ACE_CALLB
6bc0: 41 43 4b 5f 49 4e 46 4f 5f 52 45 43 52 45 43 0d  ACK_INFO_RECREC.
6bd0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
6be0: 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20   //             
6bf0: 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41          | ACE_CA
6c00: 4c 4c 42 41 43 4b 5f 49 4e 46 4f 5f 4e 4f 52 45  LLBACK_INFO_NORE
6c10: 43 52 45 43 0d 0a 20 20 20 20 20 20 20 20 20 20  CREC..          
6c20: 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20 20        //        
6c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 41               | A
6c40: 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 49 4e 46 4f  CE_CALLBACK_INFO
6c50: 5f 52 45 43 4f 56 45 52 45 44 0d 0a 20 20 20 20  _RECOVERED..    
6c60: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
6c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6c80: 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41 43     | ACE_CALLBAC
6c90: 4b 5f 49 4e 46 4f 5f 4e 4f 44 41 4d 41 47 45 0d  K_INFO_NODAMAGE.
6ca0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
6cb0: 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20   //             
6cc0: 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41          | ACE_CA
6cd0: 4c 4c 42 41 43 4b 5f 49 4e 46 4f 5f 46 4e 44 4d  LLBACK_INFO_FNDM
6ce0: 41 49 4e 48 45 41 44 0d 0a 20 20 20 20 20 20 20  AINHEAD..       
6cf0: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20 20           //     
6d00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6d10: 7c 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 49  | ACE_CALLBACK_I
6d20: 4e 46 4f 5f 46 49 4c 45 4c 49 53 54 43 52 45 41  NFO_FILELISTCREA
6d30: 54 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  TE..            
6d40: 20 20 20 20 2f 2f 20 20 20 20 20 20 20 20 20 20      //          
6d50: 20 20 20 20 20 20 20 20 20 20 20 7c 20 41 43 45             | ACE
6d60: 5f 43 41 4c 4c 42 41 43 4b 5f 49 4e 46 4f 5f 46  _CALLBACK_INFO_F
6d70: 49 4c 45 4c 49 53 54 43 52 45 41 54 45 45 4e 44  ILELISTCREATEEND
6d80: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
6d90: 20 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20    //            
6da0: 20 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f 43           | ACE_C
6db0: 41 4c 4c 42 41 43 4b 5f 49 4e 46 4f 5f 46 49 4c  ALLBACK_INFO_FIL
6dc0: 45 53 4f 52 54 0d 0a 20 20 20 20 20 20 20 20 20  ESORT..         
6dd0: 20 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20         //       
6de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20                | 
6df0: 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 49 4e 46  ACE_CALLBACK_INF
6e00: 4f 5f 46 49 4c 45 53 4f 52 54 45 4e 44 0d 0a 20  O_FILESORTEND.. 
6e10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
6e20: 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  /               
6e30: 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c        | ACE_CALL
6e40: 42 41 43 4b 5f 49 4e 46 4f 5f 43 4f 50 59 45 4e  BACK_INFO_COPYEN
6e50: 44 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  D..             
6e60: 20 20 20 2f 2f 20 2d 20 2d 20 2d 20 2d 20 2d 20     // - - - - - 
6e70: 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20  - - - - - - - - 
6e80: 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20  - - - - - - - - 
6e90: 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20  - - - - - - - - 
6ea0: 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  -..             
6eb0: 20 20 20 2f 2f 20 45 72 72 6f 72 43 61 6c 6c 62     // ErrorCallb
6ec0: 61 63 6b 50 72 6f 63 20 20 20 7c 20 41 43 45 5f  ackProc   | ACE_
6ed0: 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 4d  CALLBACK_ERROR_M
6ee0: 4f 44 49 46 59 56 4f 4c 55 4d 45 0d 0a 20 20 20  ODIFYVOLUME..   
6ef0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
6f00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6f10: 20 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41      | ACE_CALLBA
6f20: 43 4b 5f 45 52 52 4f 52 5f 4d 4f 44 49 46 59 4c  CK_ERROR_MODIFYL
6f30: 4f 43 4b 45 44 41 52 43 48 49 56 45 0d 0a 20 20  OCKEDARCHIVE..  
6f40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
6f50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6f60: 20 20 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c 42       | ACE_CALLB
6f70: 41 43 4b 5f 45 52 52 4f 52 5f 41 56 20 20 20 20  ACK_ERROR_AV    
6f80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
6f90: 20 6e 6f 74 20 75 73 65 64 20 69 6e 20 41 43 4c   not used in ACL
6fa0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
6fb0: 20 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20    //            
6fc0: 20 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f 43           | ACE_C
6fd0: 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 54 4f  ALLBACK_ERROR_TO
6fe0: 4f 44 41 4d 41 47 45 44 0d 0a 20 20 20 20 20 20  ODAMAGED..      
6ff0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20            //    
7000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7010: 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f   | ACE_CALLBACK_
7020: 45 52 52 4f 52 5f 41 52 43 48 49 56 45 45 58 49  ERROR_ARCHIVEEXI
7030: 53 54 53 0d 0a 20 20 20 20 20 20 20 20 20 20 20  STS..           
7040: 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20 20 20       //         
7050: 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 41 43              | AC
7060: 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52  E_CALLBACK_ERROR
7070: 5f 4f 50 45 4e 52 45 50 41 49 52 41 52 43 48 49  _OPENREPAIRARCHI
7080: 56 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  VE..            
7090: 20 20 20 20 2f 2f 20 20 20 20 20 20 20 20 20 20      //          
70a0: 20 20 20 20 20 20 20 20 20 20 20 7c 20 41 43 45             | ACE
70b0: 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f  _CALLBACK_ERROR_
70c0: 4f 50 45 4e 41 52 43 48 49 56 45 52 45 41 44 0d  OPENARCHIVEREAD.
70d0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
70e0: 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20   //             
70f0: 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41          | ACE_CA
7100: 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 4f 50 45  LLBACK_ERROR_OPE
7110: 4e 41 52 43 48 49 56 45 57 52 49 54 45 0d 0a 20  NARCHIVEWRITE.. 
7120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
7130: 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  /               
7140: 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c        | ACE_CALL
7150: 42 41 43 4b 5f 45 52 52 4f 52 5f 52 45 41 44 41  BACK_ERROR_READA
7160: 52 43 48 49 56 45 0d 0a 20 20 20 20 20 20 20 20  RCHIVE..        
7170: 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20          //      
7180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c                 |
7190: 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52   ACE_CALLBACK_ER
71a0: 52 4f 52 5f 57 52 49 54 45 41 52 43 48 49 56 45  ROR_WRITEARCHIVE
71b0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
71c0: 20 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20    //            
71d0: 20 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f 43           | ACE_C
71e0: 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 41 4c  ALLBACK_ERROR_AL
71f0: 52 45 41 44 59 53 46 58 0d 0a 20 20 20 20 20 20  READYSFX..      
7200: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20            //    
7210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7220: 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f   | ACE_CALLBACK_
7230: 45 52 52 4f 52 5f 41 44 44 53 46 58 54 4f 56 4f  ERROR_ADDSFXTOVO
7240: 4c 55 4d 45 0d 0a 20 20 20 20 20 20 20 20 20 20  LUME..          
7250: 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20 20        //        
7260: 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 41               | A
7270: 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f  CE_CALLBACK_ERRO
7280: 52 5f 41 52 43 48 49 56 45 42 52 4f 4b 45 4e 0d  R_ARCHIVEBROKEN.
7290: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
72a0: 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20   //             
72b0: 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41          | ACE_CA
72c0: 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 41 52 43  LLBACK_ERROR_ARC
72d0: 48 49 56 45 53 41 56 45 0d 0a 20 20 20 20 20 20  HIVESAVE..      
72e0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20            //    
72f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7300: 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f   | ACE_CALLBACK_
7310: 45 52 52 4f 52 5f 4e 4f 46 49 4c 45 53 0d 0a 20  ERROR_NOFILES.. 
7320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
7330: 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  /               
7340: 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c        | ACE_CALL
7350: 42 41 43 4b 5f 45 52 52 4f 52 5f 49 53 4e 4f 54  BACK_ERROR_ISNOT
7360: 41 4e 41 52 43 48 49 56 45 0d 0a 20 20 20 20 20  ANARCHIVE..     
7370: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
7380: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7390: 20 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b    | ACE_CALLBACK
73a0: 5f 45 52 52 4f 52 5f 54 45 4d 50 44 49 52 43 52  _ERROR_TEMPDIRCR
73b0: 45 41 54 45 0d 0a 20 20 20 20 20 20 20 20 20 20  EATE..          
73c0: 20 20 20 20 20 20 2f 2f 20 2d 20 2d 20 2d 20 2d        // - - - -
73d0: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
73e0: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
73f0: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
7400: 20 2d 20 2d 0d 0a 20 20 20 20 20 20 20 20 20 20   - -..          
7410: 20 20 20 20 20 20 2f 2f 20 52 65 71 75 65 73 74        // Request
7420: 43 61 6c 6c 62 61 63 6b 50 72 6f 63 20 7c 20 41  CallbackProc | A
7430: 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 52 45 51 55  CE_CALLBACK_REQU
7440: 45 53 54 5f 4d 41 52 4b 41 53 53 4f 4c 49 44 0d  EST_MARKASSOLID.
7450: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
7460: 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20   //             
7470: 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41          | ACE_CA
7480: 4c 4c 42 41 43 4b 5f 52 45 51 55 45 53 54 5f 43  LLBACK_REQUEST_C
7490: 48 41 4e 47 45 56 4f 4c 55 4d 45 0d 0a 20 20 20  HANGEVOLUME..   
74a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
74b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
74c0: 20 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41      | ACE_CALLBA
74d0: 43 4b 5f 52 45 51 55 45 53 54 5f 41 52 43 48 49  CK_REQUEST_ARCHI
74e0: 56 45 45 58 49 53 54 53 0d 0a 20 20 20 20 20 20  VEEXISTS..      
74f0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 2d 20 2d            // - -
7500: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
7510: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
7520: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
7530: 20 2d 20 2d 20 2d 20 2d 0d 0a 20 20 20 20 20 20   - - - -..      
7540: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 53 74 61            // Sta
7550: 74 65 43 61 6c 6c 62 61 63 6b 50 72 6f 63 20 20  teCallbackProc  
7560: 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f   | ACE_CALLBACK_
7570: 53 54 41 54 45 5f 53 54 41 52 54 41 52 43 48 49  STATE_STARTARCHI
7580: 56 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  VE..            
7590: 20 20 20 20 2f 2f 0d 0a 0d 0a 0d 0a 20 20 20 20      //......    
75a0: 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f      #define ACE_
75b0: 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52  CALLBACK_TYPE_AR
75c0: 43 48 49 56 45 44 46 49 4c 45 20 20 20 20 20 20  CHIVEDFILE      
75d0: 20 20 20 20 30 78 32 0d 0a 0d 0a 20 20 20 20 20      0x2....     
75e0: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74 79             // ty
75f0: 70 65 20 6f 66 20 73 74 72 75 63 74 75 72 65 20  pe of structure 
7600: 69 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  is..            
7610: 20 20 20 20 2f 2f 20 74 41 43 45 43 61 6c 6c 62      // tACECallb
7620: 61 63 6b 41 72 63 68 69 76 65 64 46 69 6c 65 53  ackArchivedFileS
7630: 74 72 75 63 0d 0a 20 20 20 20 20 20 20 20 20 20  truc..          
7640: 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d        //--------
7650: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7660: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7670: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7680: 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20  -----..         
7690: 20 20 20 20 20 20 20 2f 2f 20 63 61 6c 6c 62 61         // callba
76a0: 63 6b 20 66 75 6e 63 74 69 6f 6e 20 20 20 7c 20  ck function   | 
76b0: 63 6f 64 65 73 20 75 73 69 6e 67 20 74 68 69 73  codes using this
76c0: 20 73 74 72 75 63 74 75 72 65 0d 0a 20 20 20 20   structure..    
76d0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 2d              // -
76e0: 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d  -- --- --- --- -
76f0: 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d  -- --- --- --- -
7700: 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d  -- --- --- --- -
7710: 2d 2d 20 2d 2d 2d 20 2d 2d 2d 0d 0a 20 20 20 20  -- --- ---..    
7720: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 49              // I
7730: 6e 66 6f 43 61 6c 6c 62 61 63 6b 50 72 6f 63 20  nfoCallbackProc 
7740: 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41 43     | ACE_CALLBAC
7750: 4b 5f 49 4e 46 4f 5f 54 4d 50 41 52 43 43 52 45  K_INFO_TMPARCCRE
7760: 41 54 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ATE..           
7770: 20 20 20 20 20 2f 2f 20 2d 20 2d 20 2d 20 2d 20       // - - - - 
7780: 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20  - - - - - - - - 
7790: 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20  - - - - - - - - 
77a0: 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20  - - - - - - - - 
77b0: 2d 20 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20  - -..           
77c0: 20 20 20 20 20 2f 2f 20 45 72 72 6f 72 43 61 6c       // ErrorCal
77d0: 6c 62 61 63 6b 50 72 6f 63 20 20 20 7c 20 41 43  lbackProc   | AC
77e0: 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52  E_CALLBACK_ERROR
77f0: 5f 43 52 45 41 54 49 4f 4e 4e 41 4d 45 49 4e 55  _CREATIONNAMEINU
7800: 53 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  SE..            
7810: 20 20 20 20 2f 2f 20 20 20 20 20 20 20 20 20 20      //          
7820: 20 20 20 20 20 20 20 20 20 20 20 7c 20 41 43 45             | ACE
7830: 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f  _CALLBACK_ERROR_
7840: 48 49 47 48 45 52 56 45 52 53 49 4f 4e 0d 0a 20  HIGHERVERSION.. 
7850: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
7860: 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  /               
7870: 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c        | ACE_CALL
7880: 42 41 43 4b 5f 45 52 52 4f 52 5f 45 4e 43 52 59  BACK_ERROR_ENCRY
7890: 50 54 49 4f 4e 43 52 43 0d 0a 20 20 20 20 20 20  PTIONCRC..      
78a0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20            //    
78b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
78c0: 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f   | ACE_CALLBACK_
78d0: 45 52 52 4f 52 5f 57 52 49 54 45 0d 0a 20 20 20  ERROR_WRITE..   
78e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
78f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7900: 20 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41      | ACE_CALLBA
7910: 43 4b 5f 45 52 52 4f 52 5f 52 45 41 44 0d 0a 20  CK_ERROR_READ.. 
7920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
7930: 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  /               
7940: 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c        | ACE_CALL
7950: 42 41 43 4b 5f 45 52 52 4f 52 5f 4f 50 45 4e 52  BACK_ERROR_OPENR
7960: 45 41 44 0d 0a 20 20 20 20 20 20 20 20 20 20 20  EAD..           
7970: 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20 20 20       //         
7980: 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 41 43              | AC
7990: 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52  E_CALLBACK_ERROR
79a0: 5f 4f 50 45 4e 57 52 49 54 45 20 2f 2f 77 69 72  _OPENWRITE //wir
79b0: 64 20 6e 6f 63 68 20 67 61 72 20 6e 69 63 68 20  d noch gar nich 
79c0: 62 65 6e 75 74 7a 74 3f 3f 20 73 6f 6c 6c 74 65  benutzt?? sollte
79d0: 20 61 62 65 72 20 2d 20 62 65 69 20 65 78 74 72   aber - bei extr
79e0: 61 63 74 21 0d 0a 20 20 20 20 20 20 20 20 20 20  act!..          
79f0: 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20 20        //        
7a00: 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 41               | A
7a10: 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f  CE_CALLBACK_ERRO
7a20: 52 5f 46 49 4c 45 4e 41 4d 45 54 4f 4f 4c 4f 4e  R_FILENAMETOOLON
7a30: 47 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  G..             
7a40: 20 20 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20     //           
7a50: 20 20 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f            | ACE_
7a60: 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 52  CALLBACK_ERROR_R
7a70: 45 50 41 43 4b 43 52 43 0d 0a 20 20 20 20 20 20  EPACKCRC..      
7a80: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20            //    
7a90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7aa0: 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f   | ACE_CALLBACK_
7ab0: 45 52 52 4f 52 5f 45 58 43 4c 55 44 45 50 41 54  ERROR_EXCLUDEPAT
7ac0: 48 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  H..             
7ad0: 20 20 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20     //           
7ae0: 20 20 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f            | ACE_
7af0: 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 4d  CALLBACK_ERROR_M
7b00: 45 54 48 4f 44 0d 0a 20 20 20 20 20 20 20 20 20  ETHOD..         
7b10: 20 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20         //       
7b20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20                | 
7b30: 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52  ACE_CALLBACK_ERR
7b40: 4f 52 5f 45 58 54 52 41 43 54 53 50 41 43 45 0d  OR_EXTRACTSPACE.
7b50: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
7b60: 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20   //             
7b70: 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41          | ACE_CA
7b80: 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 43 52 45  LLBACK_ERROR_CRE
7b90: 41 54 49 4f 4e 0d 0a 20 20 20 20 20 20 20 20 20  ATION..         
7ba0: 20 20 20 20 20 20 20 2f 2f 20 2d 20 2d 20 2d 20         // - - - 
7bb0: 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20  - - - - - - - - 
7bc0: 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20  - - - - - - - - 
7bd0: 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20  - - - - - - - - 
7be0: 2d 20 2d 20 2d 0d 0a 20 20 20 20 20 20 20 20 20  - - -..         
7bf0: 20 20 20 20 20 20 20 2f 2f 20 52 65 71 75 65 73         // Reques
7c00: 74 43 61 6c 6c 62 61 63 6b 50 72 6f 63 20 7c 20  tCallbackProc | 
7c10: 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 52 45 51  ACE_CALLBACK_REQ
7c20: 55 45 53 54 5f 4f 56 45 52 57 52 49 54 45 0d 0a  UEST_OVERWRITE..
7c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7c40: 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20  //              
7c50: 20 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41 4c         | ACE_CAL
7c60: 4c 42 41 43 4b 5f 52 45 51 55 45 53 54 5f 44 45  LBACK_REQUEST_DE
7c70: 4c 45 54 45 41 52 43 48 49 56 45 44 53 59 53 46  LETEARCHIVEDSYSF
7c80: 49 4c 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ILE..           
7c90: 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20 20 20       //         
7ca0: 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 41 43              | AC
7cb0: 45 5f 43 41 4c 4c 42 41 43 4b 5f 52 45 51 55 45  E_CALLBACK_REQUE
7cc0: 53 54 5f 41 44 44 42 52 4f 4b 45 4e 46 49 4c 45  ST_ADDBROKENFILE
7cd0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
7ce0: 20 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20    //            
7cf0: 20 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f 43           | ACE_C
7d00: 41 4c 4c 42 41 43 4b 5f 52 45 51 55 45 53 54 5f  ALLBACK_REQUEST_
7d10: 50 41 53 53 57 4f 52 44 0d 0a 20 20 20 20 20 20  PASSWORD..      
7d20: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20            //    
7d30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7d40: 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f   | ACE_CALLBACK_
7d50: 52 45 51 55 45 53 54 5f 4f 56 45 52 57 52 49 54  REQUEST_OVERWRIT
7d60: 45 53 59 53 46 49 4c 45 0d 0a 20 20 20 20 20 20  ESYSFILE..      
7d70: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 2d 20 2d            // - -
7d80: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
7d90: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
7da0: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
7db0: 20 2d 20 2d 20 2d 20 2d 0d 0a 20 20 20 20 20 20   - - - -..      
7dc0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 53 74 61            // Sta
7dd0: 74 65 43 61 6c 6c 62 61 63 6b 50 72 6f 63 20 20  teCallbackProc  
7de0: 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f   | ACE_CALLBACK_
7df0: 53 54 41 54 45 5f 53 54 41 52 54 46 49 4c 45 0d  STATE_STARTFILE.
7e00: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
7e10: 20 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20   //             
7e20: 20 20 20 20 20 20 20 20 7c 20 41 43 45 5f 43 41          | ACE_CA
7e30: 4c 4c 42 41 43 4b 5f 53 54 41 54 45 5f 45 4e 44  LLBACK_STATE_END
7e40: 4e 4f 43 52 43 43 48 45 43 4b 0d 0a 20 20 20 20  NOCRCCHECK..    
7e50: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 0d 0a              //..
7e60: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66  ....        #def
7e70: 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b  ine ACE_CALLBACK
7e80: 5f 54 59 50 45 5f 52 45 41 4c 46 49 4c 45 20 20  _TYPE_REALFILE  
7e90: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 33 0d              0x3.
7ea0: 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ...             
7eb0: 20 20 20 2f 2f 20 74 79 70 65 20 6f 66 20 73 74     // type of st
7ec0: 72 75 63 74 75 72 65 20 69 73 0d 0a 20 20 20 20  ructure is..    
7ed0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74              // t
7ee0: 41 43 45 43 61 6c 6c 62 61 63 6b 52 65 61 6c 46  ACECallbackRealF
7ef0: 69 6c 65 53 74 72 75 63 0d 0a 20 20 20 20 20 20  ileStruc..      
7f00: 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d            //----
7f10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7f20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7f30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7f40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20  ---------..     
7f50: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 63 61             // ca
7f60: 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e 20  llback function 
7f70: 20 20 7c 20 63 6f 64 65 73 20 75 73 69 6e 67 20    | codes using 
7f80: 74 68 69 73 20 73 74 72 75 63 74 75 72 65 0d 0a  this structure..
7f90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7fa0: 2f 2f 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d  // --- --- --- -
7fb0: 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d  -- --- --- --- -
7fc0: 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d  -- --- --- --- -
7fd0: 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 0d 0a  -- --- --- ---..
7fe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
7ff0: 2f 2f 20 49 6e 66 6f 43 61 6c 6c 62 61 63 6b 50  // InfoCallbackP
8000: 72 6f 63 20 20 20 20 7c 20 41 43 45 5f 43 41 4c  roc    | ACE_CAL
8010: 4c 42 41 43 4b 5f 49 4e 46 4f 5f 46 49 4c 45 4c  LBACK_INFO_FILEL
8020: 49 53 54 41 44 44 0d 0a 20 20 20 20 20 20 20 20  ISTADD..        
8030: 20 20 20 20 20 20 20 20 2f 2f 20 2d 20 2d 20 2d          // - - -
8040: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
8050: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
8060: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
8070: 20 2d 20 2d 20 2d 0d 0a 20 20 20 20 20 20 20 20   - - -..        
8080: 20 20 20 20 20 20 20 20 2f 2f 20 45 72 72 6f 72          // Error
8090: 43 61 6c 6c 62 61 63 6b 50 72 6f 63 20 20 20 7c  CallbackProc   |
80a0: 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52   ACE_CALLBACK_ER
80b0: 52 4f 52 5f 4d 4f 56 45 44 45 4c 45 54 45 0d 0a  ROR_MOVEDELETE..
80c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
80d0: 2f 2f 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d  // - - - - - - -
80e0: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
80f0: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d   - - - - - - - -
8100: 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 0d 0a   - - - - - - -..
8110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8120: 2f 2f 20 52 65 71 75 65 73 74 43 61 6c 6c 62 61  // RequestCallba
8130: 63 6b 50 72 6f 63 20 7c 20 41 43 45 5f 43 41 4c  ckProc | ACE_CAL
8140: 4c 42 41 43 4b 5f 52 45 51 55 45 53 54 5f 4d 4f  LBACK_REQUEST_MO
8150: 56 45 44 45 4c 45 54 45 52 45 41 4c 53 59 53 46  VEDELETEREALSYSF
8160: 49 4c 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ILE..           
8170: 20 20 20 20 20 2f 2f 20 2d 20 2d 20 2d 20 2d 20       // - - - - 
8180: 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20  - - - - - - - - 
8190: 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20  - - - - - - - - 
81a0: 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20 2d 20  - - - - - - - - 
81b0: 2d 20 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20  - -..           
81c0: 20 20 20 20 20 2f 2f 20 53 74 61 74 65 43 61 6c       // StateCal
81d0: 6c 62 61 63 6b 50 72 6f 63 20 20 20 7c 20 41 43  lbackProc   | AC
81e0: 45 5f 43 41 4c 4c 42 41 43 4b 5f 53 54 41 54 45  E_CALLBACK_STATE
81f0: 5f 53 54 41 52 54 46 49 4c 45 0d 0a 20 20 20 20  _STARTFILE..    
8200: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 0d 0a              //..
8210: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66  ....        #def
8220: 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b  ine ACE_CALLBACK
8230: 5f 54 59 50 45 5f 53 50 41 43 45 20 20 20 20 20  _TYPE_SPACE     
8240: 20 20 20 20 20 20 20 20 20 20 20 20 30 78 34 0d              0x4.
8250: 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ...             
8260: 20 20 20 2f 2f 20 74 79 70 65 20 6f 66 20 73 74     // type of st
8270: 72 75 63 74 75 72 65 20 69 73 0d 0a 20 20 20 20  ructure is..    
8280: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74              // t
8290: 41 43 45 43 61 6c 6c 62 61 63 6b 53 70 61 63 65  ACECallbackSpace
82a0: 53 74 72 75 63 0d 0a 20 20 20 20 20 20 20 20 20  Struc..         
82b0: 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d         //-------
82c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
82d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
82e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
82f0: 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20  ------..        
8300: 20 20 20 20 20 20 20 20 2f 2f 20 63 61 6c 6c 62          // callb
8310: 61 63 6b 20 66 75 6e 63 74 69 6f 6e 20 20 20 7c  ack function   |
8320: 20 63 6f 64 65 73 20 75 73 69 6e 67 20 74 68 69   codes using thi
8330: 73 20 73 74 72 75 63 74 75 72 65 0d 0a 20 20 20  s structure..   
8340: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
8350: 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20  --- --- --- --- 
8360: 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20  --- --- --- --- 
8370: 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20  --- --- --- --- 
8380: 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 0d 0a 20 20 20  --- --- ---..   
8390: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
83a0: 45 72 72 6f 72 43 61 6c 6c 62 61 63 6b 50 72 6f  ErrorCallbackPro
83b0: 63 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c 42 41  c   | ACE_CALLBA
83c0: 43 4b 5f 45 52 52 4f 52 5f 54 45 4d 50 44 49 52  CK_ERROR_TEMPDIR
83d0: 53 50 41 43 45 0d 0a 20 20 20 20 20 20 20 20 20  SPACE..         
83e0: 20 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20         //       
83f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20                | 
8400: 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52  ACE_CALLBACK_ERR
8410: 4f 52 5f 41 52 43 48 49 56 45 53 50 41 43 45 0d  OR_ARCHIVESPACE.
8420: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
8430: 20 2f 2f 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20   //......       
8440: 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c   #define ACE_CAL
8450: 4c 42 41 43 4b 5f 54 59 50 45 5f 53 46 58 46 49  LBACK_TYPE_SFXFI
8460: 4c 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20  LE              
8470: 20 30 78 35 0d 0a 0d 0a 20 20 20 20 20 20 20 20   0x5....        
8480: 20 20 20 20 20 20 20 20 2f 2f 20 74 79 70 65 20          // type 
8490: 6f 66 20 73 74 72 75 63 74 75 72 65 20 69 73 0d  of structure is.
84a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
84b0: 20 2f 2f 20 74 41 43 45 43 61 6c 6c 62 61 63 6b   // tACECallback
84c0: 53 46 58 46 69 6c 65 53 74 72 75 63 0d 0a 20 20  SFXFileStruc..  
84d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
84e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
84f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8500: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8510: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20  -------------.. 
8520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
8530: 2f 20 63 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74  / callback funct
8540: 69 6f 6e 20 20 20 7c 20 63 6f 64 65 73 20 75 73  ion   | codes us
8550: 69 6e 67 20 74 68 69 73 20 73 74 72 75 63 74 75  ing this structu
8560: 72 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  re..            
8570: 20 20 20 20 2f 2f 20 2d 2d 2d 20 2d 2d 2d 20 2d      // --- --- -
8580: 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d  -- --- --- --- -
8590: 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d  -- --- --- --- -
85a0: 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d  -- --- --- --- -
85b0: 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  --..            
85c0: 20 20 20 20 2f 2f 20 45 72 72 6f 72 43 61 6c 6c      // ErrorCall
85d0: 62 61 63 6b 50 72 6f 63 20 20 20 7c 20 41 43 45  backProc   | ACE
85e0: 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f  _CALLBACK_ERROR_
85f0: 52 45 41 44 49 4e 47 53 46 58 46 49 4c 45 0d 0a  READINGSFXFILE..
8600: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8610: 2f 2f 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20  //......        
8620: 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c  #define ACE_CALL
8630: 42 41 43 4b 5f 54 59 50 45 5f 43 4f 50 59 20 20  BACK_TYPE_COPY  
8640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8650: 30 78 36 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20  0x6....         
8660: 20 20 20 20 20 20 20 2f 2f 20 74 79 70 65 20 6f         // type o
8670: 66 20 73 74 72 75 63 74 75 72 65 20 69 73 0d 0a  f structure is..
8680: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8690: 2f 2f 20 74 41 43 45 43 61 6c 6c 62 61 63 6b 43  // tACECallbackC
86a0: 6f 70 79 53 74 72 75 63 0d 0a 20 20 20 20 20 20  opyStruc..      
86b0: 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d            //----
86c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
86d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
86e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
86f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20  ---------..     
8700: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 63 61             // ca
8710: 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e 20  llback function 
8720: 20 20 7c 20 63 6f 64 65 73 20 75 73 69 6e 67 20    | codes using 
8730: 74 68 69 73 20 73 74 72 75 63 74 75 72 65 0d 0a  this structure..
8740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8750: 2f 2f 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d  // --- --- --- -
8760: 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d  -- --- --- --- -
8770: 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d  -- --- --- --- -
8780: 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 0d 0a  -- --- --- ---..
8790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
87a0: 2f 2f 20 49 6e 66 6f 43 61 6c 6c 62 61 63 6b 50  // InfoCallbackP
87b0: 72 6f 63 20 20 20 20 7c 20 41 43 45 5f 43 41 4c  roc    | ACE_CAL
87c0: 4c 42 41 43 4b 5f 49 4e 46 4f 5f 43 4f 50 59 0d  LBACK_INFO_COPY.
87d0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
87e0: 20 2f 2f 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20   //......       
87f0: 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c   #define ACE_CAL
8800: 4c 42 41 43 4b 5f 54 59 50 45 5f 50 52 4f 47 52  LBACK_TYPE_PROGR
8810: 45 53 53 20 20 20 20 20 20 20 20 20 20 20 20 20  ESS             
8820: 20 30 78 37 0d 0a 0d 0a 20 20 20 20 20 20 20 20   0x7....        
8830: 20 20 20 20 20 20 20 20 2f 2f 20 74 79 70 65 20          // type 
8840: 6f 66 20 73 74 72 75 63 74 75 72 65 20 69 73 0d  of structure is.
8850: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
8860: 20 2f 2f 20 74 41 43 45 43 61 6c 6c 62 61 63 6b   // tACECallback
8870: 50 72 6f 67 72 65 73 73 53 74 72 75 63 0d 0a 20  ProgressStruc.. 
8880: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
8890: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
88a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
88b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
88c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
88d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
88e0: 2f 2f 20 63 61 6c 6c 62 61 63 6b 20 66 75 6e 63  // callback func
88f0: 74 69 6f 6e 20 20 20 7c 20 63 6f 64 65 73 20 75  tion   | codes u
8900: 73 69 6e 67 20 74 68 69 73 20 73 74 72 75 63 74  sing this struct
8910: 75 72 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ure..           
8920: 20 20 20 20 20 2f 2f 20 2d 2d 2d 20 2d 2d 2d 20       // --- --- 
8930: 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20  --- --- --- --- 
8940: 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20  --- --- --- --- 
8950: 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20  --- --- --- --- 
8960: 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ---..           
8970: 20 20 20 20 20 2f 2f 20 53 74 61 74 65 43 61 6c       // StateCal
8980: 6c 62 61 63 6b 50 72 6f 63 20 20 20 7c 20 41 43  lbackProc   | AC
8990: 45 5f 43 41 4c 4c 42 41 43 4b 5f 53 54 41 54 45  E_CALLBACK_STATE
89a0: 5f 50 52 4f 47 52 45 53 53 0d 0a 20 20 20 20 20  _PROGRESS..     
89b0: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 0d 0a 0d             //...
89c0: 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69  ...        #defi
89d0: 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f  ne ACE_CALLBACK_
89e0: 54 59 50 45 5f 43 52 43 43 48 45 43 4b 20 20 20  TYPE_CRCCHECK   
89f0: 20 20 20 20 20 20 20 20 20 20 20 30 78 38 0d 0a             0x8..
8a00: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
8a10: 20 20 2f 2f 20 74 79 70 65 20 6f 66 20 73 74 72    // type of str
8a20: 75 63 74 75 72 65 20 69 73 0d 0a 20 20 20 20 20  ucture is..     
8a30: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74 41             // tA
8a40: 43 45 43 61 6c 6c 62 61 63 6b 43 52 43 43 68 65  CECallbackCRCChe
8a50: 63 6b 53 74 72 75 63 0d 0a 20 20 20 20 20 20 20  ckStruc..       
8a60: 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d           //-----
8a70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8a80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8a90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8aa0: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20  --------..      
8ab0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 63 61 6c            // cal
8ac0: 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e 20 20  lback function  
8ad0: 20 7c 20 63 6f 64 65 73 20 75 73 69 6e 67 20 74   | codes using t
8ae0: 68 69 73 20 73 74 72 75 63 74 75 72 65 0d 0a 20  his structure.. 
8af0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
8b00: 2f 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d  / --- --- --- --
8b10: 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d  - --- --- --- --
8b20: 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d  - --- --- --- --
8b30: 2d 20 2d 2d 2d 20 2d 2d 2d 20 2d 2d 2d 0d 0a 20  - --- --- ---.. 
8b40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
8b50: 2f 20 53 74 61 74 65 43 61 6c 6c 62 61 63 6b 50  / StateCallbackP
8b60: 72 6f 63 20 20 20 7c 20 41 43 45 5f 43 41 4c 4c  roc   | ACE_CALL
8b70: 42 41 43 4b 5f 53 54 41 54 45 5f 45 4e 44 43 52  BACK_STATE_ENDCR
8b80: 43 43 48 45 43 4b 0d 0a 20 20 20 20 20 20 20 20  CCHECK..        
8b90: 20 20 20 20 20 20 20 20 2f 2f 0d 0a 0d 0a 0d 0a          //......
8ba0: 20 20 2f 2f cd cd cd cd cd cd cd cd cd cd cd cd    //............
8bb0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
8bc0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
8bd0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
8be0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd 0d  ................
8bf0: 0a 20 20 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  .  //===========
8c00: 3d 3d 3d 2d 2d 2d 20 20 50 61 72 74 20 32 2e 34  ===---  Part 2.4
8c10: 3a 20 64 69 66 66 65 72 65 6e 74 20 63 61 6c 6c  : different call
8c20: 62 61 63 6b 20 73 74 72 75 63 74 75 72 65 73 20  back structures 
8c30: 20 2d 2d 2d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d   ---============
8c40: 0d 0a 20 20 2f 2f cd cd cd cd cd cd cd cd cd cd  ..  //..........
8c50: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
8c60: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
8c70: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
8c80: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
8c90: cd 0d 0a 20 20 2f 2f 20 54 68 65 73 65 20 61 72  ...  // These ar
8ca0: 65 20 74 68 65 20 64 65 63 6c 61 72 61 74 69 6f  e the declaratio
8cb0: 6e 73 20 6f 66 20 74 68 65 20 64 69 66 66 65 72  ns of the differ
8cc0: 65 6e 74 20 73 74 72 75 63 74 75 72 65 73 20 75  ent structures u
8cd0: 73 65 64 20 69 6e 20 74 68 65 0d 0a 20 20 2f 2f  sed in the..  //
8ce0: 20 75 6e 69 6f 6e 73 20 70 61 73 73 65 64 20 62   unions passed b
8cf0: 79 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 66  y the callback f
8d00: 75 6e 63 74 69 6f 6e 73 2e 0d 0a 20 20 2f 2f 2d  unctions...  //-
8d10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8d20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8d30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8d40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8d50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20  ----------....  
8d60: 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
8d70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8d80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8d90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8da0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20  -------------.. 
8db0: 20 20 20 20 20 2f 2f 20 4f 6e 6c 79 20 74 68 65       // Only the
8dc0: 20 44 6c 6c 20 47 6c 6f 62 61 6c 44 61 74 61 20   Dll GlobalData 
8dd0: 69 73 20 70 61 73 73 65 64 20 74 6f 20 74 68 65  is passed to the
8de0: 20 61 70 70 6c 69 63 61 74 69 6f 6e 2e 0d 0a 20   application... 
8df0: 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
8e00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8e10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8e20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8e30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
8e40: 0d 0a 20 20 20 20 20 20 20 20 74 79 70 65 64 65  ..        typede
8e50: 66 20 73 74 72 75 63 74 20 73 41 43 45 43 61 6c  f struct sACECal
8e60: 6c 62 61 63 6b 47 6c 6f 62 61 6c 53 74 72 75 63  lbackGlobalStruc
8e70: 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20  ..        {..   
8e80: 20 20 20 20 20 20 20 55 4c 4f 4e 47 20 20 53 74         ULONG  St
8e90: 72 75 63 74 75 72 65 54 79 70 65 3b 20 20 20 20  ructureType;    
8ea0: 20 20 20 20 20 2f 2f 20 69 73 20 41 43 45 5f 43       // is ACE_C
8eb0: 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 47 4c 4f  ALLBACK_TYPE_GLO
8ec0: 42 41 4c 0d 0a 20 20 20 20 20 20 20 20 20 20 55  BAL..          U
8ed0: 4c 4f 4e 47 20 20 43 6f 64 65 3b 20 20 20 20 20  LONG  Code;     
8ee0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
8ef0: 73 65 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f  see definition o
8f00: 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  f..             
8f10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8f20: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 41 43             // AC
8f30: 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f  E_CALLBACK_TYPE_
8f40: 47 4c 4f 42 41 4c 0d 0a 20 20 20 20 20 20 20 20  GLOBAL..        
8f50: 20 20 55 4c 4f 4e 47 20 20 4f 70 65 72 61 74 69    ULONG  Operati
8f60: 6f 6e 3b 20 20 20 20 20 20 20 20 20 20 20 20 20  on;             
8f70: 2f 2f 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f  // ACE_CALLBACK_
8f80: 4f 50 45 52 41 54 49 4f 4e 20 63 6f 6e 73 74 61  OPERATION consta
8f90: 6e 74 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20  nt....          
8fa0: 70 41 43 45 47 6c 6f 62 61 6c 44 61 74 61 53 74  pACEGlobalDataSt
8fb0: 72 75 63 20 47 6c 6f 62 61 6c 44 61 74 61 3b 20  ruc GlobalData; 
8fc0: 20 20 20 20 20 20 2f 2f 20 73 65 65 20 74 41 43        // see tAC
8fd0: 45 47 6c 6f 62 61 6c 44 61 74 61 53 74 72 75 63  EGlobalDataStruc
8fe0: 0d 0a 20 20 20 20 20 20 20 20 7d 20 74 41 43 45  ..        } tACE
8ff0: 43 61 6c 6c 62 61 63 6b 47 6c 6f 62 61 6c 53 74  CallbackGlobalSt
9000: 72 75 63 2c 0d 0a 20 20 20 20 20 20 20 20 20 2a  ruc,..         *
9010: 70 41 43 45 43 61 6c 6c 62 61 63 6b 47 6c 6f 62  pACECallbackGlob
9020: 61 6c 53 74 72 75 63 3b 0d 0a 0d 0a 0d 0a 20 20  alStruc;......  
9030: 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
9040: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9050: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9060: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9070: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20  -------------.. 
9080: 20 20 20 20 20 2f 2f 20 54 68 65 20 44 6c 6c 20       // The Dll 
9090: 47 6c 6f 62 61 6c 44 61 74 61 20 61 6e 64 20 74  GlobalData and t
90a0: 68 65 20 41 72 63 68 69 76 65 44 61 74 61 20 61  he ArchiveData a
90b0: 72 65 20 70 61 73 73 65 64 2e 0d 0a 20 20 20 20  re passed...    
90c0: 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    //------------
90d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
90e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
90f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9100: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20  -----------.... 
9110: 20 20 20 20 20 20 20 74 79 70 65 64 65 66 20 73         typedef s
9120: 74 72 75 63 74 20 73 41 43 45 43 61 6c 6c 62 61  truct sACECallba
9130: 63 6b 41 72 63 68 69 76 65 53 74 72 75 63 0d 0a  ckArchiveStruc..
9140: 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20          {..     
9150: 20 20 20 20 20 55 4c 4f 4e 47 20 20 53 74 72 75       ULONG  Stru
9160: 63 74 75 72 65 54 79 70 65 3b 20 20 20 20 20 20  ctureType;      
9170: 20 20 20 2f 2f 20 69 73 20 41 43 45 5f 43 41 4c     // is ACE_CAL
9180: 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49  LBACK_TYPE_ARCHI
9190: 56 45 0d 0a 20 20 20 20 20 20 20 20 20 20 55 4c  VE..          UL
91a0: 4f 4e 47 20 20 43 6f 64 65 3b 20 20 20 20 20 20  ONG  Code;      
91b0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73              // s
91c0: 65 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66  ee definition of
91d0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
91e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
91f0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 41 43 45            // ACE
9200: 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 41  _CALLBACK_TYPE_A
9210: 52 43 48 49 56 45 0d 0a 20 20 20 20 20 20 20 20  RCHIVE..        
9220: 20 20 55 4c 4f 4e 47 20 20 4f 70 65 72 61 74 69    ULONG  Operati
9230: 6f 6e 3b 20 20 20 20 20 20 20 20 20 20 20 20 20  on;             
9240: 2f 2f 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f  // ACE_CALLBACK_
9250: 4f 50 45 52 41 54 49 4f 4e 20 63 6f 6e 73 74 61  OPERATION consta
9260: 6e 74 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20  nt....          
9270: 70 41 43 45 47 6c 6f 62 61 6c 44 61 74 61 53 74  pACEGlobalDataSt
9280: 72 75 63 20 20 47 6c 6f 62 61 6c 44 61 74 61 3b  ruc  GlobalData;
9290: 20 20 20 20 20 20 2f 2f 20 73 65 65 20 74 41 43        // see tAC
92a0: 45 47 6c 6f 62 61 6c 44 61 74 61 53 74 72 75 63  EGlobalDataStruc
92b0: 0d 0a 20 20 20 20 20 20 20 20 20 20 70 41 43 45  ..          pACE
92c0: 41 72 63 68 69 76 65 44 61 74 61 53 74 72 75 63  ArchiveDataStruc
92d0: 20 41 72 63 68 69 76 65 44 61 74 61 3b 20 20 20   ArchiveData;   
92e0: 20 20 2f 2f 20 73 65 65 20 74 41 43 45 41 72 63    // see tACEArc
92f0: 68 69 76 65 44 61 74 61 53 74 72 75 63 0d 0a 20  hiveDataStruc.. 
9300: 20 20 20 20 20 20 20 7d 20 74 41 43 45 43 61 6c         } tACECal
9310: 6c 62 61 63 6b 41 72 63 68 69 76 65 53 74 72 75  lbackArchiveStru
9320: 63 2c 0d 0a 20 20 20 20 20 20 20 20 20 2a 70 41  c,..         *pA
9330: 43 45 43 61 6c 6c 62 61 63 6b 41 72 63 68 69 76  CECallbackArchiv
9340: 65 53 74 72 75 63 3b 0d 0a 0d 0a 0d 0a 20 20 20  eStruc;......   
9350: 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d     //-----------
9360: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9370: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9380: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9390: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20  ------------..  
93a0: 20 20 20 20 2f 2f 20 47 6c 6f 62 61 6c 44 61 74      // GlobalDat
93b0: 61 2c 20 41 72 63 68 69 76 65 44 61 74 61 20 61  a, ArchiveData a
93c0: 6e 64 20 46 69 6c 65 44 61 74 61 20 61 72 65 20  nd FileData are 
93d0: 70 61 73 73 65 64 2e 0d 0a 20 20 20 20 20 20 2f  passed...      /
93e0: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
93f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9400: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9410: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9420: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20 20  --------....    
9430: 20 20 20 20 74 79 70 65 64 65 66 20 73 74 72 75      typedef stru
9440: 63 74 20 73 41 43 45 43 61 6c 6c 62 61 63 6b 41  ct sACECallbackA
9450: 72 63 68 69 76 65 64 46 69 6c 65 53 74 72 75 63  rchivedFileStruc
9460: 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20  ..        {..   
9470: 20 20 20 20 20 20 20 55 4c 4f 4e 47 20 20 53 74         ULONG  St
9480: 72 75 63 74 75 72 65 54 79 70 65 3b 20 20 20 20  ructureType;    
9490: 20 20 20 20 20 2f 2f 20 69 73 20 41 43 45 5f 43       // is ACE_C
94a0: 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52 43  ALLBACK_TYPE_ARC
94b0: 48 49 56 45 44 46 49 4c 45 0d 0a 20 20 20 20 20  HIVEDFILE..     
94c0: 20 20 20 20 20 55 4c 4f 4e 47 20 20 43 6f 64 65       ULONG  Code
94d0: 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;               
94e0: 20 20 20 2f 2f 20 73 65 65 20 64 65 66 69 6e 69     // see defini
94f0: 74 69 6f 6e 20 6f 66 0d 0a 20 20 20 20 20 20 20  tion of..       
9500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9510: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9520: 20 2f 2f 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b   // ACE_CALLBACK
9530: 5f 54 59 50 45 5f 41 52 43 48 49 56 45 44 46 49  _TYPE_ARCHIVEDFI
9540: 4c 45 0d 0a 20 20 20 20 20 20 20 20 20 20 55 4c  LE..          UL
9550: 4f 4e 47 20 20 4f 70 65 72 61 74 69 6f 6e 3b 20  ONG  Operation; 
9560: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 41              // A
9570: 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 4f 50 45 52  CE_CALLBACK_OPER
9580: 41 54 49 4f 4e 20 63 6f 6e 73 74 61 6e 74 0d 0a  ATION constant..
9590: 0d 0a 20 20 20 20 20 20 20 20 20 20 70 41 43 45  ..          pACE
95a0: 47 6c 6f 62 61 6c 44 61 74 61 53 74 72 75 63 20  GlobalDataStruc 
95b0: 20 47 6c 6f 62 61 6c 44 61 74 61 3b 20 20 20 20   GlobalData;    
95c0: 20 20 2f 2f 20 73 65 65 20 74 41 43 45 47 6c 6f    // see tACEGlo
95d0: 62 61 6c 44 61 74 61 53 74 72 75 63 0d 0a 20 20  balDataStruc..  
95e0: 20 20 20 20 20 20 20 20 70 41 43 45 41 72 63 68          pACEArch
95f0: 69 76 65 44 61 74 61 53 74 72 75 63 20 41 72 63  iveDataStruc Arc
9600: 68 69 76 65 44 61 74 61 3b 20 20 20 20 20 2f 2f  hiveData;     //
9610: 20 73 65 65 20 74 41 43 45 41 72 63 68 69 76 65   see tACEArchive
9620: 44 61 74 61 53 74 72 75 63 0d 0a 20 20 20 20 20  DataStruc..     
9630: 20 20 20 20 20 70 41 43 45 46 69 6c 65 44 61 74       pACEFileDat
9640: 61 53 74 72 75 63 20 20 20 20 46 69 6c 65 44 61  aStruc    FileDa
9650: 74 61 3b 20 20 20 20 20 20 20 20 2f 2f 20 73 65  ta;        // se
9660: 65 20 74 41 43 45 46 69 6c 65 44 61 74 61 53 74  e tACEFileDataSt
9670: 72 75 63 0d 0a 20 20 20 20 20 20 20 20 7d 20 74  ruc..        } t
9680: 41 43 45 43 61 6c 6c 62 61 63 6b 41 72 63 68 69  ACECallbackArchi
9690: 76 65 64 46 69 6c 65 53 74 72 75 63 2c 0d 0a 20  vedFileStruc,.. 
96a0: 20 20 20 20 20 20 20 20 2a 70 41 43 45 43 61 6c          *pACECal
96b0: 6c 62 61 63 6b 41 72 63 68 69 76 65 64 46 69 6c  lbackArchivedFil
96c0: 65 53 74 72 75 63 3b 0d 0a 0d 0a 0d 0a 20 20 20  eStruc;......   
96d0: 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d     //-----------
96e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
96f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9700: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9710: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20  ------------..  
9720: 20 20 20 20 2f 2f 20 47 6c 6f 62 61 6c 44 61 74      // GlobalDat
9730: 61 2c 20 41 72 63 68 69 76 65 44 61 74 61 20 61  a, ArchiveData a
9740: 6e 64 20 61 20 46 69 6c 65 4e 61 6d 65 20 61 72  nd a FileName ar
9750: 65 20 70 61 73 73 65 64 2e 0d 0a 20 20 20 20 20  e passed...     
9760: 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   //-------------
9770: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9780: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9790: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
97a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20  ----------....  
97b0: 20 20 20 20 20 20 74 79 70 65 64 65 66 20 73 74        typedef st
97c0: 72 75 63 74 20 73 41 43 45 43 61 6c 6c 62 61 63  ruct sACECallbac
97d0: 6b 52 65 61 6c 46 69 6c 65 53 74 72 75 63 0d 0a  kRealFileStruc..
97e0: 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20          {..     
97f0: 20 20 20 20 20 55 4c 4f 4e 47 20 20 53 74 72 75       ULONG  Stru
9800: 63 74 75 72 65 54 79 70 65 3b 20 20 20 20 20 20  ctureType;      
9810: 20 20 20 2f 2f 20 69 73 20 41 43 45 5f 43 41 4c     // is ACE_CAL
9820: 4c 42 41 43 4b 5f 54 59 50 45 5f 52 45 41 4c 46  LBACK_TYPE_REALF
9830: 49 4c 45 0d 0a 20 20 20 20 20 20 20 20 20 20 55  ILE..          U
9840: 4c 4f 4e 47 20 20 43 6f 64 65 3b 20 20 20 20 20  LONG  Code;     
9850: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
9860: 73 65 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f  see definition o
9870: 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  f..             
9880: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9890: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 41 43             // AC
98a0: 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f  E_CALLBACK_TYPE_
98b0: 52 45 41 4c 46 49 4c 45 0d 0a 20 20 20 20 20 20  REALFILE..      
98c0: 20 20 20 20 55 4c 4f 4e 47 20 20 4f 70 65 72 61      ULONG  Opera
98d0: 74 69 6f 6e 3b 20 20 20 20 20 20 20 20 20 20 20  tion;           
98e0: 20 20 2f 2f 20 41 43 45 5f 43 41 4c 4c 42 41 43    // ACE_CALLBAC
98f0: 4b 5f 4f 50 45 52 41 54 49 4f 4e 20 63 6f 6e 73  K_OPERATION cons
9900: 74 61 6e 74 0d 0a 0d 0a 20 20 20 20 20 20 20 20  tant....        
9910: 20 20 70 41 43 45 47 6c 6f 62 61 6c 44 61 74 61    pACEGlobalData
9920: 53 74 72 75 63 20 20 47 6c 6f 62 61 6c 44 61 74  Struc  GlobalDat
9930: 61 3b 20 20 20 20 20 20 2f 2f 20 73 65 65 20 74  a;      // see t
9940: 41 43 45 47 6c 6f 62 61 6c 44 61 74 61 53 74 72  ACEGlobalDataStr
9950: 75 63 0d 0a 20 20 20 20 20 20 20 20 20 20 70 41  uc..          pA
9960: 43 45 41 72 63 68 69 76 65 44 61 74 61 53 74 72  CEArchiveDataStr
9970: 75 63 20 41 72 63 68 69 76 65 44 61 74 61 3b 20  uc ArchiveData; 
9980: 20 20 20 20 2f 2f 20 73 65 65 20 74 41 43 45 41      // see tACEA
9990: 72 63 68 69 76 65 44 61 74 61 53 74 72 75 63 0d  rchiveDataStruc.
99a0: 0a 20 20 20 20 20 20 20 20 20 20 4c 50 53 54 52  .          LPSTR
99b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
99c0: 46 69 6c 65 4e 61 6d 65 3b 20 20 20 20 20 20 20  FileName;       
99d0: 20 2f 2f 20 6e 61 6d 65 20 6f 66 20 66 69 6c 65   // name of file
99e0: 0d 0a 20 20 20 20 20 20 20 20 7d 20 74 41 43 45  ..        } tACE
99f0: 43 61 6c 6c 62 61 63 6b 52 65 61 6c 46 69 6c 65  CallbackRealFile
9a00: 53 74 72 75 63 2c 0d 0a 20 20 20 20 20 20 20 20  Struc,..        
9a10: 20 2a 70 41 43 45 43 61 6c 6c 62 61 63 6b 52 65   *pACECallbackRe
9a20: 61 6c 46 69 6c 65 53 74 72 75 63 3b 0d 0a 0d 0a  alFileStruc;....
9a30: 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d  ..      //------
9a40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9a50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9a60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9a70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9a80: 2d 0d 0a 20 20 20 20 20 20 2f 2f 20 47 6c 6f 62  -..      // Glob
9a90: 61 6c 44 61 74 61 2c 20 41 72 63 68 69 76 65 44  alData, ArchiveD
9aa0: 61 74 61 2c 20 74 68 65 20 70 61 74 68 20 6f 66  ata, the path of
9ab0: 20 74 65 6d 70 20 64 69 72 65 63 74 6f 72 79 20   temp directory 
9ac0: 61 6e 64 20 74 68 65 0d 0a 20 20 20 20 20 20 2f  and the..      /
9ad0: 2f 20 62 79 74 65 73 20 72 65 71 75 69 72 65 64  / bytes required
9ae0: 20 69 6e 20 74 65 6d 70 20 64 69 72 65 63 74 6f   in temp directo
9af0: 72 79 20 28 61 72 63 68 69 76 65 20 73 69 7a 65  ry (archive size
9b00: 29 20 61 72 65 20 70 61 73 73 65 64 2e 0d 0a 20  ) are passed... 
9b10: 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
9b20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9b30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9b40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9b50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
9b60: 0d 0a 20 20 20 20 20 20 20 20 74 79 70 65 64 65  ..        typede
9b70: 66 20 73 74 72 75 63 74 20 73 41 43 45 43 61 6c  f struct sACECal
9b80: 6c 62 61 63 6b 53 70 61 63 65 53 74 72 75 63 0d  lbackSpaceStruc.
9b90: 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20  .        {..    
9ba0: 20 20 20 20 20 20 55 4c 4f 4e 47 20 20 53 74 72        ULONG  Str
9bb0: 75 63 74 75 72 65 54 79 70 65 3b 20 20 20 20 20  uctureType;     
9bc0: 20 20 20 20 2f 2f 20 69 73 20 41 43 45 5f 43 41      // is ACE_CA
9bd0: 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 53 50 41 43  LLBACK_TYPE_SPAC
9be0: 45 0d 0a 20 20 20 20 20 20 20 20 20 20 55 4c 4f  E..          ULO
9bf0: 4e 47 20 20 43 6f 64 65 3b 20 20 20 20 20 20 20  NG  Code;       
9c00: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73 65             // se
9c10: 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 0d  e definition of.
9c20: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
9c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9c40: 20 20 20 20 20 20 20 20 20 2f 2f 20 41 43 45 5f           // ACE_
9c50: 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 53 50  CALLBACK_TYPE_SP
9c60: 41 43 45 0d 0a 20 20 20 20 20 20 20 20 20 20 55  ACE..          U
9c70: 4c 4f 4e 47 20 20 4f 70 65 72 61 74 69 6f 6e 3b  LONG  Operation;
9c80: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 70 41  ....          pA
9c90: 43 45 47 6c 6f 62 61 6c 44 61 74 61 53 74 72 75  CEGlobalDataStru
9ca0: 63 20 20 47 6c 6f 62 61 6c 44 61 74 61 3b 20 20  c  GlobalData;  
9cb0: 20 20 20 20 2f 2f 20 73 65 65 20 74 41 43 45 47      // see tACEG
9cc0: 6c 6f 62 61 6c 44 61 74 61 53 74 72 75 63 0d 0a  lobalDataStruc..
9cd0: 20 20 20 20 20 20 20 20 20 20 70 41 43 45 41 72            pACEAr
9ce0: 63 68 69 76 65 44 61 74 61 53 74 72 75 63 20 41  chiveDataStruc A
9cf0: 72 63 68 69 76 65 44 61 74 61 3b 20 20 20 20 20  rchiveData;     
9d00: 2f 2f 20 73 65 65 20 74 41 43 45 41 72 63 68 69  // see tACEArchi
9d10: 76 65 44 61 74 61 53 74 72 75 63 0d 0a 20 20 20  veDataStruc..   
9d20: 20 20 20 20 20 20 20 4c 50 53 54 52 20 20 20 20         LPSTR    
9d30: 20 20 20 20 20 20 20 20 20 20 20 20 44 69 72 65              Dire
9d40: 63 74 6f 72 79 3b 20 20 20 20 20 20 20 2f 2f 20  ctory;       // 
9d50: 70 61 74 68 20 6f 66 20 64 69 72 65 63 74 6f 72  path of director
9d60: 79 0d 0a 20 20 20 20 20 20 20 20 20 20 44 57 4f  y..          DWO
9d70: 52 44 4c 4f 4e 47 20 20 20 20 20 20 20 20 20 20  RDLONG          
9d80: 20 20 41 72 63 68 69 76 65 53 69 7a 65 3b 20 20    ArchiveSize;  
9d90: 20 20 20 2f 2f 20 62 79 74 65 73 20 72 65 71 75     // bytes requ
9da0: 69 72 65 64 20 69 6e 20 74 65 6d 70 20 64 69 72  ired in temp dir
9db0: 0d 0a 20 20 20 20 20 20 20 20 7d 20 74 41 43 45  ..        } tACE
9dc0: 43 61 6c 6c 62 61 63 6b 53 70 61 63 65 53 74 72  CallbackSpaceStr
9dd0: 75 63 2c 0d 0a 20 20 20 20 20 20 20 20 20 2a 70  uc,..         *p
9de0: 41 43 45 43 61 6c 6c 62 61 63 6b 53 70 61 63 65  ACECallbackSpace
9df0: 53 74 72 75 63 3b 0d 0a 0d 0a 0d 0a 20 20 20 20  Struc;......    
9e00: 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    //------------
9e10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9e20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9e30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9e40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20  -----------..   
9e50: 20 20 20 2f 2f 20 47 6c 6f 62 61 6c 44 61 74 61     // GlobalData
9e60: 2c 20 41 72 63 68 69 76 65 44 61 74 61 20 61 6e  , ArchiveData an
9e70: 64 20 53 46 58 46 69 6c 65 4e 61 6d 65 20 61 72  d SFXFileName ar
9e80: 65 20 70 61 73 73 65 64 2e 0d 0a 20 20 20 20 20  e passed...     
9e90: 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   //-------------
9ea0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9eb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9ec0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9ed0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20  ----------....  
9ee0: 20 20 20 20 20 20 74 79 70 65 64 65 66 20 73 74        typedef st
9ef0: 72 75 63 74 20 73 41 43 45 43 61 6c 6c 62 61 63  ruct sACECallbac
9f00: 6b 53 46 58 46 69 6c 65 53 74 72 75 63 0d 0a 20  kSFXFileStruc.. 
9f10: 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20         {..      
9f20: 20 20 20 20 55 4c 4f 4e 47 20 20 53 74 72 75 63      ULONG  Struc
9f30: 74 75 72 65 54 79 70 65 3b 20 20 20 20 20 20 20  tureType;       
9f40: 20 20 2f 2f 20 69 73 20 41 43 45 5f 43 41 4c 4c    // is ACE_CALL
9f50: 42 41 43 4b 5f 54 59 50 45 5f 53 46 58 46 49 4c  BACK_TYPE_SFXFIL
9f60: 45 0d 0a 20 20 20 20 20 20 20 20 20 20 55 4c 4f  E..          ULO
9f70: 4e 47 20 20 43 6f 64 65 3b 20 20 20 20 20 20 20  NG  Code;       
9f80: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73 65             // se
9f90: 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 0d  e definition of.
9fa0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
9fb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9fc0: 20 20 20 20 20 20 20 20 20 2f 2f 20 41 43 45 5f           // ACE_
9fd0: 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 53 46  CALLBACK_TYPE_SF
9fe0: 58 46 49 4c 45 0d 0a 20 20 20 20 20 20 20 20 20  XFILE..         
9ff0: 20 55 4c 4f 4e 47 20 20 4f 70 65 72 61 74 69 6f   ULONG  Operatio
a000: 6e 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 2f  n;             /
a010: 2f 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 4f  / ACE_CALLBACK_O
a020: 50 45 52 41 54 49 4f 4e 20 63 6f 6e 73 74 61 6e  PERATION constan
a030: 74 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 70  t....          p
a040: 41 43 45 47 6c 6f 62 61 6c 44 61 74 61 53 74 72  ACEGlobalDataStr
a050: 75 63 20 20 47 6c 6f 62 61 6c 44 61 74 61 3b 20  uc  GlobalData; 
a060: 20 20 20 20 20 2f 2f 20 73 65 65 20 74 41 43 45       // see tACE
a070: 47 6c 6f 62 61 6c 44 61 74 61 53 74 72 75 63 0d  GlobalDataStruc.
a080: 0a 20 20 20 20 20 20 20 20 20 20 70 41 43 45 41  .          pACEA
a090: 72 63 68 69 76 65 44 61 74 61 53 74 72 75 63 20  rchiveDataStruc 
a0a0: 41 72 63 68 69 76 65 44 61 74 61 3b 20 20 20 20  ArchiveData;    
a0b0: 20 2f 2f 20 73 65 65 20 74 41 43 45 41 72 63 68   // see tACEArch
a0c0: 69 76 65 44 61 74 61 53 74 72 75 63 0d 0a 20 20  iveDataStruc..  
a0d0: 20 20 20 20 20 20 20 20 4c 50 53 54 52 20 20 20          LPSTR   
a0e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 53 46 58               SFX
a0f0: 46 69 6c 65 4e 61 6d 65 3b 20 20 20 20 20 2f 2f  FileName;     //
a100: 20 6e 61 6d 65 20 6f 66 20 53 46 58 0d 0a 20 20   name of SFX..  
a110: 20 20 20 20 20 20 7d 20 74 41 43 45 43 61 6c 6c        } tACECall
a120: 62 61 63 6b 53 46 58 46 69 6c 65 53 74 72 75 63  backSFXFileStruc
a130: 2c 0d 0a 20 20 20 20 20 20 20 20 20 2a 70 41 43  ,..         *pAC
a140: 45 43 61 6c 6c 62 61 63 6b 53 46 58 46 69 6c 65  ECallbackSFXFile
a150: 53 74 72 75 63 3b 0d 0a 0d 0a 0d 0a 20 20 20 20  Struc;......    
a160: 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    //------------
a170: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a180: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a190: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a1a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20  -----------..   
a1b0: 20 20 20 2f 2f 20 47 6c 6f 62 61 6c 44 61 74 61     // GlobalData
a1c0: 2c 20 41 72 63 68 69 76 65 44 61 74 61 20 61 6e  , ArchiveData an
a1d0: 64 20 43 6f 70 79 44 61 74 61 20 61 72 65 20 70  d CopyData are p
a1e0: 61 73 73 65 64 2e 0d 0a 20 20 20 20 20 20 2f 2f  assed...      //
a1f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a200: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a210: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a220: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a230: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20  -------....     
a240: 20 20 20 74 79 70 65 64 65 66 20 73 74 72 75 63     typedef struc
a250: 74 20 73 41 43 45 43 61 6c 6c 62 61 63 6b 43 6f  t sACECallbackCo
a260: 70 79 53 74 72 75 63 0d 0a 20 20 20 20 20 20 20  pyStruc..       
a270: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 55 4c   {..          UL
a280: 4f 4e 47 20 20 53 74 72 75 63 74 75 72 65 54 79  ONG  StructureTy
a290: 70 65 3b 20 20 20 20 20 20 20 20 20 2f 2f 20 69  pe;         // i
a2a0: 73 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54  s ACE_CALLBACK_T
a2b0: 59 50 45 5f 43 4f 50 59 0d 0a 20 20 20 20 20 20  YPE_COPY..      
a2c0: 20 20 20 20 55 4c 4f 4e 47 20 20 43 6f 64 65 3b      ULONG  Code;
a2d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
a2e0: 20 20 2f 2f 20 73 65 65 20 64 65 66 69 6e 69 74    // see definit
a2f0: 69 6f 6e 20 6f 66 0d 0a 20 20 20 20 20 20 20 20  ion of..        
a300: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
a310: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
a320: 2f 2f 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f  // ACE_CALLBACK_
a330: 54 59 50 45 5f 43 4f 50 59 0d 0a 20 20 20 20 20  TYPE_COPY..     
a340: 20 20 20 20 20 55 4c 4f 4e 47 20 20 4f 70 65 72       ULONG  Oper
a350: 61 74 69 6f 6e 3b 20 20 20 20 20 20 20 20 20 20  ation;          
a360: 20 20 20 2f 2f 20 41 43 45 5f 43 41 4c 4c 42 41     // ACE_CALLBA
a370: 43 4b 5f 4f 50 45 52 41 54 49 4f 4e 20 63 6f 6e  CK_OPERATION con
a380: 73 74 61 6e 74 0d 0a 0d 0a 20 20 20 20 20 20 20  stant....       
a390: 20 20 20 70 41 43 45 47 6c 6f 62 61 6c 44 61 74     pACEGlobalDat
a3a0: 61 53 74 72 75 63 20 20 47 6c 6f 62 61 6c 44 61  aStruc  GlobalDa
a3b0: 74 61 3b 20 20 20 20 20 20 2f 2f 20 73 65 65 20  ta;      // see 
a3c0: 74 41 43 45 47 6c 6f 62 61 6c 44 61 74 61 53 74  tACEGlobalDataSt
a3d0: 72 75 63 0d 0a 20 20 20 20 20 20 20 20 20 20 70  ruc..          p
a3e0: 41 43 45 41 72 63 68 69 76 65 44 61 74 61 53 74  ACEArchiveDataSt
a3f0: 72 75 63 20 41 72 63 68 69 76 65 44 61 74 61 3b  ruc ArchiveData;
a400: 20 20 20 20 20 2f 2f 20 73 65 65 20 74 41 43 45       // see tACE
a410: 41 72 63 68 69 76 65 44 61 74 61 53 74 72 75 63  ArchiveDataStruc
a420: 0d 0a 20 20 20 20 20 20 20 20 20 20 70 41 43 45  ..          pACE
a430: 43 6f 70 79 49 6e 66 6f 53 74 72 75 63 20 20 20  CopyInfoStruc   
a440: 20 43 6f 70 79 44 61 74 61 3b 20 20 20 20 20 20   CopyData;      
a450: 20 20 2f 2f 20 73 65 65 20 74 41 43 45 43 6f 70    // see tACECop
a460: 79 49 6e 66 6f 53 74 72 75 63 0d 0a 20 20 20 20  yInfoStruc..    
a470: 20 20 20 20 7d 20 74 41 43 45 43 61 6c 6c 62 61      } tACECallba
a480: 63 6b 43 6f 70 79 53 74 72 75 63 2c 0d 0a 20 20  ckCopyStruc,..  
a490: 20 20 20 20 20 20 20 2a 70 41 43 45 43 61 6c 6c         *pACECall
a4a0: 62 61 63 6b 43 6f 70 79 53 74 72 75 63 3b 0d 0a  backCopyStruc;..
a4b0: 0d 0a 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d  ....      //----
a4c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a4d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a4e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a4f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a500: 2d 2d 2d 0d 0a 20 20 20 20 20 20 2f 2f 20 47 6c  ---..      // Gl
a510: 6f 62 61 6c 44 61 74 61 2c 20 41 72 63 68 69 76  obalData, Archiv
a520: 65 44 61 74 61 2c 20 46 69 6c 65 44 61 74 61 20  eData, FileData 
a530: 61 6e 64 20 50 72 6f 67 72 65 73 73 44 61 74 61  and ProgressData
a540: 20 61 72 65 20 70 61 73 73 65 64 2e 0d 0a 20 20   are passed...  
a550: 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
a560: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a570: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a580: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a590: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d  -------------...
a5a0: 0a 20 20 20 20 20 20 20 20 74 79 70 65 64 65 66  .        typedef
a5b0: 20 73 74 72 75 63 74 20 73 41 43 45 43 61 6c 6c   struct sACECall
a5c0: 62 61 63 6b 50 72 6f 67 72 65 73 73 53 74 72 75  backProgressStru
a5d0: 63 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20  c..        {..  
a5e0: 20 20 20 20 20 20 20 20 55 4c 4f 4e 47 20 20 53          ULONG  S
a5f0: 74 72 75 63 74 75 72 65 54 79 70 65 3b 20 20 20  tructureType;   
a600: 20 20 20 20 20 20 2f 2f 20 69 73 20 41 43 45 5f        // is ACE_
a610: 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 50 52  CALLBACK_TYPE_PR
a620: 4f 47 52 45 53 53 0d 0a 20 20 20 20 20 20 20 20  OGRESS..        
a630: 20 20 55 4c 4f 4e 47 20 20 43 6f 64 65 3b 20 20    ULONG  Code;  
a640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
a650: 2f 2f 20 73 65 65 20 64 65 66 69 6e 69 74 69 6f  // see definitio
a660: 6e 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20  n of..          
a670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
a680: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
a690: 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59   ACE_CALLBACK_TY
a6a0: 50 45 5f 50 52 4f 47 52 45 53 53 0d 0a 20 20 20  PE_PROGRESS..   
a6b0: 20 20 20 20 20 20 20 55 4c 4f 4e 47 20 20 4f 70         ULONG  Op
a6c0: 65 72 61 74 69 6f 6e 3b 20 20 20 20 20 20 20 20  eration;        
a6d0: 20 20 20 20 20 2f 2f 20 41 43 45 5f 43 41 4c 4c       // ACE_CALL
a6e0: 42 41 43 4b 5f 4f 50 45 52 41 54 49 4f 4e 20 63  BACK_OPERATION c
a6f0: 6f 6e 73 74 61 6e 74 0d 0a 0d 0a 20 20 20 20 20  onstant....     
a700: 20 20 20 20 20 70 41 43 45 47 6c 6f 62 61 6c 44       pACEGlobalD
a710: 61 74 61 53 74 72 75 63 20 20 20 47 6c 6f 62 61  ataStruc   Globa
a720: 6c 44 61 74 61 3b 20 20 20 20 20 2f 2f 20 73 65  lData;     // se
a730: 65 20 74 41 43 45 47 6c 6f 62 61 6c 44 61 74 61  e tACEGlobalData
a740: 53 74 72 75 63 0d 0a 20 20 20 20 20 20 20 20 20  Struc..         
a750: 20 70 41 43 45 41 72 63 68 69 76 65 44 61 74 61   pACEArchiveData
a760: 53 74 72 75 63 20 20 41 72 63 68 69 76 65 44 61  Struc  ArchiveDa
a770: 74 61 3b 20 20 20 20 2f 2f 20 73 65 65 20 74 41  ta;    // see tA
a780: 43 45 41 72 63 68 69 76 65 44 61 74 61 53 74 72  CEArchiveDataStr
a790: 75 63 0d 0a 20 20 20 20 20 20 20 20 20 20 70 41  uc..          pA
a7a0: 43 45 46 69 6c 65 44 61 74 61 53 74 72 75 63 20  CEFileDataStruc 
a7b0: 20 20 20 20 46 69 6c 65 44 61 74 61 3b 20 20 20      FileData;   
a7c0: 20 20 20 20 2f 2f 20 73 65 65 20 74 41 43 45 46      // see tACEF
a7d0: 69 6c 65 44 61 74 61 53 74 72 75 63 0d 0a 20 20  ileDataStruc..  
a7e0: 20 20 20 20 20 20 20 20 70 41 43 45 50 72 6f 67          pACEProg
a7f0: 72 65 73 73 44 61 74 61 53 74 72 75 63 20 50 72  ressDataStruc Pr
a800: 6f 67 72 65 73 73 44 61 74 61 3b 20 20 20 2f 2f  ogressData;   //
a810: 20 73 65 65 20 74 41 43 45 50 72 6f 67 72 65 73   see tACEProgres
a820: 73 44 61 74 61 53 74 72 75 63 0d 0a 20 20 20 20  sDataStruc..    
a830: 20 20 20 20 7d 20 74 41 43 45 43 61 6c 6c 62 61      } tACECallba
a840: 63 6b 50 72 6f 67 72 65 73 73 53 74 72 75 63 2c  ckProgressStruc,
a850: 0d 0a 20 20 20 20 20 20 20 20 20 2a 70 41 43 45  ..         *pACE
a860: 43 61 6c 6c 62 61 63 6b 50 72 6f 67 72 65 73 73  CallbackProgress
a870: 53 74 72 75 63 3b 0d 0a 0d 0a 0d 0a 20 20 20 20  Struc;......    
a880: 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    //------------
a890: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a8a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a8b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a8c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20  -----------..   
a8d0: 20 20 20 2f 2f 20 47 6c 6f 62 61 6c 44 61 74 61     // GlobalData
a8e0: 2c 20 41 72 63 68 69 76 65 44 61 74 61 2c 20 46  , ArchiveData, F
a8f0: 69 6c 65 44 61 74 61 20 61 6e 64 20 43 52 43 2d  ileData and CRC-
a900: 63 68 65 63 6b 20 72 65 73 75 6c 74 20 61 72 65  check result are
a910: 20 70 61 73 73 65 64 2e 0d 0a 20 20 20 20 20 20   passed...      
a920: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
a930: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a940: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a950: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
a960: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20  ---------....   
a970: 20 20 20 20 20 74 79 70 65 64 65 66 20 73 74 72       typedef str
a980: 75 63 74 20 73 41 43 45 43 61 6c 6c 62 61 63 6b  uct sACECallback
a990: 43 52 43 43 68 65 63 6b 53 74 72 75 63 0d 0a 20  CRCCheckStruc.. 
a9a0: 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20         {..      
a9b0: 20 20 20 20 55 4c 4f 4e 47 20 20 53 74 72 75 63      ULONG  Struc
a9c0: 74 75 72 65 54 79 70 65 3b 20 20 20 20 20 20 20  tureType;       
a9d0: 20 20 2f 2f 20 69 73 20 41 43 45 5f 43 41 4c 4c    // is ACE_CALL
a9e0: 42 41 43 4b 5f 54 59 50 45 5f 43 52 43 43 48 45  BACK_TYPE_CRCCHE
a9f0: 43 4b 0d 0a 20 20 20 20 20 20 20 20 20 20 55 4c  CK..          UL
aa00: 4f 4e 47 20 20 43 6f 64 65 3b 20 20 20 20 20 20  ONG  Code;      
aa10: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73              // s
aa20: 65 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66  ee definition of
aa30: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
aa40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
aa50: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 41 43 45            // ACE
aa60: 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 43  _CALLBACK_TYPE_C
aa70: 52 43 43 48 45 43 4b 0d 0a 20 20 20 20 20 20 20  RCCHECK..       
aa80: 20 20 20 55 4c 4f 4e 47 20 20 4f 70 65 72 61 74     ULONG  Operat
aa90: 69 6f 6e 3b 20 20 20 20 20 20 20 20 20 20 20 20  ion;            
aaa0: 20 2f 2f 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b   // ACE_CALLBACK
aab0: 5f 4f 50 45 52 41 54 49 4f 4e 20 63 6f 6e 73 74  _OPERATION const
aac0: 61 6e 74 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20  ant....         
aad0: 20 70 41 43 45 47 6c 6f 62 61 6c 44 61 74 61 53   pACEGlobalDataS
aae0: 74 72 75 63 20 20 20 47 6c 6f 62 61 6c 44 61 74  truc   GlobalDat
aaf0: 61 3b 20 20 20 20 20 2f 2f 20 73 65 65 20 74 41  a;     // see tA
ab00: 43 45 47 6c 6f 62 61 6c 44 61 74 61 53 74 72 75  CEGlobalDataStru
ab10: 63 0d 0a 20 20 20 20 20 20 20 20 20 20 70 41 43  c..          pAC
ab20: 45 41 72 63 68 69 76 65 44 61 74 61 53 74 72 75  EArchiveDataStru
ab30: 63 20 20 41 72 63 68 69 76 65 44 61 74 61 3b 20  c  ArchiveData; 
ab40: 20 20 20 2f 2f 20 73 65 65 20 74 41 43 45 41 72     // see tACEAr
ab50: 63 68 69 76 65 44 61 74 61 53 74 72 75 63 0d 0a  chiveDataStruc..
ab60: 20 20 20 20 20 20 20 20 20 20 70 41 43 45 46 69            pACEFi
ab70: 6c 65 44 61 74 61 53 74 72 75 63 20 20 20 20 20  leDataStruc     
ab80: 46 69 6c 65 44 61 74 61 3b 20 20 20 20 20 20 20  FileData;       
ab90: 2f 2f 20 73 65 65 20 74 41 43 45 46 69 6c 65 44  // see tACEFileD
aba0: 61 74 61 53 74 72 75 63 0d 0a 20 20 20 20 20 20  ataStruc..      
abb0: 20 20 20 20 42 4f 4f 4c 20 43 52 43 4f 6b 3b 20      BOOL CRCOk; 
abc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
abd0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 43 52 43            // CRC
abe0: 2d 63 68 65 63 6b 20 72 65 73 75 6c 74 0d 0a 20  -check result.. 
abf0: 20 20 20 20 20 20 20 7d 20 74 41 43 45 43 61 6c         } tACECal
ac00: 6c 62 61 63 6b 43 52 43 43 68 65 63 6b 53 74 72  lbackCRCCheckStr
ac10: 75 63 2c 0d 0a 20 20 20 20 20 20 20 20 20 2a 70  uc,..         *p
ac20: 41 43 45 43 61 6c 6c 62 61 63 6b 43 52 43 43 68  ACECallbackCRCCh
ac30: 65 63 6b 53 74 72 75 63 3b 0d 0a 0d 0a 0d 0a 20  eckStruc;...... 
ac40: 20 2f 2f cd cd cd cd cd cd cd cd cd cd cd cd cd   //.............
ac50: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
ac60: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
ac70: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
ac80: cd cd cd cd cd cd cd cd cd cd cd cd cd cd 0d 0a  ................
ac90: 20 20 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d    //============
aca0: 3d 3d 3d 3d 3d 2d 2d 2d 20 20 50 61 72 74 20 32  =====---  Part 2
acb0: 2e 35 3a 20 69 6e 66 6f 20 63 61 6c 6c 62 61 63  .5: info callbac
acc0: 6b 20 66 75 6e 63 74 69 6f 6e 20 20 2d 2d 2d 3d  k function  ---=
acd0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d  ===============.
ace0: 0a 20 20 2f 2f cd cd cd cd cd cd cd cd cd cd cd  .  //...........
acf0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
ad00: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
ad10: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
ad20: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
ad30: 0d 0a 20 20 2f 2f 20 44 65 63 6c 61 72 61 74 69  ..  // Declarati
ad40: 6f 6e 20 6f 66 20 41 43 45 49 6e 66 6f 43 61 6c  on of ACEInfoCal
ad50: 6c 62 61 63 6b 50 72 6f 63 28 29 20 70 61 72 61  lbackProc() para
ad60: 6d 65 74 65 72 20 61 6e 64 20 65 78 70 6c 61 6e  meter and explan
ad70: 61 74 69 6f 6e 20 6f 66 0d 0a 20 20 2f 2f 20 63  ation of..  // c
ad80: 61 6c 6c 62 61 63 6b 20 69 6e 66 6f 20 63 6f 64  allback info cod
ad90: 65 73 2e 0d 0a 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d  es...  //-------
ada0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
adb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
adc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
add0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ade0: 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20 20 2f 2f  ----....      //
adf0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ae00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ae10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ae20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ae30: 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 2f  -------..      /
ae40: 2f 20 55 6e 69 6f 6e 20 70 61 72 61 6d 65 74 65  / Union paramete
ae50: 72 20 75 73 65 64 20 61 74 20 41 43 45 49 6e 66  r used at ACEInf
ae60: 6f 43 61 6c 6c 62 61 63 6b 50 72 6f 63 28 29 2e  oCallbackProc().
ae70: 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d  ..      //------
ae80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ae90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
aea0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
aeb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
aec0: 2d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 74 79 70  -....        typ
aed0: 65 64 65 66 20 75 6e 69 6f 6e 20 73 41 43 45 49  edef union sACEI
aee0: 6e 66 6f 43 61 6c 6c 62 61 63 6b 50 72 6f 63 53  nfoCallbackProcS
aef0: 74 72 75 63 0d 0a 20 20 20 20 20 20 20 20 7b 0d  truc..        {.
af00: 0a 20 20 20 20 20 20 20 20 20 20 55 4c 4f 4e 47  .          ULONG
af10: 20 20 53 74 72 75 63 74 75 72 65 54 79 70 65 3b    StructureType;
af20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
af30: 20 2f 2f 20 69 6e 64 69 63 61 74 65 73 20 77 68   // indicates wh
af40: 69 63 68 20 6f 66 20 74 68 65 20 66 6f 6c 2d 0d  ich of the fol-.
af50: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
af60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
af70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
af80: 20 2f 2f 20 6c 6f 77 69 6e 67 20 73 74 72 75 63   // lowing struc
af90: 74 75 72 65 73 20 69 73 20 75 73 65 64 0d 0a 20  tures is used.. 
afa0: 20 20 20 20 20 20 20 20 20 74 41 43 45 43 61 6c           tACECal
afb0: 6c 62 61 63 6b 47 6c 6f 62 61 6c 53 74 72 75 63  lbackGlobalStruc
afc0: 20 20 20 47 6c 6f 62 61 6c 3b 0d 0a 20 20 20 20     Global;..    
afd0: 20 20 20 20 20 20 74 41 43 45 43 61 6c 6c 62 61        tACECallba
afe0: 63 6b 41 72 63 68 69 76 65 53 74 72 75 63 20 20  ckArchiveStruc  
aff0: 41 72 63 68 69 76 65 3b 0d 0a 20 20 20 20 20 20  Archive;..      
b000: 20 20 20 20 74 41 43 45 43 61 6c 6c 62 61 63 6b      tACECallback
b010: 52 65 61 6c 46 69 6c 65 53 74 72 75 63 20 52 65  RealFileStruc Re
b020: 61 6c 46 69 6c 65 3b 0d 0a 20 20 20 20 20 20 20  alFile;..       
b030: 20 20 20 74 41 43 45 43 61 6c 6c 62 61 63 6b 43     tACECallbackC
b040: 6f 70 79 53 74 72 75 63 20 20 20 20 20 43 6f 70  opyStruc     Cop
b050: 79 3b 0d 0a 20 20 20 20 20 20 20 20 7d 20 74 41  y;..        } tA
b060: 43 45 49 6e 66 6f 43 61 6c 6c 62 61 63 6b 50 72  CEInfoCallbackPr
b070: 6f 63 53 74 72 75 63 3b 0d 0a 0d 0a 0d 0a 20 20  ocStruc;......  
b080: 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
b090: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b0a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b0b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b0c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20  -------------.. 
b0d0: 20 20 20 20 20 2f 2f 20 54 68 65 73 65 20 76 61       // These va
b0e0: 6c 75 65 73 20 61 72 65 20 70 61 73 73 65 64 20  lues are passed 
b0f0: 74 6f 20 74 68 65 20 41 43 45 49 6e 66 6f 43 61  to the ACEInfoCa
b100: 6c 6c 62 61 63 6b 50 72 6f 63 20 63 61 6c 6c 62  llbackProc callb
b110: 61 63 6b 20 66 75 6e 63 74 69 6f 6e 0d 0a 20 20  ack function..  
b120: 20 20 20 20 2f 2f 20 74 6f 20 69 6e 66 6f 72 6d      // to inform
b130: 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e   the application
b140: 20 61 62 6f 75 74 20 61 63 74 69 6f 6e 73 20 28   about actions (
b150: 73 6d 61 6c 6c 65 72 20 70 61 72 74 73 20 6f 66  smaller parts of
b160: 20 6f 70 65 72 61 74 69 6f 6e 73 29 0d 0a 20 20   operations)..  
b170: 20 20 20 20 2f 2f 20 77 68 69 63 68 20 6d 61 79      // which may
b180: 20 74 61 6b 65 20 73 6f 6d 65 20 74 69 6d 65 20   take some time 
b190: 6f 72 20 6f 74 68 65 72 20 74 68 69 6e 67 73 20  or other things 
b1a0: 74 68 61 74 20 6d 69 67 68 74 20 62 65 20 6f 66  that might be of
b1b0: 20 69 6e 74 65 72 65 73 74 2e 0d 0a 20 20 20 20   interest...    
b1c0: 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    //------------
b1d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b1e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b1f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b200: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20  -----------.... 
b210: 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41         #define A
b220: 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 49 4e 46 4f  CE_CALLBACK_INFO
b230: 5f 47 45 4e 45 52 41 4c 4b 45 59 20 20 20 20 20  _GENERALKEY     
b240: 20 20 20 20 20 20 20 30 78 31 30 30 0d 0a 0d 0a         0x100....
b250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b270: 2f 2f 20 6b 65 79 20 69 73 20 61 20 67 65 6e 65  // key is a gene
b280: 72 61 6c 20 6f 6e 65 20 28 6e 6f 20 6f 77 6e 20  ral one (no own 
b290: 41 56 3b 20 6f 77 6e 20 6b 65 79 0d 0a 20 20 20  AV; own key..   
b2a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b2b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
b2c0: 69 73 20 6f 62 74 61 69 6e 61 62 6c 65 20 66 6f  is obtainable fo
b2d0: 72 20 61 20 73 70 65 63 69 61 6c 20 70 72 69 63  r a special pric
b2e0: 65 21 3f 29 0d 0a 20 20 20 20 20 20 20 20 20 20  e!?)..          
b2f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b300: 20 20 20 20 20 20 2f 2f 20 6e 6f 74 20 75 73 65        // not use
b310: 64 20 69 6e 20 41 43 4c 0d 0a 20 20 20 20 20 20  d in ACL..      
b320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b330: 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d            //----
b340: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b350: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b360: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20  ---------..     
b370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b380: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73 74             // st
b390: 72 75 63 74 75 72 65 20 74 79 70 65 3a 0d 0a 20  ructure type:.. 
b3a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b3b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
b3c0: 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b  /   ACE_CALLBACK
b3d0: 5f 54 59 50 45 5f 47 4c 4f 42 41 4c 0d 0a 20 20  _TYPE_GLOBAL..  
b3e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b3f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
b400: 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20   operations:..  
b410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b420: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
b430: 20 20 20 41 43 45 52 65 67 69 73 74 65 72 0d 0a     ACERegister..
b440: 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e  ..        #defin
b450: 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 49  e ACE_CALLBACK_I
b460: 4e 46 4f 5f 54 4d 50 41 52 43 43 52 45 41 54 45  NFO_TMPARCCREATE
b470: 20 20 20 20 20 20 20 20 20 20 30 78 31 31 30 0d            0x110.
b480: 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ...             
b490: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b4a0: 20 20 20 2f 2f 20 63 72 65 61 74 69 6e 67 20 74     // creating t
b4b0: 65 6d 70 6f 72 61 72 79 20 61 72 63 68 69 76 65  emporary archive
b4c0: 20 66 6f 72 20 63 68 61 6e 67 65 73 0d 0a 20 20   for changes..  
b4d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b4e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
b4f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b500: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b510: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20  -------------.. 
b520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
b540: 2f 20 73 74 72 75 63 74 75 72 65 20 74 79 70 65  / structure type
b550: 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  :..             
b560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b570: 20 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c     //   ACE_CALL
b580: 42 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49 56  BACK_TYPE_ARCHIV
b590: 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  E..             
b5a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b5b0: 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 73     // operations
b5c0: 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  :..             
b5d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b5e0: 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64 0d 0a     //   ACEAdd..
b5f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b600: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b610: 2f 2f 20 20 20 41 43 45 53 65 74 43 6f 6d 6d 65  //   ACESetComme
b620: 6e 74 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20  nts..           
b630: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b640: 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45 6e 63       //   ACEEnc
b650: 72 79 70 74 46 69 6c 65 73 0d 0a 20 20 20 20 20  ryptFiles..     
b660: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b670: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
b680: 41 43 45 41 64 64 53 46 58 0d 0a 20 20 20 20 20  ACEAddSFX..     
b690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b6a0: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
b6b0: 41 43 45 4c 6f 63 6b 0d 0a 20 20 20 20 20 20 20  ACELock..       
b6c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b6d0: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
b6e0: 45 41 64 64 41 56 0d 0a 20 20 20 20 20 20 20 20  EAddAV..        
b6f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b700: 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
b710: 52 65 70 61 69 72 0d 0a 0d 0a 0d 0a 20 20 20 20  Repair......    
b720: 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f      #define ACE_
b730: 43 41 4c 4c 42 41 43 4b 5f 49 4e 46 4f 5f 54 4d  CALLBACK_INFO_TM
b740: 50 41 52 43 43 52 45 41 54 45 45 4e 44 20 20 20  PARCCREATEEND   
b750: 20 20 20 20 30 78 31 31 31 0d 0a 0d 0a 20 20 20      0x111....   
b760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b770: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
b780: 66 69 6e 69 73 68 65 64 20 63 72 65 61 74 69 6e  finished creatin
b790: 67 20 74 65 6d 70 6f 72 61 72 79 20 61 72 63 68  g temporary arch
b7a0: 69 76 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ive..           
b7b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b7c0: 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
b7d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b7e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b7f0: 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20  ----..          
b800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b810: 20 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75        // structu
b820: 72 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20  re type:..      
b830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b840: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
b850: 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45  CE_CALLBACK_TYPE
b860: 5f 41 52 43 48 49 56 45 0d 0a 20 20 20 20 20 20  _ARCHIVE..      
b870: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b880: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70 65            // ope
b890: 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20  rations:..      
b8a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b8b0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
b8c0: 43 45 41 64 64 0d 0a 20 20 20 20 20 20 20 20 20  CEAdd..         
b8d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b8e0: 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 53         //   ACES
b8f0: 65 74 43 6f 6d 6d 65 6e 74 73 0d 0a 20 20 20 20  etComments..    
b900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b910: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
b920: 20 41 43 45 45 6e 63 72 79 70 74 46 69 6c 65 73   ACEEncryptFiles
b930: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
b940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b950: 20 20 2f 2f 20 20 20 41 43 45 41 64 64 53 46 58    //   ACEAddSFX
b960: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
b970: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b980: 20 20 2f 2f 20 20 20 41 43 45 4c 6f 63 6b 0d 0a    //   ACELock..
b990: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b9a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b9b0: 2f 2f 20 20 20 41 43 45 41 64 64 41 56 0d 0a 20  //   ACEAddAV.. 
b9c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b9d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
b9e0: 2f 20 20 20 41 43 45 52 65 70 61 69 72 0d 0a 0d  /   ACERepair...
b9f0: 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69  ...        #defi
ba00: 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f  ne ACE_CALLBACK_
ba10: 49 4e 46 4f 5f 41 44 44 52 45 43 52 45 43 20 20  INFO_ADDRECREC  
ba20: 20 20 20 20 20 20 20 20 20 20 20 30 78 31 31 32             0x112
ba30: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ....            
ba40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ba50: 20 20 20 20 2f 2f 20 61 64 64 69 6e 67 20 72 65      // adding re
ba60: 63 6f 76 65 72 79 20 72 65 63 6f 72 64 0d 0a 20  covery record.. 
ba70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ba80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
ba90: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
baa0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
bab0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
bac0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bad0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bae0: 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74 79 70  // structure typ
baf0: 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  e:..            
bb00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bb10: 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c      //   ACE_CAL
bb20: 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49  LBACK_TYPE_ARCHI
bb30: 56 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  VE..            
bb40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bb50: 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e      // operation
bb60: 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  s:..            
bb70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bb80: 20 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64 0d      //   ACEAdd.
bb90: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
bba0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bbb0: 20 2f 2f 20 20 20 41 43 45 53 65 74 43 6f 6d 6d   //   ACESetComm
bbc0: 65 6e 74 73 0d 0a 20 20 20 20 20 20 20 20 20 20  ents..          
bbd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bbe0: 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45 6e        //   ACEEn
bbf0: 63 72 79 70 74 46 69 6c 65 73 0d 0a 20 20 20 20  cryptFiles..    
bc00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bc10: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
bc20: 20 41 43 45 41 64 64 53 46 58 0d 0a 20 20 20 20   ACEAddSFX..    
bc30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bc40: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
bc50: 20 41 43 45 4c 6f 63 6b 0d 0a 20 20 20 20 20 20   ACELock..      
bc60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bc70: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
bc80: 43 45 41 64 64 41 56 0d 0a 20 20 20 20 20 20 20  CEAddAV..       
bc90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bca0: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
bcb0: 45 41 64 64 52 65 63 6f 76 65 72 79 52 65 63 6f  EAddRecoveryReco
bcc0: 72 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  rd..            
bcd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bce0: 20 20 20 20 2f 2f 20 20 20 41 43 45 52 65 70 61      //   ACERepa
bcf0: 69 72 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20  ir......        
bd00: 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c  #define ACE_CALL
bd10: 42 41 43 4b 5f 49 4e 46 4f 5f 41 44 44 52 45 43  BACK_INFO_ADDREC
bd20: 52 45 43 45 4e 44 20 20 20 20 20 20 20 20 20 20  RECEND          
bd30: 30 78 31 31 33 0d 0a 0d 0a 20 20 20 20 20 20 20  0x113....       
bd40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bd50: 20 20 20 20 20 20 20 20 20 2f 2f 20 66 69 6e 69           // fini
bd60: 73 68 65 64 20 61 64 64 69 6e 67 20 72 65 63 6f  shed adding reco
bd70: 76 65 72 79 20 72 65 63 6f 72 64 0d 0a 20 20 20  very record..   
bd80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bd90: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2d               //-
bda0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
bdb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
bdc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20  ------------..  
bdd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bde0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
bdf0: 20 73 74 72 75 63 74 75 72 65 20 74 79 70 65 3a   structure type:
be00: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
be10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
be20: 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42    //   ACE_CALLB
be30: 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49 56 45  ACK_TYPE_ARCHIVE
be40: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
be50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
be60: 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a    // operations:
be70: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
be80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
be90: 20 20 2f 2f 20 20 20 41 43 45 41 64 64 0d 0a 20    //   ACEAdd.. 
bea0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
beb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
bec0: 2f 20 20 20 41 43 45 53 65 74 43 6f 6d 6d 65 6e  /   ACESetCommen
bed0: 74 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ts..            
bee0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bef0: 20 20 20 20 2f 2f 20 20 20 41 43 45 45 6e 63 72      //   ACEEncr
bf00: 79 70 74 46 69 6c 65 73 0d 0a 20 20 20 20 20 20  yptFiles..      
bf10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bf20: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
bf30: 43 45 41 64 64 53 46 58 0d 0a 20 20 20 20 20 20  CEAddSFX..      
bf40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bf50: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
bf60: 43 45 4c 6f 63 6b 0d 0a 20 20 20 20 20 20 20 20  CELock..        
bf70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bf80: 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
bf90: 41 64 64 41 56 0d 0a 20 20 20 20 20 20 20 20 20  AddAV..         
bfa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bfb0: 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 41         //   ACEA
bfc0: 64 64 52 65 63 6f 76 65 72 79 52 65 63 6f 72 64  ddRecoveryRecord
bfd0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
bfe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
bff0: 20 20 2f 2f 20 20 20 41 43 45 52 65 70 61 69 72    //   ACERepair
c000: 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23 64  ......        #d
c010: 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41  efine ACE_CALLBA
c020: 43 4b 5f 49 4e 46 4f 5f 52 45 43 52 45 43 20 20  CK_INFO_RECREC  
c030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78                0x
c040: 31 31 34 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20  114....         
c050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c060: 20 20 20 20 20 20 20 2f 2f 20 74 72 79 69 6e 67         // trying
c070: 20 74 6f 20 72 65 63 6f 76 65 72 20 66 69 6c 65   to recover file
c080: 73 20 62 79 20 72 65 63 6f 76 65 72 79 0d 0a 20  s by recovery.. 
c090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c0a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
c0b0: 2f 20 72 65 63 6f 72 64 3b 20 65 6e 64 20 69 6e  / record; end in
c0c0: 64 69 63 61 74 65 64 20 62 79 0d 0a 20 20 20 20  dicated by..    
c0d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c0e0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 41              // A
c0f0: 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 49 4e 46 4f  CE_CALLBACK_INFO
c100: 5f 52 45 43 4f 56 45 52 45 44 20 6f 72 0d 0a 20  _RECOVERED or.. 
c110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
c130: 2f 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 49  / ACE_CALLBACK_I
c140: 4e 46 4f 5f 4e 4f 44 41 4d 41 47 45 0d 0a 20 20  NFO_NODAMAGE..  
c150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
c170: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c180: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c190: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20  -------------.. 
c1a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c1b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
c1c0: 2f 20 73 74 72 75 63 74 75 72 65 20 74 79 70 65  / structure type
c1d0: 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  :..             
c1e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c1f0: 20 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c     //   ACE_CALL
c200: 42 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49 56  BACK_TYPE_ARCHIV
c210: 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  E..             
c220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c230: 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 73     // operations
c240: 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  :..             
c250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c260: 20 20 20 2f 2f 20 20 20 41 43 45 52 65 70 61 69     //   ACERepai
c270: 72 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23  r......        #
c280: 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42  define ACE_CALLB
c290: 41 43 4b 5f 49 4e 46 4f 5f 4e 4f 52 45 43 52 45  ACK_INFO_NORECRE
c2a0: 43 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30  C              0
c2b0: 78 31 31 35 0d 0a 0d 0a 20 20 20 20 20 20 20 20  x115....        
c2c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c2d0: 20 20 20 20 20 20 20 20 2f 2f 20 66 6f 75 6e 64          // found
c2e0: 20 6e 6f 20 72 65 63 6f 76 65 72 79 20 72 65 63   no recovery rec
c2f0: 6f 72 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ord..           
c300: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c310: 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
c320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c330: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c340: 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20  ----..          
c350: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c360: 20 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75        // structu
c370: 72 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20  re type:..      
c380: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c390: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
c3a0: 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45  CE_CALLBACK_TYPE
c3b0: 5f 41 52 43 48 49 56 45 0d 0a 20 20 20 20 20 20  _ARCHIVE..      
c3c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c3d0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70 65            // ope
c3e0: 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20  rations:..      
c3f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c400: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
c410: 43 45 52 65 70 61 69 72 0d 0a 0d 0a 0d 0a 20 20  CERepair......  
c420: 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43        #define AC
c430: 45 5f 43 41 4c 4c 42 41 43 4b 5f 49 4e 46 4f 5f  E_CALLBACK_INFO_
c440: 52 45 43 4f 56 45 52 45 44 20 20 20 20 20 20 20  RECOVERED       
c450: 20 20 20 20 20 20 30 78 31 31 36 0d 0a 0d 0a 20        0x116.... 
c460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
c480: 2f 20 61 72 63 68 69 76 65 20 68 61 73 20 62 65  / archive has be
c490: 65 6e 20 66 75 6c 6c 79 20 72 65 63 6f 76 65 72  en fully recover
c4a0: 65 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ed..            
c4b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c4c0: 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
c4d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c4e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c4f0: 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ---..           
c500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c510: 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75 72       // structur
c520: 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20 20  e type:..       
c530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c540: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
c550: 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f  E_CALLBACK_TYPE_
c560: 41 52 43 48 49 56 45 0d 0a 20 20 20 20 20 20 20  ARCHIVE..       
c570: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c580: 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 72           // oper
c590: 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20  ations:..       
c5a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c5b0: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
c5c0: 45 52 65 70 61 69 72 0d 0a 0d 0a 0d 0a 20 20 20  ERepair......   
c5d0: 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45       #define ACE
c5e0: 5f 43 41 4c 4c 42 41 43 4b 5f 49 4e 46 4f 5f 4e  _CALLBACK_INFO_N
c5f0: 4f 44 41 4d 41 47 45 20 20 20 20 20 20 20 20 20  ODAMAGE         
c600: 20 20 20 20 20 30 78 31 31 37 0d 0a 0d 0a 20 20       0x117....  
c610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
c630: 20 41 43 45 52 65 70 61 69 72 20 64 65 74 65 63   ACERepair detec
c640: 74 65 64 20 62 79 20 72 65 63 6f 76 65 72 79 20  ted by recovery 
c650: 72 65 63 6f 72 64 20 74 68 61 74 0d 0a 20 20 20  record that..   
c660: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c670: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
c680: 74 68 65 20 61 72 63 68 69 76 65 20 69 73 20 6e  the archive is n
c690: 6f 74 20 64 61 6d 61 67 65 64 0d 0a 20 20 20 20  ot damaged..    
c6a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c6b0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d              //--
c6c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c6d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c6e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20  -----------..   
c6f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c700: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
c710: 73 74 72 75 63 74 75 72 65 20 74 79 70 65 3a 0d  structure type:.
c720: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
c730: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c740: 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42 41   //   ACE_CALLBA
c750: 43 4b 5f 54 59 50 45 5f 41 52 43 48 49 56 45 0d  CK_TYPE_ARCHIVE.
c760: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
c770: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c780: 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d   // operations:.
c790: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
c7a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c7b0: 20 2f 2f 20 20 20 41 43 45 52 65 70 61 69 72 0d   //   ACERepair.
c7c0: 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65  .....        #de
c7d0: 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43  fine ACE_CALLBAC
c7e0: 4b 5f 49 4e 46 4f 5f 46 4e 44 4d 41 49 4e 48 45  K_INFO_FNDMAINHE
c7f0: 41 44 20 20 20 20 20 20 20 20 20 20 20 30 78 31  AD           0x1
c800: 31 38 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20  18....          
c810: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c820: 20 20 20 20 20 20 2f 2f 20 66 6f 75 6e 64 20 61        // found a
c830: 72 63 68 69 76 65 20 68 65 61 64 65 72 0d 0a 20  rchive header.. 
c840: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c850: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
c860: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
c870: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c880: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
c890: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c8a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c8b0: 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74 79 70  // structure typ
c8c0: 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  e:..            
c8d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c8e0: 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c      //   ACE_CAL
c8f0: 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49  LBACK_TYPE_ARCHI
c900: 56 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  VE..            
c910: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c920: 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e      // operation
c930: 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  s:..            
c940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c950: 20 20 20 20 2f 2f 20 20 20 41 43 45 52 65 70 61      //   ACERepa
c960: 69 72 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20  ir......        
c970: 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c  #define ACE_CALL
c980: 42 41 43 4b 5f 49 4e 46 4f 5f 46 49 4c 45 4c 49  BACK_INFO_FILELI
c990: 53 54 43 52 45 41 54 45 20 20 20 20 20 20 20 20  STCREATE        
c9a0: 30 78 31 31 39 0d 0a 0d 0a 20 20 20 20 20 20 20  0x119....       
c9b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c9c0: 20 20 20 20 20 20 20 20 20 2f 2f 20 63 72 65 61           // crea
c9d0: 74 69 6e 67 20 61 20 66 69 6c 65 20 6c 69 73 74  ting a file list
c9e0: 20 6f 66 20 73 70 65 63 69 66 69 65 64 20 66 69   of specified fi
c9f0: 6c 65 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20  les..           
ca00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ca10: 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
ca20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ca30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ca40: 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20  ----..          
ca50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ca60: 20 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75        // structu
ca70: 72 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20  re type:..      
ca80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ca90: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
caa0: 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45  CE_CALLBACK_TYPE
cab0: 5f 41 52 43 48 49 56 45 0d 0a 20 20 20 20 20 20  _ARCHIVE..      
cac0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cad0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70 65            // ope
cae0: 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20  rations:..      
caf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cb00: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
cb10: 43 45 4c 69 73 74 0d 0a 20 20 20 20 20 20 20 20  CEList..        
cb20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cb30: 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
cb40: 44 65 6c 65 74 65 0d 0a 20 20 20 20 20 20 20 20  Delete..        
cb50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cb60: 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
cb70: 54 65 73 74 0d 0a 20 20 20 20 20 20 20 20 20 20  Test..          
cb80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cb90: 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45 78        //   ACEEx
cba0: 74 72 61 63 74 0d 0a 20 20 20 20 20 20 20 20 20  tract..         
cbb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cbc0: 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 41         //   ACEA
cbd0: 64 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  dd..            
cbe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cbf0: 20 20 20 20 2f 2f 20 20 20 41 43 45 53 65 74 43      //   ACESetC
cc00: 6f 6d 6d 65 6e 74 73 0d 0a 20 20 20 20 20 20 20  omments..       
cc10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cc20: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
cc30: 45 45 6e 63 72 79 70 74 46 69 6c 65 73 0d 0a 0d  EEncryptFiles...
cc40: 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69  ...        #defi
cc50: 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f  ne ACE_CALLBACK_
cc60: 49 4e 46 4f 5f 46 49 4c 45 4c 49 53 54 43 52 45  INFO_FILELISTCRE
cc70: 41 54 45 45 4e 44 20 20 20 20 20 30 78 31 31 61  ATEEND     0x11a
cc80: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ....            
cc90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cca0: 20 20 20 20 2f 2f 20 73 65 6e 74 20 77 68 65 6e      // sent when
ccb0: 20 63 72 65 61 74 69 6e 67 20 74 68 65 20 6c 69   creating the li
ccc0: 73 74 20 6f 66 20 66 69 6c 65 73 0d 0a 20 20 20  st of files..   
ccd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
ccf0: 69 73 20 66 69 6e 69 73 68 65 64 0d 0a 20 20 20  is finished..   
cd00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cd10: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2d               //-
cd20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cd30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
cd40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20  ------------..  
cd50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cd60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
cd70: 20 73 74 72 75 63 74 75 72 65 20 74 79 70 65 3a   structure type:
cd80: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
cd90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cda0: 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42    //   ACE_CALLB
cdb0: 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49 56 45  ACK_TYPE_ARCHIVE
cdc0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
cdd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cde0: 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a    // operations:
cdf0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
ce00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ce10: 20 20 2f 2f 20 20 20 41 43 45 4c 69 73 74 0d 0a    //   ACEList..
ce20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ce30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ce40: 2f 2f 20 20 20 41 43 45 44 65 6c 65 74 65 0d 0a  //   ACEDelete..
ce50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ce60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ce70: 2f 2f 20 20 20 41 43 45 54 65 73 74 0d 0a 20 20  //   ACETest..  
ce80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ce90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
cea0: 20 20 20 41 43 45 45 78 74 72 61 63 74 0d 0a 20     ACEExtract.. 
ceb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cec0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
ced0: 2f 20 20 20 41 43 45 41 64 64 0d 0a 20 20 20 20  /   ACEAdd..    
cee0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cef0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
cf00: 20 41 43 45 53 65 74 43 6f 6d 6d 65 6e 74 73 0d   ACESetComments.
cf10: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
cf20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cf30: 20 2f 2f 20 20 20 41 43 45 45 6e 63 72 79 70 74   //   ACEEncrypt
cf40: 46 69 6c 65 73 0d 0a 0d 0a 0d 0a 20 20 20 20 20  Files......     
cf50: 20 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43     #define ACE_C
cf60: 41 4c 4c 42 41 43 4b 5f 49 4e 46 4f 5f 46 49 4c  ALLBACK_INFO_FIL
cf70: 45 53 4f 52 54 20 20 20 20 20 20 20 20 20 20 20  ESORT           
cf80: 20 20 20 30 78 31 31 62 0d 0a 0d 0a 20 20 20 20     0x11b....    
cf90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cfa0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73              // s
cfb0: 6f 72 74 69 6e 67 20 66 69 6c 65 73 20 28 66 6f  orting files (fo
cfc0: 72 20 73 6f 6c 69 64 20 63 6f 6d 70 72 65 73 73  r solid compress
cfd0: 69 6f 6e 29 0d 0a 20 20 20 20 20 20 20 20 20 20  ion)..          
cfe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
cff0: 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d        //--------
d000: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
d010: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
d020: 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20  -----..         
d030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d040: 20 20 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74         // struct
d050: 75 72 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20  ure type:..     
d060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d070: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
d080: 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50  ACE_CALLBACK_TYP
d090: 45 5f 41 52 43 48 49 56 45 0d 0a 20 20 20 20 20  E_ARCHIVE..     
d0a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d0b0: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70             // op
d0c0: 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20  erations:..     
d0d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d0e0: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
d0f0: 41 43 45 41 64 64 0d 0a 0d 0a 0d 0a 20 20 20 20  ACEAdd......    
d100: 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f      #define ACE_
d110: 43 41 4c 4c 42 41 43 4b 5f 49 4e 46 4f 5f 46 49  CALLBACK_INFO_FI
d120: 4c 45 53 4f 52 54 45 4e 44 20 20 20 20 20 20 20  LESORTEND       
d130: 20 20 20 20 30 78 31 31 63 0d 0a 0d 0a 20 20 20      0x11c....   
d140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d150: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
d160: 73 6f 72 74 69 6e 67 20 66 69 6c 65 73 20 28 66  sorting files (f
d170: 6f 72 20 73 6f 6c 69 64 20 63 6f 6d 70 72 65 73  or solid compres
d180: 73 69 6f 6e 29 0d 0a 20 20 20 20 20 20 20 20 20  sion)..         
d190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d1a0: 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d         //-------
d1b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
d1c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
d1d0: 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20  ------..        
d1e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d1f0: 20 20 20 20 20 20 20 20 2f 2f 20 73 74 72 75 63          // struc
d200: 74 75 72 65 20 74 79 70 65 3a 0d 0a 20 20 20 20  ture type:..    
d210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d220: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
d230: 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59   ACE_CALLBACK_TY
d240: 50 45 5f 41 52 43 48 49 56 45 0d 0a 20 20 20 20  PE_ARCHIVE..    
d250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d260: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f              // o
d270: 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20  perations:..    
d280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d290: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
d2a0: 20 41 43 45 41 64 64 0d 0a 0d 0a 0d 0a 20 20 20   ACEAdd......   
d2b0: 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45       #define ACE
d2c0: 5f 43 41 4c 4c 42 41 43 4b 5f 49 4e 46 4f 5f 43  _CALLBACK_INFO_C
d2d0: 4f 50 59 45 4e 44 20 20 20 20 20 20 20 20 20 20  OPYEND          
d2e0: 20 20 20 20 20 30 78 31 31 64 0d 0a 0d 0a 20 20       0x11d....  
d2f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d300: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
d310: 20 63 6f 70 79 69 6e 67 20 61 20 66 69 6c 65 20   copying a file 
d320: 66 69 6e 69 73 68 65 64 0d 0a 20 20 20 20 20 20  finished..      
d330: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d340: 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d            //----
d350: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
d360: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
d370: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20  ---------..     
d380: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d390: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73 74             // st
d3a0: 72 75 63 74 75 72 65 20 74 79 70 65 3a 0d 0a 20  ructure type:.. 
d3b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d3c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
d3d0: 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b  /   ACE_CALLBACK
d3e0: 5f 54 59 50 45 5f 41 52 43 48 49 56 45 0d 0a 20  _TYPE_ARCHIVE.. 
d3f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d400: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
d410: 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20  / operations:.. 
d420: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
d440: 2f 20 20 20 41 43 45 41 64 64 0d 0a 20 20 20 20  /   ACEAdd..    
d450: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d460: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
d470: 20 41 43 45 53 65 74 43 6f 6d 6d 65 6e 74 73 0d   ACESetComments.
d480: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
d490: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d4a0: 20 2f 2f 20 20 20 41 43 45 45 6e 63 72 79 70 74   //   ACEEncrypt
d4b0: 46 69 6c 65 73 0d 0a 20 20 20 20 20 20 20 20 20  Files..         
d4c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d4d0: 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 41         //   ACEA
d4e0: 64 64 53 46 58 0d 0a 20 20 20 20 20 20 20 20 20  ddSFX..         
d4f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d500: 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 4c         //   ACEL
d510: 6f 63 6b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ock..           
d520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d530: 20 20 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64       //   ACEAdd
d540: 41 56 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  AV..            
d550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d560: 20 20 20 20 2f 2f 20 20 20 41 43 45 52 65 70 61      //   ACERepa
d570: 69 72 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20  ir......        
d580: 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c  #define ACE_CALL
d590: 42 41 43 4b 5f 49 4e 46 4f 5f 46 49 4c 45 4c 49  BACK_INFO_FILELI
d5a0: 53 54 41 44 44 20 20 20 20 20 20 20 20 20 20 20  STADD           
d5b0: 30 78 31 34 30 0d 0a 0d 0a 20 20 20 20 20 20 20  0x140....       
d5c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d5d0: 20 20 20 20 20 20 20 20 20 2f 2f 20 63 61 6c 6c           // call
d5e0: 65 64 20 61 74 20 63 72 65 61 74 69 6f 6e 20 6f  ed at creation o
d5f0: 66 20 66 69 6c 65 20 6c 69 73 74 3b 20 74 68 65  f file list; the
d600: 20 6e 61 6d 65 0d 0a 09 20 20 20 20 20 20 20 20   name...        
d610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d620: 2f 2f 20 6f 66 20 74 68 65 20 66 69 6c 65 20 6a  // of the file j
d630: 75 73 74 20 61 64 64 65 64 20 74 6f 20 66 69 6c  ust added to fil
d640: 65 20 6c 69 73 74 20 69 73 0d 0a 20 20 20 20 20  e list is..     
d650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d660: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 70 61             // pa
d670: 73 73 65 64 20 69 6e 20 74 41 43 45 43 61 6c 6c  ssed in tACECall
d680: 62 61 63 6b 52 65 61 6c 46 69 6c 65 53 74 72 75  backRealFileStru
d690: 63 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  c..             
d6a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d6b0: 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d     //-----------
d6c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
d6d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
d6e0: 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  --..            
d6f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d700: 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75 72 65      // structure
d710: 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20 20 20   type:..        
d720: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d730: 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
d740: 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 52  _CALLBACK_TYPE_R
d750: 45 41 4c 46 49 4c 45 0d 0a 20 20 20 20 20 20 20  EALFILE..       
d760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d770: 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 72           // oper
d780: 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20  ations:..       
d790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d7a0: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
d7b0: 45 4c 69 73 74 0d 0a 20 20 20 20 20 20 20 20 20  EList..         
d7c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d7d0: 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 44         //   ACED
d7e0: 65 6c 65 74 65 0d 0a 20 20 20 20 20 20 20 20 20  elete..         
d7f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d800: 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 54         //   ACET
d810: 65 73 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20  est..           
d820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d830: 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45 78 74       //   ACEExt
d840: 72 61 63 74 0d 0a 20 20 20 20 20 20 20 20 20 20  ract..          
d850: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d860: 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 41 64        //   ACEAd
d870: 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  d..             
d880: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d890: 20 20 20 2f 2f 20 20 20 41 43 45 53 65 74 43 6f     //   ACESetCo
d8a0: 6d 6d 65 6e 74 73 0d 0a 20 20 20 20 20 20 20 20  mments..        
d8b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d8c0: 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
d8d0: 45 6e 63 72 79 70 74 46 69 6c 65 73 0d 0a 0d 0a  EncryptFiles....
d8e0: 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e  ..        #defin
d8f0: 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 49  e ACE_CALLBACK_I
d900: 4e 46 4f 5f 43 4f 50 59 20 20 20 20 20 20 20 20  NFO_COPY        
d910: 20 20 20 20 20 20 20 20 20 20 30 78 31 35 30 0d            0x150.
d920: 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ...             
d930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d940: 20 20 20 2f 2f 20 63 6f 70 79 69 6e 67 20 61 20     // copying a 
d950: 66 69 6c 65 3b 20 66 69 6c 65 20 6e 61 6d 65 2c  file; file name,
d960: 20 66 69 6c 65 20 73 69 7a 65 20 61 6e 64 0d 0a   file size and..
d970: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d990: 2f 2f 20 63 6f 70 69 65 64 20 62 79 74 65 73 20  // copied bytes 
d9a0: 61 72 65 20 70 61 73 73 65 64 20 76 69 61 0d 0a  are passed via..
d9b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d9c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d9d0: 2f 2f 20 74 41 43 45 43 61 6c 6c 62 61 63 6b 43  // tACECallbackC
d9e0: 6f 70 79 53 74 72 75 63 0d 0a 20 20 20 20 20 20  opyStruc..      
d9f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
da00: 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d            //----
da10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
da20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
da30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20  ---------..     
da40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
da50: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73 74             // st
da60: 72 75 63 74 75 72 65 20 74 79 70 65 3a 0d 0a 20  ructure type:.. 
da70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
da80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
da90: 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b  /   ACE_CALLBACK
daa0: 5f 54 59 50 45 5f 43 4f 50 59 0d 0a 20 20 20 20  _TYPE_COPY..    
dab0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
dac0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f              // o
dad0: 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20  perations:..    
dae0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
daf0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
db00: 20 41 43 45 41 64 64 0d 0a 20 20 20 20 20 20 20   ACEAdd..       
db10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
db20: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
db30: 45 53 65 74 43 6f 6d 6d 65 6e 74 73 0d 0a 20 20  ESetComments..  
db40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
db50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
db60: 20 20 20 41 43 45 45 6e 63 72 79 70 74 46 69 6c     ACEEncryptFil
db70: 65 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  es..            
db80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
db90: 20 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64 53      //   ACEAddS
dba0: 46 58 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  FX..            
dbb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
dbc0: 20 20 20 20 2f 2f 20 20 20 41 43 45 4c 6f 63 6b      //   ACELock
dbd0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
dbe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
dbf0: 20 20 2f 2f 20 20 20 41 43 45 41 64 64 41 56 0d    //   ACEAddAV.
dc00: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
dc10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
dc20: 20 2f 2f 20 20 20 41 43 45 52 65 70 61 69 72 0d   //   ACERepair.
dc30: 0a 0d 0a 0d 0a 20 20 2f 2f cd cd cd cd cd cd cd  .....  //.......
dc40: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
dc50: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
dc60: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
dc70: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
dc80: cd cd cd cd 0d 0a 20 20 2f 2f 3d 3d 3d 3d 3d 3d  ......  //======
dc90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 2d 2d 2d 20 20  ===========---  
dca0: 50 61 72 74 20 32 2e 36 3a 20 65 72 72 6f 72 20  Part 2.6: error 
dcb0: 63 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f  callback functio
dcc0: 6e 20 20 2d 2d 2d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  n  ---==========
dcd0: 3d 3d 3d 3d 3d 0d 0a 20 20 2f 2f cd cd cd cd cd  =====..  //.....
dce0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
dcf0: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
dd00: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
dd10: cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
dd20: cd cd cd cd cd cd 0d 0a 20 20 2f 2f 20 44 65 63  ........  // Dec
dd30: 6c 61 72 61 74 69 6f 6e 20 6f 66 20 41 43 45 45  laration of ACEE
dd40: 72 72 6f 72 43 61 6c 6c 62 61 63 6b 50 72 6f 63  rrorCallbackProc
dd50: 28 29 20 70 61 72 61 6d 65 74 65 72 20 61 6e 64  () parameter and
dd60: 20 65 78 70 6c 61 6e 61 74 69 6f 6e 20 6f 66 0d   explanation of.
dd70: 0a 20 20 2f 2f 20 63 61 6c 6c 62 61 63 6b 20 65  .  // callback e
dd80: 72 72 6f 72 20 63 6f 64 65 73 2e 0d 0a 20 20 2f  rror codes...  /
dd90: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
dda0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ddb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ddc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ddd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a  ------------....
dde0: 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d        //--------
ddf0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
de00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
de10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
de20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
de30: 0a 20 20 20 20 20 20 2f 2f 20 55 6e 69 6f 6e 20  .      // Union 
de40: 70 61 72 61 6d 65 74 65 72 20 75 73 65 64 20 61  parameter used a
de50: 74 20 41 43 45 45 72 72 6f 72 43 61 6c 6c 62 61  t ACEErrorCallba
de60: 63 6b 50 72 6f 63 28 29 2e 0d 0a 20 20 20 20 20  ckProc()...     
de70: 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   //-------------
de80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
de90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
dea0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
deb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20  ----------....  
dec0: 20 20 20 20 20 20 74 79 70 65 64 65 66 20 75 6e        typedef un
ded0: 69 6f 6e 20 73 41 43 45 45 72 72 6f 72 43 61 6c  ion sACEErrorCal
dee0: 6c 62 61 63 6b 50 72 6f 63 53 74 72 75 63 0d 0a  lbackProcStruc..
def0: 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20          {..     
df00: 20 20 20 20 20 55 4c 4f 4e 47 20 20 53 74 72 75       ULONG  Stru
df10: 63 74 75 72 65 54 79 70 65 3b 20 20 20 20 20 20  ctureType;      
df20: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 6e             // in
df30: 64 69 63 61 74 65 73 20 77 68 69 63 68 20 6f 66  dicates which of
df40: 20 74 68 65 20 66 6f 6c 2d 0d 0a 20 20 20 20 20   the fol-..     
df50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
df60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
df70: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6c 6f             // lo
df80: 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 73 20  wing structures 
df90: 69 73 20 75 73 65 64 0d 0a 20 20 20 20 20 20 20  is used..       
dfa0: 20 20 20 74 41 43 45 43 61 6c 6c 62 61 63 6b 47     tACECallbackG
dfb0: 6c 6f 62 61 6c 53 74 72 75 63 20 20 20 20 20 20  lobalStruc      
dfc0: 20 47 6c 6f 62 61 6c 3b 0d 0a 20 20 20 20 20 20   Global;..      
dfd0: 20 20 20 20 74 41 43 45 43 61 6c 6c 62 61 63 6b      tACECallback
dfe0: 41 72 63 68 69 76 65 53 74 72 75 63 20 20 20 20  ArchiveStruc    
dff0: 20 20 41 72 63 68 69 76 65 3b 0d 0a 20 20 20 20    Archive;..    
e000: 20 20 20 20 20 20 74 41 43 45 43 61 6c 6c 62 61        tACECallba
e010: 63 6b 41 72 63 68 69 76 65 64 46 69 6c 65 53 74  ckArchivedFileSt
e020: 72 75 63 20 41 72 63 68 69 76 65 64 46 69 6c 65  ruc ArchivedFile
e030: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 74 41 43  ;..          tAC
e040: 45 43 61 6c 6c 62 61 63 6b 52 65 61 6c 46 69 6c  ECallbackRealFil
e050: 65 53 74 72 75 63 20 20 20 20 20 52 65 61 6c 46  eStruc     RealF
e060: 69 6c 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  ile;..          
e070: 74 41 43 45 43 61 6c 6c 62 61 63 6b 53 70 61 63  tACECallbackSpac
e080: 65 53 74 72 75 63 20 20 20 20 20 20 20 20 53 70  eStruc        Sp
e090: 61 63 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  ace;..          
e0a0: 74 41 43 45 43 61 6c 6c 62 61 63 6b 53 46 58 46  tACECallbackSFXF
e0b0: 69 6c 65 53 74 72 75 63 20 20 20 20 20 20 53 46  ileStruc      SF
e0c0: 58 46 69 6c 65 3b 0d 0a 20 20 20 20 20 20 20 20  XFile;..        
e0d0: 7d 20 74 41 43 45 45 72 72 6f 72 43 61 6c 6c 62  } tACEErrorCallb
e0e0: 61 63 6b 50 72 6f 63 53 74 72 75 63 3b 0d 0a 0d  ackProcStruc;...
e0f0: 0a 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d  ...      //-----
e100: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e110: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e120: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e130: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e140: 2d 2d 0d 0a 20 20 20 20 20 20 2f 2f 20 54 68 69  --..      // Thi
e150: 73 20 73 74 72 75 63 74 75 72 65 20 69 73 20 75  s structure is u
e160: 73 65 64 20 62 79 20 74 68 65 20 41 43 45 45 72  sed by the ACEEr
e170: 72 6f 72 43 61 6c 6c 62 61 63 6b 20 66 75 6e 63  rorCallback func
e180: 74 69 6f 6e 20 74 6f 20 69 6e 66 6f 72 6d 0d 0a  tion to inform..
e190: 20 20 20 20 20 20 2f 2f 20 74 68 65 20 61 70 70        // the app
e1a0: 6c 69 63 61 74 69 6f 6e 20 61 62 6f 75 74 20 65  lication about e
e1b0: 72 72 6f 72 73 2e 20 54 68 65 20 43 6f 64 65 20  rrors. The Code 
e1c0: 66 69 65 6c 64 20 6f 66 20 74 68 65 20 75 73 65  field of the use
e1d0: 64 20 73 74 72 75 63 74 75 72 65 0d 0a 20 20 20  d structure..   
e1e0: 20 20 20 2f 2f 20 63 6f 6e 74 61 69 6e 73 20 61     // contains a
e1f0: 6e 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45  n ACE_CALLBACK_E
e200: 52 52 4f 52 20 76 61 6c 75 65 2e 20 41 74 20 6d  RROR value. At m
e210: 6f 73 74 20 70 72 6f 62 6c 65 6d 73 20 6d 6f 64  ost problems mod
e220: 69 66 69 63 61 74 69 6f 6e 73 0d 0a 20 20 20 20  ifications..    
e230: 20 20 2f 2f 20 74 6f 20 74 68 65 20 70 61 73 73    // to the pass
e240: 65 64 20 73 74 72 75 63 74 75 72 65 20 63 61 6e  ed structure can
e250: 20 62 65 20 6d 61 64 65 20 74 6f 20 66 69 78 20   be made to fix 
e260: 69 74 2e 20 4f 74 68 65 72 20 70 72 6f 62 6c 65  it. Other proble
e270: 6d 73 20 63 61 6e 20 6e 6f 74 0d 0a 20 20 20 20  ms can not..    
e280: 20 20 2f 2f 20 62 65 20 73 6f 6c 76 65 64 20 61    // be solved a
e290: 6e 64 20 63 61 75 73 65 20 61 6e 20 6f 70 65 72  nd cause an oper
e2a0: 61 74 69 6f 6e 20 61 62 6f 72 74 20 69 6d 6d 65  ation abort imme
e2b0: 64 69 61 74 65 6c 79 2e 0d 0a 20 20 20 20 20 20  diately...      
e2c0: 2f 2f 20 45 72 72 6f 72 43 61 6c 6c 62 61 63 6b  // ErrorCallback
e2d0: 50 72 6f 63 28 29 20 68 61 73 20 74 6f 20 72 65  Proc() has to re
e2e0: 74 75 72 6e 20 65 69 74 68 65 72 20 41 43 45 5f  turn either ACE_
e2f0: 43 41 4c 4c 42 41 43 4b 5f 52 45 54 55 52 4e 5f  CALLBACK_RETURN_
e300: 4f 4b 20 6f 72 0d 0a 20 20 20 20 20 20 2f 2f 20  OK or..      // 
e310: 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 52 45 54  ACE_CALLBACK_RET
e320: 55 52 4e 5f 43 41 4e 43 45 4c 2e 0d 0a 20 20 20  URN_CANCEL...   
e330: 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d     //-----------
e340: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e350: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e360: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e370: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a  ------------....
e380: 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20          #define 
e390: 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52  ACE_CALLBACK_ERR
e3a0: 4f 52 5f 4d 45 4d 4f 52 59 20 20 20 20 20 20 20  OR_MEMORY       
e3b0: 20 20 20 20 20 20 20 20 30 78 32 30 30 0d 0a 0d          0x200...
e3c0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
e3d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e3e0: 20 2f 2f 20 6e 6f 74 20 65 6e 6f 75 67 68 20 6d   // not enough m
e3f0: 65 6d 6f 72 79 20 74 6f 20 70 65 72 66 6f 72 6d  emory to perform
e400: 20 6f 70 65 72 61 74 69 6f 6e 0d 0a 20 20 20 20   operation..    
e410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e420: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 28              // (
e430: 64 69 63 74 69 6f 6e 61 72 79 20 74 6f 6f 20 6c  dictionary too l
e440: 61 72 67 65 3f 29 0d 0a 20 20 20 20 20 20 20 20  arge?)..        
e450: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e460: 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d          //------
e470: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e480: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e490: 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20  -------..       
e4a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e4b0: 20 20 20 20 20 20 20 20 20 2f 2f 20 73 74 72 75           // stru
e4c0: 63 74 75 72 65 20 74 79 70 65 3a 0d 0a 20 20 20  cture type:..   
e4d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e4e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
e4f0: 20 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54    ACE_CALLBACK_T
e500: 59 50 45 5f 47 4c 4f 42 41 4c 0d 0a 20 20 20 20  YPE_GLOBAL..    
e510: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e520: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f              // o
e530: 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20  perations:..    
e540: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e550: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
e560: 20 61 6c 6c 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20   all......      
e570: 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41    #define ACE_CA
e580: 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 52 45 47  LLBACK_ERROR_REG
e590: 49 53 54 45 52 20 20 20 20 20 20 20 20 20 20 20  ISTER           
e5a0: 20 20 30 78 32 30 31 0d 0a 0d 0a 20 20 20 20 20    0x201....     
e5b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e5c0: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 72 65             // re
e5d0: 67 69 73 74 72 61 74 69 6f 6e 20 6b 65 79 20 69  gistration key i
e5e0: 73 20 69 6e 76 61 6c 69 64 20 28 6f 72 20 77 72  s invalid (or wr
e5f0: 6f 6e 67 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ong..           
e600: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e610: 20 20 20 20 20 2f 2f 20 66 6f 72 6d 61 74 3f 29       // format?)
e620: 3b 20 6e 6f 74 20 75 73 65 64 20 69 6e 20 41 43  ; not used in AC
e630: 4c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  L..             
e640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e650: 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d     //-----------
e660: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e670: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e680: 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  --..            
e690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e6a0: 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75 72 65      // structure
e6b0: 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20 20 20   type:..        
e6c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e6d0: 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
e6e0: 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 47  _CALLBACK_TYPE_G
e6f0: 4c 4f 42 41 4c 0d 0a 20 20 20 20 20 20 20 20 20  LOBAL..         
e700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e710: 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 72 61 74         // operat
e720: 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 20  ions:..         
e730: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e740: 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 52         //   ACER
e750: 65 67 69 73 74 65 72 0d 0a 0d 0a 0d 0a 20 20 20  egister......   
e760: 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45       #define ACE
e770: 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f  _CALLBACK_ERROR_
e780: 52 45 41 44 4b 45 59 20 20 20 20 20 20 20 20 20  READKEY         
e790: 20 20 20 20 20 30 78 32 30 32 0d 0a 0d 0a 20 20       0x202....  
e7a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e7b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
e7c0: 20 6b 65 79 20 63 6f 75 6c 64 20 6e 6f 74 20 62   key could not b
e7d0: 65 20 72 65 61 64 20 28 64 6f 65 73 20 6e 6f 74  e read (does not
e7e0: 20 65 78 69 73 74 20 6f 72 0d 0a 20 20 20 20 20   exist or..     
e7f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e800: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 73             // is
e810: 20 69 6e 76 61 6c 69 64 29 3b 20 6e 6f 74 20 75   invalid); not u
e820: 73 65 64 20 69 6e 20 41 43 4c 0d 0a 20 20 20 20  sed in ACL..    
e830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e840: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d              //--
e850: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e860: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
e870: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20  -----------..   
e880: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e890: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
e8a0: 73 74 72 75 63 74 75 72 65 20 74 79 70 65 3a 0d  structure type:.
e8b0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
e8c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e8d0: 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42 41   //   ACE_CALLBA
e8e0: 43 4b 5f 54 59 50 45 5f 47 4c 4f 42 41 4c 0d 0a  CK_TYPE_GLOBAL..
e8f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e910: 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a  // operations:..
e920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e940: 2f 2f 20 20 20 41 43 45 49 6e 69 74 44 6c 6c 0d  //   ACEInitDll.
e950: 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65  .....        #de
e960: 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43  fine ACE_CALLBAC
e970: 4b 5f 45 52 52 4f 52 5f 57 52 49 54 45 4b 45 59  K_ERROR_WRITEKEY
e980: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 78 32               0x2
e990: 30 33 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20  03....          
e9a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e9b0: 20 20 20 20 20 20 2f 2f 20 63 6f 75 6c 64 20 6e        // could n
e9c0: 6f 74 20 77 72 69 74 65 20 6b 65 79 3b 20 6e 6f  ot write key; no
e9d0: 74 20 75 73 65 64 20 69 6e 20 41 43 4c 0d 0a 20  t used in ACL.. 
e9e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
e9f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
ea00: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
ea10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ea20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
ea30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ea40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ea50: 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74 79 70  // structure typ
ea60: 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  e:..            
ea70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ea80: 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c      //   ACE_CAL
ea90: 4c 42 41 43 4b 5f 54 59 50 45 5f 47 4c 4f 42 41  LBACK_TYPE_GLOBA
eaa0: 4c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  L..             
eab0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
eac0: 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 73     // operations
ead0: 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  :..             
eae0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
eaf0: 20 20 20 2f 2f 20 20 20 41 43 45 52 65 67 69 73     //   ACERegis
eb00: 74 65 72 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20  ter......       
eb10: 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c   #define ACE_CAL
eb20: 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 4e 4f 57 49  LBACK_ERROR_NOWI
eb30: 4e 41 43 45 4b 45 59 20 20 20 20 20 20 20 20 20  NACEKEY         
eb40: 20 30 78 32 30 34 0d 0a 0d 0a 20 20 20 20 20 20   0x204....      
eb50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
eb60: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6b 65 79            // key
eb70: 20 6e 6f 74 20 76 61 6c 69 64 20 66 6f 72 20 57   not valid for W
eb80: 69 6e 41 43 45 3b 20 6e 6f 74 20 75 73 65 64 20  inACE; not used 
eb90: 69 6e 20 41 43 4c 0d 0a 20 20 20 20 20 20 20 20  in ACL..        
eba0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ebb0: 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d          //------
ebc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ebd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ebe0: 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20  -------..       
ebf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ec00: 20 20 20 20 20 20 20 20 20 2f 2f 20 73 74 72 75           // stru
ec10: 63 74 75 72 65 20 74 79 70 65 3a 0d 0a 20 20 20  cture type:..   
ec20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ec30: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
ec40: 20 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54    ACE_CALLBACK_T
ec50: 59 50 45 5f 47 4c 4f 42 41 4c 0d 0a 20 20 20 20  YPE_GLOBAL..    
ec60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ec70: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f              // o
ec80: 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20  perations:..    
ec90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
eca0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
ecb0: 20 41 43 45 52 65 67 69 73 74 65 72 0d 0a 0d 0a   ACERegister....
ecc0: 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e  ..        #defin
ecd0: 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45  e ACE_CALLBACK_E
ece0: 52 52 4f 52 5f 4e 4f 41 43 54 49 56 45 41 43 45  RROR_NOACTIVEACE
ecf0: 4b 45 59 20 20 20 20 20 20 20 30 78 32 30 35 0d  KEY       0x205.
ed00: 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ...             
ed10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ed20: 20 20 20 2f 2f 20 6b 65 79 20 6e 6f 74 20 76 61     // key not va
ed30: 6c 69 64 20 66 6f 72 20 41 63 74 69 76 65 41 43  lid for ActiveAC
ed40: 45 3b 20 6e 6f 74 20 75 73 65 64 20 69 6e 20 41  E; not used in A
ed50: 43 4c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  CL..            
ed60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ed70: 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
ed80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ed90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
eda0: 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ---..           
edb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
edc0: 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75 72       // structur
edd0: 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20 20  e type:..       
ede0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
edf0: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
ee00: 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f  E_CALLBACK_TYPE_
ee10: 47 4c 4f 42 41 4c 0d 0a 20 20 20 20 20 20 20 20  GLOBAL..        
ee20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ee30: 20 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 72 61          // opera
ee40: 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20  tions:..        
ee50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ee60: 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
ee70: 52 65 67 69 73 74 65 72 0d 0a 0d 0a 0d 0a 20 20  Register......  
ee80: 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43        #define AC
ee90: 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52  E_CALLBACK_ERROR
eea0: 5f 55 4e 43 53 50 41 43 45 20 20 20 20 20 20 20  _UNCSPACE       
eeb0: 20 20 20 20 20 20 30 78 32 30 36 0d 0a 0d 0a 20        0x206.... 
eec0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
eed0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
eee0: 2f 20 57 69 6e 39 35 5f 4f 53 52 31 2d 62 75 67  / Win95_OSR1-bug
eef0: 3a 20 69 74 20 69 73 20 69 6d 70 6f 73 73 69 62  : it is impossib
ef00: 6c 65 20 74 6f 0d 0a 20 20 20 20 20 20 20 20 20  le to..         
ef10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ef20: 20 20 20 20 20 20 20 2f 2f 20 67 65 74 20 61 76         // get av
ef30: 61 69 6c 61 62 6c 65 20 73 70 61 63 65 20 6f 66  ailable space of
ef40: 20 6e 65 74 77 6f 72 6b 20 64 72 69 76 65 73 20   network drives 
ef50: 62 79 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  by..            
ef60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ef70: 20 20 20 20 2f 2f 20 61 6e 20 55 4e 43 20 6e 61      // an UNC na
ef80: 6d 65 3b 20 41 43 45 20 77 69 6c 6c 20 6e 6f 74  me; ACE will not
ef90: 20 73 74 6f 70 20 62 75 74 0d 0a 20 20 20 20 20   stop but..     
efa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
efb0: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 61 73             // as
efc0: 73 75 6d 65 73 20 74 68 65 72 65 20 61 72 65 20  sumes there are 
efd0: 34 47 62 20 66 72 65 65 0d 0a 20 20 20 20 20 20  4Gb free..      
efe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
eff0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 2d 2d 3e            // -->
f000: 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 20 6d   the operation m
f010: 69 67 68 74 20 66 61 69 6c 20 69 66 20 66 72 65  ight fail if fre
f020: 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  e..             
f030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f040: 20 20 20 2f 2f 20 64 69 73 6b 20 73 70 61 63 65     // disk space
f050: 20 69 73 20 6c 6f 77 0d 0a 20 20 20 20 20 20 20   is low..       
f060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f070: 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d           //-----
f080: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
f090: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
f0a0: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20  --------..      
f0b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f0c0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73 74 72            // str
f0d0: 75 63 74 75 72 65 20 74 79 70 65 3a 0d 0a 20 20  ucture type:..  
f0e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f0f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
f100: 20 20 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f     ACE_CALLBACK_
f110: 54 59 50 45 5f 47 4c 4f 42 41 4c 0d 0a 20 20 20  TYPE_GLOBAL..   
f120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f130: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
f140: 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20  operations:..   
f150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f160: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
f170: 20 20 61 6c 6c 0d 0a 0d 0a 0d 0a 20 20 20 20 20    all......     
f180: 20 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43     #define ACE_C
f190: 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 4d 4f  ALLBACK_ERROR_MO
f1a0: 44 49 46 59 56 4f 4c 55 4d 45 20 20 20 20 20 20  DIFYVOLUME      
f1b0: 20 20 20 30 78 32 32 30 0d 0a 0d 0a 20 20 20 20     0x220....    
f1c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f1d0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6d              // m
f1e0: 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 76  odification of v
f1f0: 6f 6c 75 6d 65 73 20 6e 6f 74 20 70 6f 73 73 69  olumes not possi
f200: 62 6c 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ble..           
f210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f220: 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
f230: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
f240: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
f250: 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20  ----..          
f260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f270: 20 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75        // structu
f280: 72 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20  re type:..      
f290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f2a0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
f2b0: 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45  CE_CALLBACK_TYPE
f2c0: 5f 41 52 43 48 49 56 45 0d 0a 20 20 20 20 20 20  _ARCHIVE..      
f2d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f2e0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70 65            // ope
f2f0: 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20  rations:..      
f300: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f310: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
f320: 43 45 41 64 64 0d 0a 20 20 20 20 20 20 20 20 20  CEAdd..         
f330: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f340: 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 53         //   ACES
f350: 65 74 43 6f 6d 6d 65 6e 74 73 0d 0a 20 20 20 20  etComments..    
f360: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f370: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
f380: 20 41 43 45 45 6e 63 72 79 70 74 46 69 6c 65 73   ACEEncryptFiles
f390: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
f3a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f3b0: 20 20 2f 2f 20 20 20 41 43 45 41 64 64 53 46 58    //   ACEAddSFX
f3c0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
f3d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f3e0: 20 20 2f 2f 20 20 20 41 43 45 4c 6f 63 6b 0d 0a    //   ACELock..
f3f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f400: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f410: 2f 2f 20 20 20 41 43 45 41 64 64 41 56 0d 0a 20  //   ACEAddAV.. 
f420: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
f440: 2f 20 20 20 41 43 45 41 64 64 52 65 63 6f 76 65  /   ACEAddRecove
f450: 72 79 52 65 63 6f 72 64 0d 0a 0d 0a 0d 0a 20 20  ryRecord......  
f460: 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43        #define AC
f470: 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52  E_CALLBACK_ERROR
f480: 5f 4d 4f 44 49 46 59 4c 4f 43 4b 45 44 41 52 43  _MODIFYLOCKEDARC
f490: 48 49 56 45 20 20 30 78 32 32 31 0d 0a 0d 0a 20  HIVE  0x221.... 
f4a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f4b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
f4c0: 2f 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f  / modification o
f4d0: 66 20 6c 6f 63 6b 65 64 20 61 72 63 68 69 76 65  f locked archive
f4e0: 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 0d 0a 20   not possible.. 
f4f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
f510: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
f520: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
f530: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
f540: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f560: 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74 79 70  // structure typ
f570: 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  e:..            
f580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f590: 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c      //   ACE_CAL
f5a0: 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49  LBACK_TYPE_ARCHI
f5b0: 56 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  VE..            
f5c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f5d0: 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e      // operation
f5e0: 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  s:..            
f5f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f600: 20 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64 0d      //   ACEAdd.
f610: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
f620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f630: 20 2f 2f 20 20 20 41 43 45 53 65 74 43 6f 6d 6d   //   ACESetComm
f640: 65 6e 74 73 0d 0a 20 20 20 20 20 20 20 20 20 20  ents..          
f650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f660: 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45 6e        //   ACEEn
f670: 63 72 79 70 74 46 69 6c 65 73 0d 0a 20 20 20 20  cryptFiles..    
f680: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f690: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
f6a0: 20 41 43 45 41 64 64 53 46 58 0d 0a 20 20 20 20   ACEAddSFX..    
f6b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f6c0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
f6d0: 20 41 43 45 4c 6f 63 6b 0d 0a 20 20 20 20 20 20   ACELock..      
f6e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f6f0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
f700: 43 45 41 64 64 41 56 0d 0a 20 20 20 20 20 20 20  CEAddAV..       
f710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f720: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
f730: 45 41 64 64 52 65 63 6f 76 65 72 79 52 65 63 6f  EAddRecoveryReco
f740: 72 64 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20  rd......        
f750: 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c  #define ACE_CALL
f760: 42 41 43 4b 5f 45 52 52 4f 52 5f 41 56 20 20 20  BACK_ERROR_AV   
f770: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f780: 30 78 32 32 32 0d 0a 0d 0a 20 20 20 20 20 20 20  0x222....       
f790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f7a0: 20 20 20 20 20 20 20 20 20 2f 2f 20 41 56 20 6f           // AV o
f7b0: 66 20 61 72 63 68 69 76 65 20 69 73 20 4e 4f 54  f archive is NOT
f7c0: 20 6f 6b 20 6f 72 20 64 6f 65 73 20 6e 6f 74 20   ok or does not 
f7d0: 6d 61 74 63 68 0d 0a 20 20 20 20 20 20 20 20 20  match..         
f7e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f7f0: 20 20 20 20 20 20 20 2f 2f 20 74 6f 20 74 68 65         // to the
f800: 20 75 73 65 72 73 20 41 56 20 28 6e 6f 74 20 75   users AV (not u
f810: 73 65 64 20 69 6e 20 41 43 4c 29 0d 0a 20 20 20  sed in ACL)..   
f820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f830: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2d               //-
f840: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
f850: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
f860: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20  ------------..  
f870: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f880: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
f890: 20 73 74 72 75 63 74 75 72 65 20 74 79 70 65 3a   structure type:
f8a0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
f8b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f8c0: 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42    //   ACE_CALLB
f8d0: 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49 56 45  ACK_TYPE_ARCHIVE
f8e0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
f8f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f900: 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a    // operations:
f910: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
f920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f930: 20 20 2f 2f 20 20 20 41 43 45 52 65 61 64 41 72    //   ACEReadAr
f940: 63 68 69 76 65 44 61 74 61 0d 0a 20 20 20 20 20  chiveData..     
f950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f960: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
f970: 41 43 45 4c 69 73 74 0d 0a 20 20 20 20 20 20 20  ACEList..       
f980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f990: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
f9a0: 45 44 65 6c 65 74 65 0d 0a 20 20 20 20 20 20 20  EDelete..       
f9b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f9c0: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
f9d0: 45 54 65 73 74 0d 0a 20 20 20 20 20 20 20 20 20  ETest..         
f9e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f9f0: 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45         //   ACEE
fa00: 78 74 72 61 63 74 0d 0a 20 20 20 20 20 20 20 20  xtract..        
fa10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fa20: 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
fa30: 41 64 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20  Add..           
fa40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fa50: 20 20 20 20 20 2f 2f 20 20 20 41 43 45 52 65 70       //   ACERep
fa60: 61 69 72 0d 0a 20 20 20 20 20 20 20 20 20 20 20  air..           
fa70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fa80: 20 20 20 20 20 2f 2f 20 20 20 41 43 45 53 65 74       //   ACESet
fa90: 43 6f 6d 6d 65 6e 74 73 0d 0a 20 20 20 20 20 20  Comments..      
faa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fab0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
fac0: 43 45 45 6e 63 72 79 70 74 46 69 6c 65 73 0d 0a  CEEncryptFiles..
fad0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fae0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
faf0: 2f 2f 20 20 20 41 43 45 41 64 64 53 46 58 0d 0a  //   ACEAddSFX..
fb00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fb10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fb20: 2f 2f 20 20 20 41 43 45 41 64 64 41 56 0d 0a 20  //   ACEAddAV.. 
fb30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fb40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
fb50: 2f 20 20 20 41 43 45 4c 6f 63 6b 0d 0a 20 20 20  /   ACELock..   
fb60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fb70: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
fb80: 20 20 41 43 45 41 64 64 52 65 63 6f 76 65 72 79    ACEAddRecovery
fb90: 52 65 63 6f 72 64 0d 0a 0d 0a 0d 0a 20 20 20 20  Record......    
fba0: 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f      #define ACE_
fbb0: 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 54  CALLBACK_ERROR_T
fbc0: 4f 4f 44 41 4d 41 47 45 44 20 20 20 20 20 20 20  OODAMAGED       
fbd0: 20 20 20 20 30 78 32 32 33 0d 0a 0d 0a 20 20 20      0x223....   
fbe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fbf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
fc00: 63 61 6e 20 6e 6f 74 20 72 65 70 61 69 72 20 62  can not repair b
fc10: 79 20 72 65 63 6f 76 65 72 79 20 72 65 63 6f 72  y recovery recor
fc20: 64 20 62 75 74 0d 0a 20 20 20 20 20 20 20 20 20  d but..         
fc30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fc40: 20 20 20 20 20 20 20 2f 2f 20 63 61 6e 20 63 6f         // can co
fc50: 6e 74 69 6e 75 65 20 77 69 74 68 20 6e 6f 72 6d  ntinue with norm
fc60: 61 6c 20 72 65 70 61 69 72 0d 0a 20 20 20 20 20  al repair..     
fc70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fc80: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d             //---
fc90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
fca0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
fcb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20  ----------..    
fcc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fcd0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73              // s
fce0: 74 72 75 63 74 75 72 65 20 74 79 70 65 3a 0d 0a  tructure type:..
fcf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fd00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fd10: 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42 41 43  //   ACE_CALLBAC
fd20: 4b 5f 54 59 50 45 5f 41 52 43 48 49 56 45 0d 0a  K_TYPE_ARCHIVE..
fd30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fd40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fd50: 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a  // operations:..
fd60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fd70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fd80: 2f 2f 20 20 20 41 43 45 52 65 70 61 69 72 0d 0a  //   ACERepair..
fd90: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66  ....        #def
fda0: 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b  ine ACE_CALLBACK
fdb0: 5f 45 52 52 4f 52 5f 41 52 43 48 49 56 45 45 58  _ERROR_ARCHIVEEX
fdc0: 49 53 54 53 20 20 20 20 20 20 20 20 30 78 32 32  ISTS        0x22
fdd0: 34 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  4....           
fde0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fdf0: 20 20 20 20 20 2f 2f 20 64 65 73 74 69 6e 61 74       // destinat
fe00: 69 6f 6e 20 66 69 6c 65 20 6e 61 6d 65 20 61 6c  ion file name al
fe10: 72 65 61 64 79 20 75 73 65 64 3b 0d 0a 20 20 20  ready used;..   
fe20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fe30: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
fe40: 6d 61 79 20 6f 63 63 75 72 20 69 66 20 61 74 0d  may occur if at.
fe50: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
fe60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fe70: 20 2f 2f 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b   // ACE_CALLBACK
fe80: 5f 45 52 52 4f 52 5f 41 52 43 48 49 56 45 53 50  _ERROR_ARCHIVESP
fe90: 41 43 45 20 61 0d 0a 20 20 20 20 20 20 20 20 20  ACE a..         
fea0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
feb0: 20 20 20 20 20 20 20 2f 2f 20 64 69 72 65 63 6f         // direco
fec0: 72 79 20 69 73 20 73 70 65 63 69 66 69 65 64 20  ry is specified 
fed0: 77 68 65 72 65 20 61 20 66 69 6c 65 0d 0a 20 20  where a file..  
fee0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
fef0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
ff00: 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 6e   with the same n
ff10: 61 6d 65 20 61 73 20 74 68 65 20 63 75 72 72 65  ame as the curre
ff20: 6e 74 20 61 72 63 68 69 76 65 0d 0a 20 20 20 20  nt archive..    
ff30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ff40: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 61              // a
ff50: 6c 72 65 61 64 79 20 65 78 69 73 74 73 0d 0a 20  lready exists.. 
ff60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ff70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
ff80: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
ff90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ffa0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
ffb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ffc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ffd0: 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74 79 70  // structure typ
ffe0: 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  e:..            
fff0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10000 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c      //   ACE_CAL
10010 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49  LBACK_TYPE_ARCHI
10020 56 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  VE..            
10030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10040 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e      // operation
10050 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  s:..            
10060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10070 20 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64 0d      //   ACEAdd.
10080 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65  .....        #de
10090 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43  fine ACE_CALLBAC
100a0 4b 5f 45 52 52 4f 52 5f 4f 50 45 4e 52 45 50 41  K_ERROR_OPENREPA
100b0 49 52 41 52 43 48 49 56 45 20 20 20 20 30 78 32  IRARCHIVE    0x2
100c0 32 35 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20  25....          
100d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
100e0 20 20 20 20 20 20 2f 2f 20 63 6f 75 6c 64 20 6e        // could n
100f0 6f 74 20 63 72 65 61 74 65 20 61 72 63 68 69 76  ot create archiv
10100 65 20 66 6f 72 20 72 65 70 61 69 72 69 6e 67 0d  e for repairing.
10110 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
10120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10130 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   //-------------
10140 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10150 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10160 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
10170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10180 20 20 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74    // structure t
10190 79 70 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  ype:..          
101a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
101b0 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43        //   ACE_C
101c0 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52 43  ALLBACK_TYPE_ARC
101d0 48 49 56 45 0d 0a 20 20 20 20 20 20 20 20 20 20  HIVE..          
101e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
101f0 20 20 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69        // operati
10200 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  ons:..          
10210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10220 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 52 65        //   ACERe
10230 70 61 69 72 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20  pair......      
10240 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41    #define ACE_CA
10250 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 4f 50 45  LLBACK_ERROR_OPE
10260 4e 41 52 43 48 49 56 45 52 45 41 44 20 20 20 20  NARCHIVEREAD    
10270 20 20 30 78 32 32 36 0d 0a 0d 0a 20 20 20 20 20    0x226....     
10280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10290 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 63 6f             // co
102a0 75 6c 64 20 6e 6f 74 20 6f 70 65 6e 20 61 72 63  uld not open arc
102b0 68 69 76 65 2f 76 6f 6c 75 6d 65 20 66 6f 72 20  hive/volume for 
102c0 72 65 61 64 69 6e 67 0d 0a 20 20 20 20 20 20 20  reading..       
102d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
102e0 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d           //-----
102f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10300 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10310 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20  --------..      
10320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10330 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73 74 72            // str
10340 75 63 74 75 72 65 20 74 79 70 65 3a 0d 0a 20 20  ucture type:..  
10350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
10370 20 20 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f     ACE_CALLBACK_
10380 54 59 50 45 5f 41 52 43 48 49 56 45 0d 0a 20 20  TYPE_ARCHIVE..  
10390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
103a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
103b0 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20   operations:..  
103c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
103d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
103e0 20 20 20 41 43 45 52 65 61 64 41 72 63 68 69 76     ACEReadArchiv
103f0 65 44 61 74 61 0d 0a 20 20 20 20 20 20 20 20 20  eData..         
10400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10410 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 4c         //   ACEL
10420 69 73 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ist..           
10430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10440 20 20 20 20 20 2f 2f 20 20 20 41 43 45 54 65 73       //   ACETes
10450 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  t..             
10460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10470 20 20 20 2f 2f 20 20 20 41 43 45 45 78 74 72 61     //   ACEExtra
10480 63 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ct..            
10490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
104a0 20 20 20 20 2f 2f 20 20 20 41 43 45 52 65 70 61      //   ACERepa
104b0 69 72 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20  ir......        
104c0 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c  #define ACE_CALL
104d0 42 41 43 4b 5f 45 52 52 4f 52 5f 4f 50 45 4e 41  BACK_ERROR_OPENA
104e0 52 43 48 49 56 45 57 52 49 54 45 20 20 20 20 20  RCHIVEWRITE     
104f0 30 78 32 32 37 0d 0a 0d 0a 20 20 20 20 20 20 20  0x227....       
10500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10510 20 20 20 20 20 20 20 20 20 2f 2f 20 63 6f 75 6c           // coul
10520 64 20 6e 6f 74 20 6f 70 65 6e 20 61 72 63 68 69  d not open archi
10530 76 65 2f 76 6f 6c 75 6d 65 20 66 6f 72 20 77 72  ve/volume for wr
10540 69 74 69 6e 67 0d 0a 20 20 20 20 20 20 20 20 20  iting..         
10550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10560 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d         //-------
10570 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10580 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10590 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20  ------..        
105a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
105b0 20 20 20 20 20 20 20 20 2f 2f 20 73 74 72 75 63          // struc
105c0 74 75 72 65 20 74 79 70 65 3a 0d 0a 20 20 20 20  ture type:..    
105d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
105e0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
105f0 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59   ACE_CALLBACK_TY
10600 50 45 5f 41 52 43 48 49 56 45 0d 0a 20 20 20 20  PE_ARCHIVE..    
10610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10620 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f              // o
10630 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20  perations:..    
10640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10650 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
10660 20 41 43 45 44 65 6c 65 74 65 0d 0a 20 20 20 20   ACEDelete..    
10670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10680 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
10690 20 41 43 45 41 64 64 0d 0a 20 20 20 20 20 20 20   ACEAdd..       
106a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
106b0 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
106c0 45 53 65 74 43 6f 6d 6d 65 6e 74 73 0d 0a 20 20  ESetComments..  
106d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
106e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
106f0 20 20 20 41 43 45 45 6e 63 72 79 70 74 46 69 6c     ACEEncryptFil
10700 65 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  es..            
10710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10720 20 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64 53      //   ACEAddS
10730 46 58 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  FX..            
10740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10750 20 20 20 20 2f 2f 20 20 20 41 43 45 4c 6f 63 6b      //   ACELock
10760 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
10770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10780 20 20 2f 2f 20 20 20 41 43 45 41 64 64 41 56 0d    //   ACEAddAV.
10790 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
107a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
107b0 20 2f 2f 20 20 20 41 43 45 41 64 64 52 65 63 6f   //   ACEAddReco
107c0 76 65 72 79 52 65 63 6f 72 64 0d 0a 20 20 20 20  veryRecord..    
107d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
107e0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
107f0 20 41 43 45 52 65 70 61 69 72 0d 0a 0d 0a 0d 0a   ACERepair......
10800 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20          #define 
10810 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52  ACE_CALLBACK_ERR
10820 4f 52 5f 52 45 41 44 41 52 43 48 49 56 45 20 20  OR_READARCHIVE  
10830 20 20 20 20 20 20 20 20 30 78 32 32 38 0d 0a 0d          0x228...
10840 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
10850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10860 20 2f 2f 20 65 72 72 6f 72 20 72 65 61 64 69 6e   // error readin
10870 67 20 66 72 6f 6d 20 61 72 63 68 69 76 65 0d 0a  g from archive..
10880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
108a0 2f 2f 20 28 73 6f 75 72 63 65 20 64 69 73 6b 20  // (source disk 
108b0 72 65 6d 6f 76 65 64 3f 29 0d 0a 20 20 20 20 20  removed?)..     
108c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
108d0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d             //---
108e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
108f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10900 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20  ----------..    
10910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10920 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73              // s
10930 74 72 75 63 74 75 72 65 20 74 79 70 65 3a 0d 0a  tructure type:..
10940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10960 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42 41 43  //   ACE_CALLBAC
10970 4b 5f 54 59 50 45 5f 41 52 43 48 49 56 45 0d 0a  K_TYPE_ARCHIVE..
10980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
109a0 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a  // operations:..
109b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
109c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
109d0 2f 2f 20 20 20 41 43 45 52 65 61 64 41 72 63 68  //   ACEReadArch
109e0 69 76 65 44 61 74 61 0d 0a 20 20 20 20 20 20 20  iveData..       
109f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10a00 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
10a10 45 4c 69 73 74 0d 0a 20 20 20 20 20 20 20 20 20  EList..         
10a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10a30 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 44         //   ACED
10a40 65 6c 65 74 65 0d 0a 20 20 20 20 20 20 20 20 20  elete..         
10a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10a60 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 54         //   ACET
10a70 65 73 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20  est..           
10a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10a90 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45 78 74       //   ACEExt
10aa0 72 61 63 74 0d 0a 20 20 20 20 20 20 20 20 20 20  ract..          
10ab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10ac0 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 41 64        //   ACEAd
10ad0 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  d..             
10ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10af0 20 20 20 2f 2f 20 20 20 41 43 45 52 65 70 61 69     //   ACERepai
10b00 72 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  r..             
10b10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10b20 20 20 20 2f 2f 20 20 20 41 43 45 53 65 74 43 6f     //   ACESetCo
10b30 6d 6d 65 6e 74 73 0d 0a 20 20 20 20 20 20 20 20  mments..        
10b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10b50 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
10b60 45 6e 63 72 79 70 74 46 69 6c 65 73 0d 0a 20 20  EncryptFiles..  
10b70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
10b90 20 20 20 41 43 45 41 64 64 53 46 58 0d 0a 20 20     ACEAddSFX..  
10ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10bb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
10bc0 20 20 20 41 43 45 41 64 64 41 56 0d 0a 20 20 20     ACEAddAV..   
10bd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10be0 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
10bf0 20 20 41 43 45 4c 6f 63 6b 0d 0a 20 20 20 20 20    ACELock..     
10c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10c10 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
10c20 41 43 45 41 64 64 52 65 63 6f 76 65 72 79 52 65  ACEAddRecoveryRe
10c30 63 6f 72 64 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20  cord......      
10c40 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41    #define ACE_CA
10c50 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 57 52 49  LLBACK_ERROR_WRI
10c60 54 45 41 52 43 48 49 56 45 20 20 20 20 20 20 20  TEARCHIVE       
10c70 20 20 30 78 32 32 39 0d 0a 0d 0a 20 20 20 20 20    0x229....     
10c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10c90 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 65 72             // er
10ca0 72 6f 72 20 77 72 69 74 69 6e 67 20 74 6f 20 61  ror writing to a
10cb0 72 63 68 69 76 65 0d 0a 20 20 20 20 20 20 20 20  rchive..        
10cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10cd0 20 20 20 20 20 20 20 20 2f 2f 20 28 64 65 73 74          // (dest
10ce0 69 6e 61 74 69 6f 6e 20 64 69 73 6b 20 72 65 6d  ination disk rem
10cf0 6f 76 65 64 3f 29 0d 0a 20 20 20 20 20 20 20 20  oved?)..        
10d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10d10 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d          //------
10d20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10d30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10d40 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20  -------..       
10d50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10d60 20 20 20 20 20 20 20 20 20 2f 2f 20 73 74 72 75           // stru
10d70 63 74 75 72 65 20 74 79 70 65 3a 0d 0a 20 20 20  cture type:..   
10d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10d90 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
10da0 20 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54    ACE_CALLBACK_T
10db0 59 50 45 5f 41 52 43 48 49 56 45 0d 0a 20 20 20  YPE_ARCHIVE..   
10dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10dd0 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
10de0 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20  operations:..   
10df0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10e00 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
10e10 20 20 41 43 45 44 65 6c 65 74 65 0d 0a 20 20 20    ACEDelete..   
10e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10e30 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
10e40 20 20 41 43 45 41 64 64 0d 0a 20 20 20 20 20 20    ACEAdd..      
10e50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10e60 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
10e70 43 45 53 65 74 43 6f 6d 6d 65 6e 74 73 0d 0a 20  CESetComments.. 
10e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10e90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
10ea0 2f 20 20 20 41 43 45 45 6e 63 72 79 70 74 46 69  /   ACEEncryptFi
10eb0 6c 65 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20  les..           
10ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10ed0 20 20 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64       //   ACEAdd
10ee0 53 46 58 0d 0a 20 20 20 20 20 20 20 20 20 20 20  SFX..           
10ef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10f00 20 20 20 20 20 2f 2f 20 20 20 41 43 45 4c 6f 63       //   ACELoc
10f10 6b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  k..             
10f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10f30 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64 41 56     //   ACEAddAV
10f40 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
10f50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10f60 20 20 2f 2f 20 20 20 41 43 45 41 64 64 52 65 63    //   ACEAddRec
10f70 6f 76 65 72 79 52 65 63 6f 72 64 0d 0a 20 20 20  overyRecord..   
10f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10f90 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
10fa0 20 20 41 43 45 52 65 70 61 69 72 0d 0a 0d 0a 0d    ACERepair.....
10fb0 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65  .        #define
10fc0 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52   ACE_CALLBACK_ER
10fd0 52 4f 52 5f 41 4c 52 45 41 44 59 53 46 58 20 20  ROR_ALREADYSFX  
10fe0 20 20 20 20 20 20 20 20 20 30 78 32 32 61 0d 0a           0x22a..
10ff0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
11000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11010 20 20 2f 2f 20 63 61 20 6e 6f 74 20 6d 61 6b 65    // ca not make
11020 20 74 6f 20 53 46 58 3a 20 69 73 20 61 6c 72 65   to SFX: is alre
11030 61 64 79 20 53 46 58 0d 0a 20 20 20 20 20 20 20  ady SFX..       
11040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11050 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d           //-----
11060 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
11070 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
11080 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20  --------..      
11090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
110a0 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73 74 72            // str
110b0 75 63 74 75 72 65 20 74 79 70 65 3a 0d 0a 20 20  ucture type:..  
110c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
110d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
110e0 20 20 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f     ACE_CALLBACK_
110f0 54 59 50 45 5f 41 52 43 48 49 56 45 0d 0a 20 20  TYPE_ARCHIVE..  
11100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
11120 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20   operations:..  
11130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
11150 20 20 20 41 43 45 41 64 64 53 46 58 0d 0a 0d 0a     ACEAddSFX....
11160 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e  ..        #defin
11170 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45  e ACE_CALLBACK_E
11180 52 52 4f 52 5f 41 44 44 53 46 58 54 4f 56 4f 4c  RROR_ADDSFXTOVOL
11190 55 4d 45 20 20 20 20 20 20 20 30 78 32 32 62 0d  UME       0x22b.
111a0 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ...             
111b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
111c0 20 20 20 2f 2f 20 61 64 64 69 6e 67 20 53 46 58     // adding SFX
111d0 20 74 6f 20 76 6f 6c 75 6d 65 73 20 6e 6f 74 20   to volumes not 
111e0 70 6f 73 73 69 62 6c 65 0d 0a 20 20 20 20 20 20  possible..      
111f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11200 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d            //----
11210 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
11220 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
11230 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20  ---------..     
11240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11250 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73 74             // st
11260 72 75 63 74 75 72 65 20 74 79 70 65 3a 0d 0a 20  ructure type:.. 
11270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
11290 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b  /   ACE_CALLBACK
112a0 5f 54 59 50 45 5f 41 52 43 48 49 56 45 0d 0a 20  _TYPE_ARCHIVE.. 
112b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
112c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
112d0 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20  / operations:.. 
112e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
112f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
11300 2f 20 20 20 41 43 45 41 64 64 53 46 58 0d 0a 0d  /   ACEAddSFX...
11310 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69  ...        #defi
11320 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f  ne ACE_CALLBACK_
11330 45 52 52 4f 52 5f 41 52 43 48 49 56 45 42 52 4f  ERROR_ARCHIVEBRO
11340 4b 45 4e 20 20 20 20 20 20 20 20 30 78 32 32 63  KEN        0x22c
11350 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ....            
11360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11370 20 20 20 20 2f 2f 20 61 72 63 68 69 76 65 20 69      // archive i
11380 73 20 62 72 6f 6b 65 6e 20 28 64 61 6d 61 67 65  s broken (damage
11390 64 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  d)..            
113a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
113b0 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
113c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
113d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
113e0 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ---..           
113f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11400 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75 72       // structur
11410 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20 20  e type:..       
11420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11430 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
11440 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f  E_CALLBACK_TYPE_
11450 41 52 43 48 49 56 45 0d 0a 20 20 20 20 20 20 20  ARCHIVE..       
11460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11470 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 72           // oper
11480 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20  ations:..       
11490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
114a0 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
114b0 45 52 65 61 64 41 72 63 68 69 76 65 44 61 74 61  EReadArchiveData
114c0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
114d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
114e0 20 20 2f 2f 20 20 20 41 43 45 4c 69 73 74 0d 0a    //   ACEList..
114f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11510 2f 2f 20 20 20 41 43 45 44 65 6c 65 74 65 0d 0a  //   ACEDelete..
11520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11540 2f 2f 20 20 20 41 43 45 54 65 73 74 0d 0a 20 20  //   ACETest..  
11550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
11570 20 20 20 41 43 45 45 78 74 72 61 63 74 0d 0a 20     ACEExtract.. 
11580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
115a0 2f 20 20 20 41 43 45 41 64 64 0d 0a 20 20 20 20  /   ACEAdd..    
115b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
115c0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
115d0 20 41 43 45 52 65 70 61 69 72 0d 0a 20 20 20 20   ACERepair..    
115e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
115f0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
11600 20 41 43 45 53 65 74 43 6f 6d 6d 65 6e 74 73 0d   ACESetComments.
11610 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
11620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11630 20 2f 2f 20 20 20 41 43 45 45 6e 63 72 79 70 74   //   ACEEncrypt
11640 46 69 6c 65 73 0d 0a 20 20 20 20 20 20 20 20 20  Files..         
11650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11660 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 41         //   ACEA
11670 64 64 53 46 58 0d 0a 20 20 20 20 20 20 20 20 20  ddSFX..         
11680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11690 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 41         //   ACEA
116a0 64 64 41 56 0d 0a 20 20 20 20 20 20 20 20 20 20  ddAV..          
116b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
116c0 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 4c 6f        //   ACELo
116d0 63 6b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ck..            
116e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
116f0 20 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64 52      //   ACEAddR
11700 65 63 6f 76 65 72 79 52 65 63 6f 72 64 0d 0a 0d  ecoveryRecord...
11710 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65  .        #define
11720 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52   ACE_CALLBACK_ER
11730 52 4f 52 5f 41 52 43 48 49 56 45 53 41 56 45 20  ROR_ARCHIVESAVE 
11740 20 20 20 20 20 20 20 20 20 30 78 32 32 64 0d 0a           0x22d..
11750 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
11760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11770 20 20 2f 2f 20 6e 6f 74 20 65 6e 6f 75 67 68 20    // not enough 
11780 73 70 61 63 65 20 74 6f 20 73 61 76 65 20 61 72  space to save ar
11790 63 68 69 76 65 3b 0d 0a 20 20 20 20 20 20 20 20  chive;..        
117a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
117b0 20 20 20 20 20 20 20 20 2f 2f 20 62 75 74 20 6e          // but n
117c0 6f 72 6d 61 6c 6c 79 0d 0a 20 20 20 20 20 20 20  ormally..       
117d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
117e0 20 20 20 20 20 20 20 20 20 2f 2f 20 41 43 45 5f           // ACE_
117f0 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 41  CALLBACK_ERROR_A
11800 52 43 48 49 56 45 53 50 41 43 45 0d 0a 20 20 20  RCHIVESPACE..   
11810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11820 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
11830 73 68 6f 75 6c 64 20 61 6c 6c 6f 77 20 74 6f 20  should allow to 
11840 63 68 61 6e 67 65 20 64 65 73 74 69 6e 61 74 69  change destinati
11850 6f 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  on..            
11860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11870 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
11880 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
11890 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
118a0 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ---..           
118b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
118c0 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75 72       // structur
118d0 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20 20  e type:..       
118e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
118f0 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
11900 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f  E_CALLBACK_TYPE_
11910 41 52 43 48 49 56 45 0d 0a 20 20 20 20 20 20 20  ARCHIVE..       
11920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11930 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 72           // oper
11940 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20  ations:..       
11950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11960 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
11970 45 41 64 64 0d 0a 20 20 20 20 20 20 20 20 20 20  EAdd..          
11980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11990 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 53 65        //   ACESe
119a0 74 43 6f 6d 6d 65 6e 74 73 0d 0a 20 20 20 20 20  tComments..     
119b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
119c0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
119d0 41 43 45 45 6e 63 72 79 70 74 46 69 6c 65 73 0d  ACEEncryptFiles.
119e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
119f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11a00 20 2f 2f 20 20 20 41 43 45 41 64 64 53 46 58 0d   //   ACEAddSFX.
11a10 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
11a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11a30 20 2f 2f 20 20 20 41 43 45 4c 6f 63 6b 0d 0a 20   //   ACELock.. 
11a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
11a60 2f 20 20 20 41 43 45 41 64 64 41 56 0d 0a 20 20  /   ACEAddAV..  
11a70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
11a90 20 20 20 41 43 45 41 64 64 52 65 63 6f 76 65 72     ACEAddRecover
11aa0 79 52 65 63 6f 72 64 0d 0a 20 20 20 20 20 20 20  yRecord..       
11ab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11ac0 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
11ad0 45 52 65 70 61 69 72 0d 0a 0d 0a 0d 0a 20 20 20  ERepair......   
11ae0 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45       #define ACE
11af0 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f  _CALLBACK_ERROR_
11b00 4e 4f 46 49 4c 45 53 20 20 20 20 20 20 20 20 20  NOFILES         
11b10 20 20 20 20 20 30 78 32 32 65 0d 0a 0d 0a 20 20       0x22e....  
11b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11b30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
11b40 20 6e 6f 20 66 69 6c 65 73 20 73 70 65 63 69 66   no files specif
11b50 69 65 64 2f 63 6f 75 6c 64 20 6e 6f 74 20 66 69  ied/could not fi
11b60 6e 64 20 66 69 6c 65 73 0d 0a 20 20 20 20 20 20  nd files..      
11b70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11b80 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d            //----
11b90 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
11ba0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
11bb0 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20  ---------..     
11bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11bd0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73 74             // st
11be0 72 75 63 74 75 72 65 20 74 79 70 65 3a 0d 0a 20  ructure type:.. 
11bf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
11c10 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b  /   ACE_CALLBACK
11c20 5f 54 59 50 45 5f 41 52 43 48 49 56 45 0d 0a 20  _TYPE_ARCHIVE.. 
11c30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
11c50 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20  / operations:.. 
11c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
11c80 2f 20 20 20 41 43 45 4c 69 73 74 0d 0a 20 20 20  /   ACEList..   
11c90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
11cb0 20 20 41 43 45 44 65 6c 65 74 65 0d 0a 20 20 20    ACEDelete..   
11cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
11ce0 20 20 41 43 45 54 65 73 74 0d 0a 20 20 20 20 20    ACETest..     
11cf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11d00 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
11d10 41 43 45 45 78 74 72 61 63 74 0d 0a 20 20 20 20  ACEExtract..    
11d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11d30 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
11d40 20 41 43 45 41 64 64 0d 0a 20 20 20 20 20 20 20   ACEAdd..       
11d50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11d60 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
11d70 45 53 65 74 43 6f 6d 6d 65 6e 74 73 0d 0a 20 20  ESetComments..  
11d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11d90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
11da0 20 20 20 41 43 45 45 6e 63 72 79 70 74 46 69 6c     ACEEncryptFil
11db0 65 73 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20  es......        
11dc0 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c  #define ACE_CALL
11dd0 42 41 43 4b 5f 45 52 52 4f 52 5f 49 53 4e 4f 54  BACK_ERROR_ISNOT
11de0 41 4e 41 52 43 48 49 56 45 20 20 20 20 20 20 20  ANARCHIVE       
11df0 30 78 32 32 66 0d 0a 0d 0a 20 20 20 20 20 20 20  0x22f....       
11e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11e10 20 20 20 20 20 20 20 20 20 2f 2f 20 73 70 65 63           // spec
11e20 69 66 69 65 64 20 61 72 63 68 69 76 65 20 66 69  ified archive fi
11e30 6c 65 20 69 73 20 6e 6f 74 20 61 6e 0d 0a 20 20  le is not an..  
11e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11e50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
11e60 20 41 43 45 20 61 72 63 68 69 76 65 0d 0a 20 20   ACE archive..  
11e70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
11e90 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
11ea0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
11eb0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20  -------------.. 
11ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11ed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
11ee0 2f 20 73 74 72 75 63 74 75 72 65 20 74 79 70 65  / structure type
11ef0 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  :..             
11f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11f10 20 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c     //   ACE_CALL
11f20 42 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49 56  BACK_TYPE_ARCHIV
11f30 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  E..             
11f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11f50 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 73     // operations
11f60 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  :..             
11f70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11f80 20 20 20 2f 2f 20 20 20 41 43 45 52 65 61 64 41     //   ACEReadA
11f90 72 63 68 69 76 65 44 61 74 61 0d 0a 20 20 20 20  rchiveData..    
11fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11fb0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
11fc0 20 41 43 45 4c 69 73 74 0d 0a 20 20 20 20 20 20   ACEList..      
11fd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11fe0 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
11ff0 43 45 44 65 6c 65 74 65 0d 0a 20 20 20 20 20 20  CEDelete..      
12000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12010 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
12020 43 45 54 65 73 74 0d 0a 20 20 20 20 20 20 20 20  CETest..        
12030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12040 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
12050 45 78 74 72 61 63 74 0d 0a 20 20 20 20 20 20 20  Extract..       
12060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12070 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
12080 45 41 64 64 0d 0a 20 20 20 20 20 20 20 20 20 20  EAdd..          
12090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
120a0 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 52 65        //   ACERe
120b0 70 61 69 72 0d 0a 20 20 20 20 20 20 20 20 20 20  pair..          
120c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
120d0 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 53 65        //   ACESe
120e0 74 43 6f 6d 6d 65 6e 74 73 0d 0a 20 20 20 20 20  tComments..     
120f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12100 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
12110 41 43 45 45 6e 63 72 79 70 74 46 69 6c 65 73 0d  ACEEncryptFiles.
12120 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
12130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12140 20 2f 2f 20 20 20 41 43 45 41 64 64 53 46 58 0d   //   ACEAddSFX.
12150 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
12160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12170 20 2f 2f 20 20 20 41 43 45 41 64 64 41 56 0d 0a   //   ACEAddAV..
12180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
121a0 2f 2f 20 20 20 41 43 45 4c 6f 63 6b 0d 0a 20 20  //   ACELock..  
121b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
121c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
121d0 20 20 20 41 43 45 41 64 64 52 65 63 6f 76 65 72     ACEAddRecover
121e0 79 52 65 63 6f 72 64 0d 0a 0d 0a 0d 0a 20 20 20  yRecord......   
121f0 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45       #define ACE
12200 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f  _CALLBACK_ERROR_
12210 54 45 4d 50 44 49 52 43 52 45 41 54 45 20 20 20  TEMPDIRCREATE   
12220 20 20 20 20 20 30 78 32 33 30 0d 0a 0d 0a 20 20       0x230....  
12230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
12250 20 63 6f 75 6c 64 20 6e 6f 74 20 63 72 65 61 74   could not creat
12260 65 20 66 69 6c 65 20 69 6e 20 74 65 6d 70 20 64  e file in temp d
12270 69 72 65 63 74 6f 72 79 0d 0a 20 20 20 20 20 20  irectory..      
12280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12290 20 20 20 20 20 20 20 20 20 20 2f 2f 20 28 77 72            // (wr
122a0 69 74 65 20 70 72 6f 74 65 63 74 65 64 20 6f 72  ite protected or
122b0 20 64 69 72 65 63 74 6f 72 79 20 64 6f 65 73 0d   directory does.
122c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
122d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
122e0 20 2f 2f 20 20 6e 6f 74 20 65 78 69 73 74 29 0d   //  not exist).
122f0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
12300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12310 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   //-------------
12320 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12330 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12340 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
12350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12360 20 20 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74    // structure t
12370 79 70 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  ype:..          
12380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12390 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43        //   ACE_C
123a0 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52 43  ALLBACK_TYPE_ARC
123b0 48 49 56 45 0d 0a 20 20 20 20 20 20 20 20 20 20  HIVE..          
123c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
123d0 20 20 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69        // operati
123e0 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  ons:..          
123f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12400 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 41 64        //   ACEAd
12410 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  d..             
12420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12430 20 20 20 2f 2f 20 20 20 41 43 45 53 65 74 43 6f     //   ACESetCo
12440 6d 6d 65 6e 74 73 0d 0a 20 20 20 20 20 20 20 20  mments..        
12450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12460 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
12470 45 6e 63 72 79 70 74 46 69 6c 65 73 0d 0a 20 20  EncryptFiles..  
12480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
124a0 20 20 20 41 43 45 41 64 64 53 46 58 0d 0a 20 20     ACEAddSFX..  
124b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
124c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
124d0 20 20 20 41 43 45 4c 6f 63 6b 0d 0a 20 20 20 20     ACELock..    
124e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
124f0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
12500 20 41 43 45 41 64 64 41 56 0d 0a 20 20 20 20 20   ACEAddAV..     
12510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12520 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
12530 41 43 45 41 64 64 52 65 63 6f 76 65 72 79 52 65  ACEAddRecoveryRe
12540 63 6f 72 64 0d 0a 20 20 20 20 20 20 20 20 20 20  cord..          
12550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12560 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 52 65        //   ACERe
12570 70 61 69 72 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20  pair......      
12580 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41    #define ACE_CA
12590 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 48 49 47  LLBACK_ERROR_HIG
125a0 48 45 52 56 45 52 53 49 4f 4e 20 20 20 20 20 20  HERVERSION      
125b0 20 20 30 78 32 33 31 0d 0a 0d 0a 20 20 20 20 20    0x231....     
125c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
125d0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74 68             // th
125e0 69 73 20 44 6c 6c 20 76 65 72 73 69 6f 6e 20 69  is Dll version i
125f0 73 20 6e 6f 74 20 61 62 6c 65 20 74 6f 20 68 61  s not able to ha
12600 6e 64 6c 65 0d 0a 20 20 20 20 20 20 20 20 20 20  ndle..          
12610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12620 20 20 20 20 20 20 2f 2f 20 74 68 65 20 61 72 63        // the arc
12630 68 69 76 65 0d 0a 20 20 20 20 20 20 20 20 20 20  hive..          
12640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12650 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d        //--------
12660 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12670 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12680 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20  -----..         
12690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
126a0 20 20 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74         // struct
126b0 75 72 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20  ure type:..     
126c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
126d0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
126e0 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50  ACE_CALLBACK_TYP
126f0 45 5f 41 52 43 48 49 56 45 0d 0a 20 20 20 20 20  E_ARCHIVE..     
12700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12710 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70             // op
12720 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20  erations:..     
12730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12740 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
12750 41 43 45 41 64 64 0d 0a 20 20 20 20 20 20 20 20  ACEAdd..        
12760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12770 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
12780 53 65 74 43 6f 6d 6d 65 6e 74 73 0d 0a 20 20 20  SetComments..   
12790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
127a0 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
127b0 20 20 41 43 45 45 6e 63 72 79 70 74 46 69 6c 65    ACEEncryptFile
127c0 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  s..             
127d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
127e0 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64 53 46     //   ACEAddSF
127f0 58 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  X..             
12800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12810 20 20 20 2f 2f 20 20 20 41 43 45 4c 6f 63 6b 0d     //   ACELock.
12820 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
12830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12840 20 2f 2f 20 20 20 41 43 45 41 64 64 41 56 0d 0a   //   ACEAddAV..
12850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12870 2f 2f 20 20 20 41 43 45 41 64 64 52 65 63 6f 76  //   ACEAddRecov
12880 65 72 79 52 65 63 6f 72 64 0d 0a 0d 0a 0d 0a 20  eryRecord...... 
12890 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41         #define A
128a0 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f  CE_CALLBACK_ERRO
128b0 52 5f 43 52 45 41 54 49 4f 4e 4e 41 4d 45 49 4e  R_CREATIONNAMEIN
128c0 55 53 45 20 20 20 20 30 78 32 34 30 0d 0a 0d 0a  USE    0x240....
128d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
128e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
128f0 2f 2f 20 6e 61 6d 65 20 75 73 65 64 20 62 79 20  // name used by 
12900 64 69 72 65 63 74 6f 72 79 0d 0a 20 20 20 20 20  directory..     
12910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12920 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d             //---
12930 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12940 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12950 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20  ----------..    
12960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12970 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73              // s
12980 74 72 75 63 74 75 72 65 20 74 79 70 65 3a 0d 0a  tructure type:..
12990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
129a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
129b0 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42 41 43  //   ACE_CALLBAC
129c0 4b 5f 54 59 50 45 5f 41 52 43 48 49 56 45 44 46  K_TYPE_ARCHIVEDF
129d0 49 4c 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ILE..           
129e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
129f0 20 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f       // operatio
12a00 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ns:..           
12a10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12a20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45 78 74       //   ACEExt
12a30 72 61 63 74 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20  ract......      
12a40 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41    #define ACE_CA
12a50 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 45 4e 43  LLBACK_ERROR_ENC
12a60 52 59 50 54 49 4f 4e 43 52 43 20 20 20 20 20 20  RYPTIONCRC      
12a70 20 20 30 78 32 34 32 0d 0a 0d 0a 20 20 20 20 20    0x242....     
12a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12a90 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 65 6e             // en
12aa0 63 72 79 70 74 69 6f 6e 20 66 61 69 6c 65 64 20  cryption failed 
12ab0 62 65 63 61 75 73 65 20 6f 66 20 43 52 43 2d 45  because of CRC-E
12ac0 72 72 6f 72 20 61 74 0d 0a 20 20 20 20 20 20 20  rror at..       
12ad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12ae0 20 20 20 20 20 20 20 20 20 2f 2f 20 64 65 63 6f           // deco
12af0 6d 70 72 65 73 73 69 6f 6e 0d 0a 20 20 20 20 20  mpression..     
12b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12b10 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d             //---
12b20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12b30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12b40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20  ----------..    
12b50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12b60 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73              // s
12b70 74 72 75 63 74 75 72 65 20 74 79 70 65 3a 0d 0a  tructure type:..
12b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12b90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12ba0 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42 41 43  //   ACE_CALLBAC
12bb0 4b 5f 54 59 50 45 5f 41 52 43 48 49 56 45 44 46  K_TYPE_ARCHIVEDF
12bc0 49 4c 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ILE..           
12bd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12be0 20 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f       // operatio
12bf0 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ns:..           
12c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12c10 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45 6e 63       //   ACEEnc
12c20 72 79 70 74 46 69 6c 65 73 0d 0a 0d 0a 0d 0a 20  ryptFiles...... 
12c30 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41         #define A
12c40 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f  CE_CALLBACK_ERRO
12c50 52 5f 52 45 41 44 20 20 20 20 20 20 20 20 20 20  R_READ          
12c60 20 20 20 20 20 20 20 30 78 32 34 33 0d 0a 0d 0a         0x243....
12c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12c90 2f 2f 20 65 72 72 6f 72 20 72 65 61 64 69 6e 67  // error reading
12ca0 20 66 69 6c 65 20 74 6f 20 62 65 20 61 64 64 65   file to be adde
12cb0 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  d..             
12cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12cd0 20 20 20 2f 2f 20 28 73 6f 75 72 63 65 20 64 69     // (source di
12ce0 73 6b 20 72 65 6d 6f 76 65 64 3f 29 0d 0a 20 20  sk removed?)..  
12cf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
12d10 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12d20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12d30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20  -------------.. 
12d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12d50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
12d60 2f 20 73 74 72 75 63 74 75 72 65 20 74 79 70 65  / structure type
12d70 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  :..             
12d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12d90 20 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c     //   ACE_CALL
12da0 42 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49 56  BACK_TYPE_ARCHIV
12db0 45 44 46 49 4c 45 0d 0a 20 20 20 20 20 20 20 20  EDFILE..        
12dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12dd0 20 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 72 61          // opera
12de0 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20  tions:..        
12df0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12e00 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
12e10 41 64 64 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20  Add......       
12e20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c   #define ACE_CAL
12e30 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 57 52 49 54  LBACK_ERROR_WRIT
12e40 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  E               
12e50 20 30 78 32 34 34 0d 0a 0d 0a 20 20 20 20 20 20   0x244....      
12e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12e70 20 20 20 20 20 20 20 20 20 20 2f 2f 20 65 72 72            // err
12e80 6f 72 20 61 74 20 65 78 74 72 61 63 74 69 6f 6e  or at extraction
12e90 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
12ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12eb0 20 20 2f 2f 20 28 64 65 73 74 69 6e 61 74 69 6f    // (destinatio
12ec0 6e 20 64 69 73 6b 20 72 65 6d 6f 76 65 64 3f 29  n disk removed?)
12ed0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
12ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12ef0 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    //------------
12f00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12f10 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
12f20 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  -..             
12f30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12f40 20 20 20 2f 2f 20 73 74 72 75 63 74 75 72 65 20     // structure 
12f50 74 79 70 65 3a 0d 0a 20 20 20 20 20 20 20 20 20  type:..         
12f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12f70 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 5f         //   ACE_
12f80 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52  CALLBACK_TYPE_AR
12f90 43 48 49 56 45 44 46 49 4c 45 0d 0a 20 20 20 20  CHIVEDFILE..    
12fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12fb0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f              // o
12fc0 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20  perations:..    
12fd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12fe0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
12ff0 20 41 43 45 45 78 74 72 61 63 74 0d 0a 0d 0a 0d   ACEExtract.....
13000 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65  .        #define
13010 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52   ACE_CALLBACK_ER
13020 52 4f 52 5f 4f 50 45 4e 52 45 41 44 20 20 20 20  ROR_OPENREAD    
13030 20 20 20 20 20 20 20 20 20 30 78 32 34 35 0d 0a           0x245..
13040 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
13050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13060 20 20 2f 2f 20 65 72 72 6f 72 20 6f 70 65 6e 69    // error openi
13070 6e 67 20 66 69 6c 65 20 66 6f 72 20 72 65 61 64  ng file for read
13080 69 6e 67 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ing..           
13090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
130a0 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
130b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
130c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
130d0 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20  ----..          
130e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
130f0 20 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75        // structu
13100 72 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20  re type:..      
13110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13120 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
13130 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45  CE_CALLBACK_TYPE
13140 5f 41 52 43 48 49 56 45 44 46 49 4c 45 0d 0a 20  _ARCHIVEDFILE.. 
13150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
13170 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20  / operations:.. 
13180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
131a0 2f 20 20 20 41 43 45 41 64 64 0d 0a 0d 0a 0d 0a  /   ACEAdd......
131b0 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20          #define 
131c0 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52  ACE_CALLBACK_ERR
131d0 4f 52 5f 4f 50 45 4e 57 52 49 54 45 20 20 20 20  OR_OPENWRITE    
131e0 20 20 20 20 20 20 20 20 30 78 32 34 36 0d 0a 0d          0x246...
131f0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
13200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13210 20 2f 2f 20 65 72 72 6f 72 20 6f 70 65 6e 69 6e   // error openin
13220 67 20 66 69 6c 65 20 66 6f 72 20 77 72 69 74 69  g file for writi
13230 6e 67 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ng..            
13240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13250 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
13260 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13270 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13280 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ---..           
13290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
132a0 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75 72       // structur
132b0 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20 20  e type:..       
132c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
132d0 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
132e0 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f  E_CALLBACK_TYPE_
132f0 41 52 43 48 49 56 45 44 46 49 4c 45 0d 0a 20 20  ARCHIVEDFILE..  
13300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
13320 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20   operations:..  
13330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
13350 20 20 20 41 43 45 45 78 74 72 61 63 74 0d 0a 0d     ACEExtract...
13360 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69  ...        #defi
13370 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f  ne ACE_CALLBACK_
13380 45 52 52 4f 52 5f 46 49 4c 45 4e 41 4d 45 54 4f  ERROR_FILENAMETO
13390 4f 4c 4f 4e 47 20 20 20 20 20 20 30 78 32 34 37  OLONG      0x247
133a0 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ....            
133b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
133c0 20 20 20 20 2f 2f 20 72 65 73 75 6c 74 69 6e 67      // resulting
133d0 20 66 69 6c 65 20 6e 61 6d 65 20 74 6f 6f 20 6c   file name too l
133e0 6f 6e 67 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ong..           
133f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13400 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
13410 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13420 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13430 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20  ----..          
13440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13450 20 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75        // structu
13460 72 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20  re type:..      
13470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13480 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
13490 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45  CE_CALLBACK_TYPE
134a0 5f 41 52 43 48 49 56 45 44 46 49 4c 45 0d 0a 20  _ARCHIVEDFILE.. 
134b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
134c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
134d0 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20  / operations:.. 
134e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
134f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
13500 2f 20 20 20 41 43 45 41 64 64 0d 0a 0d 0a 0d 0a  /   ACEAdd......
13510 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20          #define 
13520 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52  ACE_CALLBACK_ERR
13530 4f 52 5f 52 45 50 41 43 4b 43 52 43 20 20 20 20  OR_REPACKCRC    
13540 20 20 20 20 20 20 20 20 30 78 32 34 38 0d 0a 0d          0x248...
13550 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
13560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13570 20 2f 2f 20 43 52 43 2d 63 68 65 63 6b 20 65 72   // CRC-check er
13580 72 6f 72 20 61 74 20 72 65 63 6f 6d 70 72 65 73  ror at recompres
13590 73 69 6f 6e 0d 0a 20 20 20 20 20 20 20 20 20 20  sion..          
135a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
135b0 20 20 20 20 20 20 2f 2f 20 28 61 72 63 68 69 76        // (archiv
135c0 65 20 62 72 6f 6b 65 6e 20 6f 72 20 77 72 6f 6e  e broken or wron
135d0 67 20 70 61 73 73 77 6f 72 64 29 0d 0a 20 20 20  g password)..   
135e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
135f0 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2d               //-
13600 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13610 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13620 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20  ------------..  
13630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
13650 20 73 74 72 75 63 74 75 72 65 20 74 79 70 65 3a   structure type:
13660 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
13670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13680 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42    //   ACE_CALLB
13690 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49 56 45  ACK_TYPE_ARCHIVE
136a0 44 46 49 4c 45 0d 0a 20 20 20 20 20 20 20 20 20  DFILE..         
136b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
136c0 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 72 61 74         // operat
136d0 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 20  ions:..         
136e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
136f0 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 44         //   ACED
13700 65 6c 65 74 65 0d 0a 20 20 20 20 20 20 20 20 20  elete..         
13710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13720 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 41         //   ACEA
13730 64 64 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20  dd......        
13740 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c  #define ACE_CALL
13750 42 41 43 4b 5f 45 52 52 4f 52 5f 45 58 43 4c 55  BACK_ERROR_EXCLU
13760 44 45 50 41 54 48 20 20 20 20 20 20 20 20 20 20  DEPATH          
13770 30 78 32 34 39 0d 0a 0d 0a 20 20 20 20 20 20 20  0x249....       
13780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13790 20 20 20 20 20 20 20 20 20 2f 2f 20 63 6f 75 6c           // coul
137a0 64 20 6e 6f 74 20 65 78 63 6c 75 64 65 20 70 61  d not exclude pa
137b0 74 68 20 6f 66 20 66 69 6c 65 20 6e 61 6d 65 73  th of file names
137c0 3b 20 74 77 6f 0d 0a 20 20 20 20 20 20 20 20 20  ; two..         
137d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
137e0 20 20 20 20 20 20 20 2f 2f 20 6f 72 20 6d 6f 72         // or mor
137f0 65 20 66 69 6c 65 73 20 77 6f 75 6c 64 20 68 61  e files would ha
13800 76 65 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65  ve the same name
13810 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
13820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13830 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    //------------
13840 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13850 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13860 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  -..             
13870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13880 20 20 20 2f 2f 20 73 74 72 75 63 74 75 72 65 20     // structure 
13890 74 79 70 65 3a 0d 0a 20 20 20 20 20 20 20 20 20  type:..         
138a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
138b0 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 5f         //   ACE_
138c0 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52  CALLBACK_TYPE_AR
138d0 43 48 49 56 45 44 46 49 4c 45 0d 0a 20 20 20 20  CHIVEDFILE..    
138e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
138f0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f              // o
13900 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20  perations:..    
13910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13920 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
13930 20 41 43 45 41 64 64 0d 0a 0d 0a 0d 0a 20 20 20   ACEAdd......   
13940 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45       #define ACE
13950 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f  _CALLBACK_ERROR_
13960 4d 45 54 48 4f 44 20 20 20 20 20 20 20 20 20 20  METHOD          
13970 20 20 20 20 20 30 78 32 34 61 0d 0a 0d 0a 20 20       0x24a....  
13980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
139a0 20 63 6f 6d 70 72 65 73 73 69 6f 6e 20 6d 65 74   compression met
139b0 68 6f 64 20 6e 6f 74 20 6b 6e 6f 77 6e 20 74 6f  hod not known to
139c0 20 74 68 69 73 0d 0a 20 20 20 20 20 20 20 20 20   this..         
139d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
139e0 20 20 20 20 20 20 20 2f 2f 20 44 6c 6c 20 76 65         // Dll ve
139f0 72 73 69 6f 6e 0d 0a 20 20 20 20 20 20 20 20 20  rsion..         
13a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13a10 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d         //-------
13a20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13a30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13a40 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20  ------..        
13a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13a60 20 20 20 20 20 20 20 20 2f 2f 20 73 74 72 75 63          // struc
13a70 74 75 72 65 20 74 79 70 65 3a 0d 0a 20 20 20 20  ture type:..    
13a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13a90 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
13aa0 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59   ACE_CALLBACK_TY
13ab0 50 45 5f 41 52 43 48 49 56 45 44 46 49 4c 45 0d  PE_ARCHIVEDFILE.
13ac0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
13ad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13ae0 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d   // operations:.
13af0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
13b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13b10 20 2f 2f 20 20 20 41 43 45 44 65 6c 65 74 65 0d   //   ACEDelete.
13b20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
13b30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13b40 20 2f 2f 20 20 20 41 43 45 54 65 73 74 0d 0a 20   //   ACETest.. 
13b50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
13b70 2f 20 20 20 41 43 45 45 78 74 72 61 63 74 0d 0a  /   ACEExtract..
13b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13b90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13ba0 2f 2f 20 20 20 41 43 45 41 64 64 0d 0a 20 20 20  //   ACEAdd..   
13bb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
13bd0 20 20 41 43 45 45 6e 63 72 79 70 74 46 69 6c 65    ACEEncryptFile
13be0 73 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23  s......        #
13bf0 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42  define ACE_CALLB
13c00 41 43 4b 5f 45 52 52 4f 52 5f 45 58 54 52 41 43  ACK_ERROR_EXTRAC
13c10 54 53 50 41 43 45 20 20 20 20 20 20 20 20 20 30  TSPACE         0
13c20 78 32 34 62 0d 0a 0d 0a 20 20 20 20 20 20 20 20  x24b....        
13c30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13c40 20 20 20 20 20 20 20 20 2f 2f 20 6e 6f 74 20 65          // not e
13c50 6e 6f 75 67 68 20 73 70 61 63 65 20 74 6f 20 65  nough space to e
13c60 78 74 72 61 63 74 20 66 69 6c 65 0d 0a 20 20 20  xtract file..   
13c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13c80 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2d               //-
13c90 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13ca0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13cb0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20  ------------..  
13cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
13ce0 20 73 74 72 75 63 74 75 72 65 20 74 79 70 65 3a   structure type:
13cf0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
13d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13d10 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42    //   ACE_CALLB
13d20 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49 56 45  ACK_TYPE_ARCHIVE
13d30 44 46 49 4c 45 0d 0a 20 20 20 20 20 20 20 20 20  DFILE..         
13d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13d50 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 72 61 74         // operat
13d60 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 20  ions:..         
13d70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13d80 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45         //   ACEE
13d90 78 74 72 61 63 74 0d 0a 0d 0a 0d 0a 20 20 20 20  xtract......    
13da0 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f      #define ACE_
13db0 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 5f 43  CALLBACK_ERROR_C
13dc0 52 45 41 54 49 4f 4e 20 20 20 20 20 20 20 20 20  REATION         
13dd0 20 20 20 20 30 78 32 34 63 0d 0a 0d 0a 20 20 20      0x24c....   
13de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13df0 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
13e00 63 72 65 61 74 69 6f 6e 20 66 61 69 6c 65 64 20  creation failed 
13e10 28 77 72 69 74 65 2d 70 72 6f 74 65 63 74 69 6f  (write-protectio
13e20 6e 3f 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20  n?)..           
13e30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13e40 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
13e50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13e60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13e70 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20  ----..          
13e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13e90 20 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75        // structu
13ea0 72 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20  re type:..      
13eb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13ec0 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
13ed0 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45  CE_CALLBACK_TYPE
13ee0 5f 41 52 43 48 49 56 45 44 46 49 4c 45 0d 0a 20  _ARCHIVEDFILE.. 
13ef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
13f10 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20  / operations:.. 
13f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13f30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
13f40 2f 20 20 20 41 43 45 45 78 74 72 61 63 74 0d 0a  /   ACEExtract..
13f50 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66  ....        #def
13f60 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b  ine ACE_CALLBACK
13f70 5f 45 52 52 4f 52 5f 4f 56 45 52 57 52 49 54 45  _ERROR_OVERWRITE
13f80 44 45 4c 45 54 45 20 20 20 20 20 20 30 78 32 34  DELETE      0x24
13f90 64 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  d....           
13fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13fb0 20 20 20 20 20 2f 2f 20 63 6f 75 6c 64 20 6e 6f       // could no
13fc0 74 20 6f 76 65 72 77 72 69 74 65 20 62 65 63 61  t overwrite beca
13fd0 75 73 65 20 64 65 6c 65 74 69 6f 6e 20 6f 66 0d  use deletion of.
13fe0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
13ff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14000 20 2f 2f 20 66 69 6c 65 20 66 61 69 6c 65 64 0d   // file failed.
14010 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
14020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14030 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   //-------------
14040 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14050 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14060 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
14070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14080 20 20 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74    // structure t
14090 79 70 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  ype:..          
140a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
140b0 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43        //   ACE_C
140c0 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52 43  ALLBACK_TYPE_ARC
140d0 48 49 56 45 44 46 49 4c 45 0d 0a 20 20 20 20 20  HIVEDFILE..     
140e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
140f0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70             // op
14100 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20  erations:..     
14110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14120 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
14130 41 43 45 45 78 74 72 61 63 74 0d 0a 0d 0a 0d 0a  ACEExtract......
14140 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20          #define 
14150 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52  ACE_CALLBACK_ERR
14160 4f 52 5f 4d 4f 56 45 44 45 4c 45 54 45 20 20 20  OR_MOVEDELETE   
14170 20 20 20 20 20 20 20 20 30 78 32 36 30 0d 0a 0d          0x260...
14180 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
14190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
141a0 20 2f 2f 20 64 65 6c 65 74 69 6f 6e 20 6f 66 20   // deletion of 
141b0 66 69 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72  file or director
141c0 79 20 66 61 69 6c 65 64 0d 0a 20 20 20 20 20 20  y failed..      
141d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
141e0 20 20 20 20 20 20 20 20 20 20 2f 2f 20 28 6d 6f            // (mo
141f0 76 65 20 6f 70 65 72 61 74 69 6f 6e 29 0d 0a 20  ve operation).. 
14200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
14220 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
14230 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14240 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
14250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14270 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74 79 70  // structure typ
14280 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  e:..            
14290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
142a0 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c      //   ACE_CAL
142b0 4c 42 41 43 4b 5f 54 59 50 45 5f 52 45 41 4c 46  LBACK_TYPE_REALF
142c0 49 4c 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ILE..           
142d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
142e0 20 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f       // operatio
142f0 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ns:..           
14300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14310 20 20 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64       //   ACEAdd
14320 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66  ....        #def
14330 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b  ine ACE_CALLBACK
14340 5f 45 52 52 4f 52 5f 54 45 4d 50 44 49 52 53 50  _ERROR_TEMPDIRSP
14350 41 43 45 20 20 20 20 20 20 20 20 20 30 78 32 37  ACE         0x27
14360 30 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  0....           
14370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14380 20 20 20 20 20 2f 2f 20 6e 6f 74 20 65 6e 6f 75       // not enou
14390 67 68 20 73 70 61 63 65 20 61 74 20 63 75 72 72  gh space at curr
143a0 65 6e 74 20 74 65 6d 70 20 64 69 72 65 63 74 6f  ent temp directo
143b0 72 79 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ry..            
143c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
143d0 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
143e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
143f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14400 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ---..           
14410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14420 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75 72       // structur
14430 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20 20  e type:..       
14440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14450 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
14460 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f  E_CALLBACK_TYPE_
14470 53 50 41 43 45 0d 0a 20 20 20 20 20 20 20 20 20  SPACE..         
14480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14490 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 72 61 74         // operat
144a0 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 20  ions:..         
144b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
144c0 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 41         //   ACEA
144d0 64 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  dd..            
144e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
144f0 20 20 20 20 2f 2f 20 20 20 41 43 45 53 65 74 43      //   ACESetC
14500 6f 6d 6d 65 6e 74 73 0d 0a 20 20 20 20 20 20 20  omments..       
14510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14520 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
14530 45 45 6e 63 72 79 70 74 46 69 6c 65 73 0d 0a 20  EEncryptFiles.. 
14540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
14560 2f 20 20 20 41 43 45 41 64 64 53 46 58 0d 0a 20  /   ACEAddSFX.. 
14570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
14590 2f 20 20 20 41 43 45 41 64 64 41 56 0d 0a 0d 0a  /   ACEAddAV....
145a0 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e  ..        #defin
145b0 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45  e ACE_CALLBACK_E
145c0 52 52 4f 52 5f 41 52 43 48 49 56 45 53 50 41 43  RROR_ARCHIVESPAC
145d0 45 20 20 20 20 20 20 20 20 20 30 78 32 37 31 0d  E         0x271.
145e0 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ...             
145f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14600 20 20 20 2f 2f 20 6e 6f 74 20 65 6e 6f 75 67 68     // not enough
14610 20 73 70 61 63 65 20 74 6f 20 73 61 76 65 20 61   space to save a
14620 72 63 68 69 76 65 0d 0a 20 20 20 20 20 20 20 20  rchive..        
14630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14640 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d          //------
14650 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14660 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14670 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20  -------..       
14680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14690 20 20 20 20 20 20 20 20 20 2f 2f 20 73 74 72 75           // stru
146a0 63 74 75 72 65 20 74 79 70 65 3a 0d 0a 20 20 20  cture type:..   
146b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
146c0 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
146d0 20 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54    ACE_CALLBACK_T
146e0 59 50 45 5f 53 50 41 43 45 0d 0a 20 20 20 20 20  YPE_SPACE..     
146f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14700 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70             // op
14710 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20  erations:..     
14720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14730 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
14740 41 43 45 44 65 6c 65 74 65 0d 0a 20 20 20 20 20  ACEDelete..     
14750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14760 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
14770 41 43 45 41 64 64 0d 0a 20 20 20 20 20 20 20 20  ACEAdd..        
14780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14790 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
147a0 53 65 74 43 6f 6d 6d 65 6e 74 73 0d 0a 20 20 20  SetComments..   
147b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
147c0 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
147d0 20 20 41 43 45 45 6e 63 72 79 70 74 46 69 6c 65    ACEEncryptFile
147e0 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  s..             
147f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14800 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64 53 46     //   ACEAddSF
14810 58 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  X..             
14820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14830 20 20 20 2f 2f 20 20 20 41 43 45 4c 6f 63 6b 0d     //   ACELock.
14840 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
14850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14860 20 2f 2f 20 20 20 41 43 45 41 64 64 41 56 0d 0a   //   ACEAddAV..
14870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14890 2f 2f 20 20 20 41 43 45 41 64 64 52 65 63 6f 76  //   ACEAddRecov
148a0 65 72 79 52 65 63 6f 72 64 0d 0a 20 20 20 20 20  eryRecord..     
148b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
148c0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
148d0 41 43 45 52 65 70 61 69 72 0d 0a 0d 0a 0d 0a 20  ACERepair...... 
148e0 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41         #define A
148f0 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f  CE_CALLBACK_ERRO
14900 52 5f 52 45 41 44 49 4e 47 53 46 58 46 49 4c 45  R_READINGSFXFILE
14910 20 20 20 20 20 20 20 30 78 32 38 30 0d 0a 0d 0a         0x280....
14920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14940 2f 2f 20 65 72 72 6f 72 20 72 65 61 64 69 6e 67  // error reading
14950 20 53 46 58 20 66 69 6c 65 3a 0d 0a 20 20 20 20   SFX file:..    
14960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14970 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69              // i
14980 73 20 6e 6f 20 53 46 58 20 66 69 6c 65 2c 0d 0a  s no SFX file,..
14990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
149a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
149b0 2f 2f 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74  // file does not
149c0 20 65 78 69 73 74 20 6f 72 20 63 6f 75 6c 64 20   exist or could 
149d0 6e 6f 74 20 62 65 20 6f 70 65 6e 65 64 0d 0a 20  not be opened.. 
149e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
149f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
14a00 2f 20 66 6f 72 20 72 65 61 64 69 6e 67 0d 0a 20  / for reading.. 
14a10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
14a30 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
14a40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14a50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
14a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14a70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14a80 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74 79 70  // structure typ
14a90 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  e:..            
14aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14ab0 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c      //   ACE_CAL
14ac0 4c 42 41 43 4b 5f 54 59 50 45 5f 53 46 58 46 49  LBACK_TYPE_SFXFI
14ad0 4c 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  LE..            
14ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14af0 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e      // operation
14b00 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  s:..            
14b10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14b20 20 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64 0d      //   ACEAdd.
14b30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
14b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14b50 20 2f 2f 20 20 20 41 43 45 41 64 64 53 46 58 0d   //   ACEAddSFX.
14b60 0a 0d 0a 0d 0a 20 20 2f 2f cd cd cd cd cd cd cd  .....  //.......
14b70 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
14b80 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
14b90 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
14ba0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
14bb0 cd cd cd cd 0d 0a 20 20 2f 2f 3d 3d 3d 3d 3d 3d  ......  //======
14bc0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 2d 2d 2d 20 20 50  ==========---  P
14bd0 61 72 74 20 32 2e 37 3a 20 72 65 71 75 65 73 74  art 2.7: request
14be0 20 63 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69   callback functi
14bf0 6f 6e 20 20 2d 2d 2d 3d 3d 3d 3d 3d 3d 3d 3d 3d  on  ---=========
14c00 3d 3d 3d 3d 3d 0d 0a 20 20 2f 2f cd cd cd cd cd  =====..  //.....
14c10 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
14c20 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
14c30 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
14c40 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
14c50 cd cd cd cd cd cd 0d 0a 20 20 2f 2f 20 44 65 63  ........  // Dec
14c60 6c 61 72 61 74 69 6f 6e 20 6f 66 20 41 43 45 52  laration of ACER
14c70 65 71 75 65 73 74 43 61 6c 6c 62 61 63 6b 50 72  equestCallbackPr
14c80 6f 63 28 29 20 70 61 72 61 6d 65 74 65 72 20 61  oc() parameter a
14c90 6e 64 20 65 78 70 6c 61 6e 61 74 69 6f 6e 20 6f  nd explanation o
14ca0 66 0d 0a 20 20 2f 2f 20 63 61 6c 6c 62 61 63 6b  f..  // callback
14cb0 20 72 65 71 75 65 73 74 20 63 6f 64 65 73 2e 0d   request codes..
14cc0 0a 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .  //-----------
14cd0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14ce0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14cf0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14d00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14d10 0d 0a 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d  ....      //----
14d20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14d30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14d40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14d50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14d60 2d 2d 2d 0d 0a 20 20 20 20 20 20 2f 2f 20 55 6e  ---..      // Un
14d70 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 20 75 73  ion parameter us
14d80 65 64 20 61 74 20 41 43 45 52 65 71 75 65 73 74  ed at ACERequest
14d90 43 61 6c 6c 62 61 63 6b 50 72 6f 63 28 29 2e 0d  CallbackProc()..
14da0 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d  .      //-------
14db0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14dc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14dd0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14de0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14df0 0d 0a 0d 0a 20 20 20 20 20 20 20 20 74 79 70 65  ....        type
14e00 64 65 66 20 75 6e 69 6f 6e 20 73 41 43 45 52 65  def union sACERe
14e10 71 75 65 73 74 43 61 6c 6c 62 61 63 6b 50 72 6f  questCallbackPro
14e20 63 53 74 72 75 63 0d 0a 20 20 20 20 20 20 20 20  cStruc..        
14e30 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 55 4c 4f  {..          ULO
14e40 4e 47 20 20 53 74 72 75 63 74 75 72 65 54 79 70  NG  StructureTyp
14e50 65 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  e;              
14e60 20 20 20 2f 2f 20 69 6e 64 69 63 61 74 65 73 20     // indicates 
14e70 77 68 69 63 68 20 6f 66 20 74 68 65 20 66 6f 6c  which of the fol
14e80 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  -..             
14e90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14eb0 20 20 20 2f 2f 20 6c 6f 77 69 6e 67 20 73 74 72     // lowing str
14ec0 75 63 74 75 72 65 73 20 69 73 20 75 73 65 64 0d  uctures is used.
14ed0 0a 20 20 20 20 20 20 20 20 20 20 74 41 43 45 43  .          tACEC
14ee0 61 6c 6c 62 61 63 6b 47 6c 6f 62 61 6c 53 74 72  allbackGlobalStr
14ef0 75 63 20 20 20 20 20 20 20 47 6c 6f 62 61 6c 3b  uc       Global;
14f00 0d 0a 20 20 20 20 20 20 20 20 20 20 74 41 43 45  ..          tACE
14f10 43 61 6c 6c 62 61 63 6b 41 72 63 68 69 76 65 53  CallbackArchiveS
14f20 74 72 75 63 20 20 20 20 20 20 41 72 63 68 69 76  truc      Archiv
14f30 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 74 41  e;..          tA
14f40 43 45 43 61 6c 6c 62 61 63 6b 41 72 63 68 69 76  CECallbackArchiv
14f50 65 64 46 69 6c 65 53 74 72 75 63 20 41 72 63 68  edFileStruc Arch
14f60 69 76 65 64 46 69 6c 65 3b 0d 0a 20 20 20 20 20  ivedFile;..     
14f70 20 20 20 20 20 74 41 43 45 43 61 6c 6c 62 61 63       tACECallbac
14f80 6b 52 65 61 6c 46 69 6c 65 53 74 72 75 63 20 20  kRealFileStruc  
14f90 20 20 20 52 65 61 6c 46 69 6c 65 3b 0d 0a 20 20     RealFile;..  
14fa0 20 20 20 20 20 20 7d 20 74 41 43 45 52 65 71 75        } tACERequ
14fb0 65 73 74 43 61 6c 6c 62 61 63 6b 50 72 6f 63 53  estCallbackProcS
14fc0 74 72 75 63 3b 0d 0a 0d 0a 0d 0a 20 20 20 20 20  truc;......     
14fd0 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   //-------------
14fe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14ff0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15000 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15010 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20  ----------..    
15020 20 20 2f 2f 20 51 75 65 73 74 69 6f 6e 20 63 6f    // Question co
15030 6e 73 74 61 6e 74 73 20 61 72 65 20 70 61 73 73  nstants are pass
15040 65 64 20 74 6f 20 74 68 65 20 52 65 71 75 65 73  ed to the Reques
15050 74 43 61 6c 6c 62 61 63 6b 50 72 6f 63 20 63 61  tCallbackProc ca
15060 6c 6c 62 61 63 6b 0d 0a 20 20 20 20 20 20 2f 2f  llback..      //
15070 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 72 65 71   function to req
15080 75 65 73 74 20 66 75 72 74 68 65 72 20 64 61 74  uest further dat
15090 61 2e 0d 0a 20 20 20 20 20 20 2f 2f 20 52 65 71  a...      // Req
150a0 75 65 73 74 43 61 6c 6c 62 61 63 6b 50 72 6f 63  uestCallbackProc
150b0 20 6d 61 79 20 72 65 74 75 72 6e 20 41 43 45 5f   may return ACE_
150c0 43 41 4c 4c 42 41 43 4b 5f 52 45 54 55 52 4e 5f  CALLBACK_RETURN_
150d0 4f 4b 2c 0d 0a 20 20 20 20 20 20 2f 2f 20 41 43  OK,..      // AC
150e0 45 5f 43 41 4c 4c 42 41 43 4b 5f 52 45 54 55 52  E_CALLBACK_RETUR
150f0 4e 5f 4e 4f 20 6f 72 20 41 43 45 5f 43 41 4c 4c  N_NO or ACE_CALL
15100 42 41 43 4b 5f 52 45 54 55 52 4e 5f 43 41 4e 43  BACK_RETURN_CANC
15110 45 4c 2e 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d  EL...      //---
15120 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15130 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15140 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15150 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15160 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20 20 20 20  ----....        
15170 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c  #define ACE_CALL
15180 42 41 43 4b 5f 52 45 51 55 45 53 54 5f 52 45 47  BACK_REQUEST_REG
15190 49 53 54 45 52 20 20 20 20 20 20 20 20 20 20 20  ISTER           
151a0 30 78 33 30 30 0d 0a 0d 0a 20 20 20 20 20 20 20  0x300....       
151b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
151c0 20 20 20 20 20 20 20 20 20 2f 2f 20 47 6c 6f 62           // Glob
151d0 61 6c 2e 55 73 65 72 41 56 20 68 61 73 20 74 6f  al.UserAV has to
151e0 20 62 65 20 73 65 74 0d 0a 20 20 20 20 20 20 20   be set..       
151f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15200 20 20 20 20 20 20 20 20 20 2f 2f 20 74 6f 20 63           // to c
15210 6f 6e 74 69 6e 75 65 20 72 65 67 69 73 74 72 61  ontinue registra
15220 74 69 6f 6e 20 70 72 6f 63 65 73 73 3b 0d 0a 20  tion process;.. 
15230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
15250 2f 20 6e 6f 74 20 75 73 65 64 20 69 6e 20 41 43  / not used in AC
15260 4c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  L..             
15270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15280 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d     //-----------
15290 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
152a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
152b0 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  --..            
152c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
152d0 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75 72 65      // structure
152e0 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20 20 20   type:..        
152f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15300 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
15310 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 47  _CALLBACK_TYPE_G
15320 4c 4f 42 41 4c 0d 0a 20 20 20 20 20 20 20 20 20  LOBAL..         
15330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15340 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 72 61 74         // operat
15350 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 20  ions:..         
15360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15370 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 52         //   ACER
15380 65 67 69 73 74 65 72 0d 0a 0d 0a 0d 0a 20 20 20  egister......   
15390 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45       #define ACE
153a0 5f 43 41 4c 4c 42 41 43 4b 5f 52 45 51 55 45 53  _CALLBACK_REQUES
153b0 54 5f 4d 41 52 4b 41 53 53 4f 4c 49 44 20 20 20  T_MARKASSOLID   
153c0 20 20 20 20 20 30 78 33 32 30 0d 0a 0d 0a 20 20       0x320....  
153d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
153e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
153f0 20 41 72 63 68 69 76 65 48 65 61 64 65 72 20 64   ArchiveHeader d
15400 61 6d 61 67 65 64 2c 0d 0a 20 20 20 20 20 20 20  amaged,..       
15410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15420 20 20 20 20 20 20 20 20 20 2f 2f 20 73 65 74 20           // set 
15430 73 6f 6c 69 64 20 66 6c 61 67 20 66 6f 72 20 74  solid flag for t
15440 68 65 20 6e 65 77 20 61 72 63 68 69 76 65 3f 0d  he new archive?.
15450 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
15460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15470 20 2f 2f 20 28 69 6e 20 63 61 73 65 20 6f 66 20   // (in case of 
15480 64 6f 75 62 74 20 72 65 74 75 72 6e 20 79 65 73  doubt return yes
15490 21 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  !)..            
154a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
154b0 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
154c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
154d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
154e0 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ---..           
154f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15500 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75 72       // structur
15510 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20 20  e type:..       
15520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15530 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
15540 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f  E_CALLBACK_TYPE_
15550 41 52 43 48 49 56 45 0d 0a 20 20 20 20 20 20 20  ARCHIVE..       
15560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15570 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 72           // oper
15580 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20  ations:..       
15590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
155a0 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
155b0 45 52 65 70 61 69 72 0d 0a 0d 0a 0d 0a 20 20 20  ERepair......   
155c0 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45       #define ACE
155d0 5f 43 41 4c 4c 42 41 43 4b 5f 52 45 51 55 45 53  _CALLBACK_REQUES
155e0 54 5f 43 48 41 4e 47 45 56 4f 4c 55 4d 45 20 20  T_CHANGEVOLUME  
155f0 20 20 20 20 20 30 78 33 32 31 0d 0a 20 20 20 20       0x321..    
15600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15610 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 41              // A
15620 73 6b 73 20 66 6f 72 20 70 65 72 6d 69 73 73 69  sks for permissi
15630 6f 6e 20 74 6f 20 70 72 6f 63 65 73 73 20 6e 65  on to process ne
15640 78 74 20 76 6f 6c 75 6d 65 2e 0d 0a 20 20 20 20  xt volume...    
15650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15660 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 49              // I
15670 66 20 6f 70 65 72 61 74 69 6f 6e 20 69 73 20 41  f operation is A
15680 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 4f 50 45 52  CE_CALLBACK_OPER
15690 41 54 49 4f 4e 5f 41 44 44 0d 0a 20 20 20 20 20  ATION_ADD..     
156a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
156b0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74 68             // th
156c0 65 6e 20 61 20 6e 65 77 20 76 6f 6c 75 6d 65 20  en a new volume 
156d0 77 69 6c 6c 20 62 65 20 63 72 65 61 74 65 64 2e  will be created.
156e0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
156f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15700 20 20 2f 2f 20 54 68 65 20 61 70 70 6c 69 63 61    // The applica
15710 74 69 6f 6e 20 6d 61 79 20 63 68 61 6e 67 65 20  tion may change 
15720 74 68 65 20 6e 61 6d 65 0d 0a 20 20 20 20 20 20  the name..      
15730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15740 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 66 20            // of 
15750 74 68 65 20 61 72 63 68 69 76 65 20 62 79 20 6d  the archive by m
15760 6f 64 69 66 79 69 6e 67 0d 0a 20 20 20 20 20 20  odifying..      
15770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15780 20 20 20 20 20 20 20 20 20 20 2f 2f 20 41 72 63            // Arc
15790 68 69 76 65 44 61 74 61 2d 3e 41 72 63 68 69 76  hiveData->Archiv
157a0 65 4e 61 6d 65 0d 0a 20 20 20 20 20 20 20 20 20  eName..         
157b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
157c0 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d         //-------
157d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
157e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
157f0 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20  ------..        
15800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15810 20 20 20 20 20 20 20 20 2f 2f 20 73 74 72 75 63          // struc
15820 74 75 72 65 20 74 79 70 65 3a 0d 0a 20 20 20 20  ture type:..    
15830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15840 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
15850 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59   ACE_CALLBACK_TY
15860 50 45 5f 41 52 43 48 49 56 45 0d 0a 20 20 20 20  PE_ARCHIVE..    
15870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15880 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f              // o
15890 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20  perations:..    
158a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
158b0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
158c0 20 41 43 45 44 65 6c 65 74 65 0d 0a 20 20 20 20   ACEDelete..    
158d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
158e0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
158f0 20 41 43 45 41 64 64 0d 0a 20 20 20 20 20 20 20   ACEAdd..       
15900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15910 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
15920 45 53 65 74 43 6f 6d 6d 65 6e 74 73 0d 0a 20 20  ESetComments..  
15930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
15950 20 20 20 41 43 45 45 6e 63 72 79 70 74 46 69 6c     ACEEncryptFil
15960 65 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  es..            
15970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15980 20 20 20 20 2f 2f 20 20 20 41 43 45 4c 69 73 74      //   ACEList
15990 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
159a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
159b0 20 20 2f 2f 20 20 20 41 43 45 54 65 73 74 0d 0a    //   ACETest..
159c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
159d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
159e0 2f 2f 20 20 20 41 43 45 45 78 74 72 61 63 74 0d  //   ACEExtract.
159f0 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65  .....        #de
15a00 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43  fine ACE_CALLBAC
15a10 4b 5f 52 45 51 55 45 53 54 5f 41 52 43 48 49 56  K_REQUEST_ARCHIV
15a20 45 45 58 49 53 54 53 20 20 20 20 20 20 30 78 33  EEXISTS      0x3
15a30 32 32 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  22..            
15a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15a50 20 20 20 20 2f 2f 20 41 73 6b 73 20 77 68 65 74      // Asks whet
15a60 68 65 72 20 74 6f 20 6f 76 65 72 77 72 69 74 65  her to overwrite
15a70 20 61 20 66 69 6c 65 20 77 69 74 68 0d 0a 20 20   a file with..  
15a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15a90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
15aa0 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 61   the same name a
15ab0 73 20 74 68 65 20 61 72 63 68 69 76 65 2e 0d 0a  s the archive...
15ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15ad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15ae0 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
15af0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15b00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
15b10 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
15b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15b30 20 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74 79   // structure ty
15b40 70 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  pe:..           
15b50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15b60 20 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43 41       //   ACE_CA
15b70 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52 43 48  LLBACK_TYPE_ARCH
15b80 49 56 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20  IVE..           
15b90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15ba0 20 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f       // operatio
15bb0 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ns:..           
15bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15bd0 20 20 20 20 20 2f 2f 20 20 20 41 43 45 44 65 6c       //   ACEDel
15be0 65 74 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ete..           
15bf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15c00 20 20 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64       //   ACEAdd
15c10 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
15c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15c30 20 20 2f 2f 20 20 20 41 43 45 53 65 74 43 6f 6d    //   ACESetCom
15c40 6d 65 6e 74 73 0d 0a 20 20 20 20 20 20 20 20 20  ments..         
15c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15c60 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45         //   ACEE
15c70 6e 63 72 79 70 74 46 69 6c 65 73 0d 0a 0d 0a 0d  ncryptFiles.....
15c80 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65  .        #define
15c90 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 52 45   ACE_CALLBACK_RE
15ca0 51 55 45 53 54 5f 4f 56 45 52 57 52 49 54 45 20  QUEST_OVERWRITE 
15cb0 20 20 20 20 20 20 20 20 20 30 78 33 34 30 0d 0a           0x340..
15cc0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
15cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15ce0 20 20 2f 2f 20 4f 76 65 72 77 72 69 74 65 20 65    // Overwrite e
15cf0 78 69 73 74 69 6e 67 20 66 69 6c 65 3f 0d 0a 20  xisting file?.. 
15d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15d10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
15d20 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
15d30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15d40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
15d50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15d70 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74 79 70  // structure typ
15d80 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  e:..            
15d90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15da0 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c      //   ACE_CAL
15db0 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49  LBACK_TYPE_ARCHI
15dc0 56 45 44 46 49 4c 45 0d 0a 20 20 20 20 20 20 20  VEDFILE..       
15dd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15de0 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 72           // oper
15df0 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20  ations:..       
15e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15e10 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
15e20 45 41 64 64 0d 0a 20 20 20 20 20 20 20 20 20 20  EAdd..          
15e30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15e40 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45 78        //   ACEEx
15e50 74 72 61 63 74 0d 0a 0d 0a 0d 0a 20 20 20 20 20  tract......     
15e60 20 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43     #define ACE_C
15e70 41 4c 4c 42 41 43 4b 5f 52 45 51 55 45 53 54 5f  ALLBACK_REQUEST_
15e80 44 45 4c 41 52 43 48 49 56 45 44 53 59 53 46 49  DELARCHIVEDSYSFI
15e90 4c 45 20 30 78 33 34 31 0d 0a 0d 0a 20 20 20 20  LE 0x341....    
15ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15eb0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 44              // D
15ec0 65 6c 65 74 65 20 72 64 6f 6e 6c 79 2f 68 69 64  elete rdonly/hid
15ed0 64 65 6e 2f 73 79 73 74 65 6d 20 66 69 6c 65 0d  den/system file.
15ee0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
15ef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15f00 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   //-------------
15f10 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15f20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
15f30 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
15f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15f50 20 20 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74    // structure t
15f60 79 70 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  ype:..          
15f70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15f80 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43        //   ACE_C
15f90 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52 43  ALLBACK_TYPE_ARC
15fa0 48 49 56 45 44 46 49 4c 45 0d 0a 20 20 20 20 20  HIVEDFILE..     
15fb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15fc0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70             // op
15fd0 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20  erations:..     
15fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15ff0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
16000 41 43 45 44 65 6c 65 74 65 0d 0a 0d 0a 0d 0a 20  ACEDelete...... 
16010 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41         #define A
16020 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 52 45 51 55  CE_CALLBACK_REQU
16030 45 53 54 5f 41 44 44 42 52 4f 4b 45 4e 46 49 4c  EST_ADDBROKENFIL
16040 45 20 20 20 20 20 20 30 78 33 34 32 0d 0a 0d 0a  E      0x342....
16050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16070 2f 2f 20 72 65 70 61 69 72 20 66 75 6e 63 74 69  // repair functi
16080 6f 6e 20 66 6f 75 6e 64 20 66 69 6c 65 20 77 69  on found file wi
16090 74 68 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  th..            
160a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
160b0 20 20 20 20 2f 2f 20 62 72 6f 6b 65 6e 20 68 65      // broken he
160c0 61 64 65 72 2c 20 61 64 64 20 66 69 6c 65 3f 0d  ader, add file?.
160d0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
160e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
160f0 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   //-------------
16100 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16110 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16120 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
16130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16140 20 20 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74    // structure t
16150 79 70 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  ype:..          
16160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16170 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43        //   ACE_C
16180 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52 43  ALLBACK_TYPE_ARC
16190 48 49 56 45 44 46 49 4c 45 0d 0a 20 20 20 20 20  HIVEDFILE..     
161a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
161b0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70             // op
161c0 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20  erations:..     
161d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
161e0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
161f0 41 43 45 52 65 70 61 69 72 0d 0a 0d 0a 0d 0a 20  ACERepair...... 
16200 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41         #define A
16210 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 52 45 51 55  CE_CALLBACK_REQU
16220 45 53 54 5f 50 41 53 53 57 4f 52 44 20 20 20 20  EST_PASSWORD    
16230 20 20 20 20 20 20 20 30 78 33 34 33 0d 0a 0d 0a         0x343....
16240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16260 2f 2f 20 70 61 73 73 77 6f 72 64 20 72 65 71 75  // password requ
16270 69 72 65 64 3b 20 61 74 74 65 6e 74 69 6f 6e 3a  ired; attention:
16280 20 6d 61 79 20 62 65 0d 0a 20 20 20 20 20 20 20   may be..       
16290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
162a0 20 20 20 20 20 20 20 20 20 2f 2f 20 64 65 63 72           // decr
162b0 79 70 74 69 6f 6e 20 5f 61 6e 64 5f 20 65 6e 63  yption _and_ enc
162c0 72 79 70 74 69 6f 6e 3b 20 62 75 74 20 20 70 61  ryption; but  pa
162d0 73 73 77 6f 72 64 73 0d 0a 20 20 20 20 20 20 20  sswords..       
162e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
162f0 20 20 20 20 20 20 20 20 20 2f 2f 20 63 61 6e 20           // can 
16300 62 65 20 64 69 66 66 65 72 65 6e 74 20 2d 2d 3e  be different -->
16310 20 62 65 74 74 65 72 20 63 68 61 6e 67 69 6e 67   better changing
16320 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
16330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16340 20 20 2f 2f 20 70 61 73 73 77 6f 72 64 73 20 61    // passwords a
16350 74 20 53 74 61 74 65 43 61 6c 6c 62 61 63 6b 50  t StateCallbackP
16360 72 6f 63 0d 0a 20 20 20 20 20 20 20 20 20 20 20  roc..           
16370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16380 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
16390 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
163a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
163b0 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20  ----..          
163c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
163d0 20 20 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75        // structu
163e0 72 65 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20  re type:..      
163f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16400 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
16410 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45  CE_CALLBACK_TYPE
16420 5f 41 52 43 48 49 56 45 44 46 49 4c 45 0d 0a 20  _ARCHIVEDFILE.. 
16430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
16450 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d 0a 20  / operations:.. 
16460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
16480 2f 20 20 20 41 43 45 44 65 6c 65 74 65 0d 0a 20  /   ACEDelete.. 
16490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
164a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
164b0 2f 20 20 20 41 43 45 54 65 73 74 0d 0a 20 20 20  /   ACETest..   
164c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
164d0 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
164e0 20 20 41 43 45 45 78 74 72 61 63 74 0d 0a 20 20    ACEExtract..  
164f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
16510 20 20 20 41 43 45 41 64 64 0d 0a 20 20 20 20 20     ACEAdd..     
16520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16530 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
16540 41 43 45 45 6e 63 72 79 70 74 46 69 6c 65 73 0d  ACEEncryptFiles.
16550 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65  .....        #de
16560 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43  fine ACE_CALLBAC
16570 4b 5f 52 45 51 55 45 53 54 5f 4f 56 45 52 57 52  K_REQUEST_OVERWR
16580 49 54 45 53 59 53 46 49 4c 45 20 20 20 30 78 33  ITESYSFILE   0x3
16590 34 34 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20  44....          
165a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
165b0 20 20 20 20 20 20 2f 2f 20 4f 76 65 72 77 72 69        // Overwri
165c0 74 65 20 72 64 6f 6e 6c 79 2f 68 69 64 64 65 6e  te rdonly/hidden
165d0 2f 73 79 73 74 65 6d 20 66 69 6c 65 0d 0a 20 20  /system file..  
165e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
165f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
16600 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16610 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16620 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20  -------------.. 
16630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
16650 2f 20 73 74 72 75 63 74 75 72 65 20 74 79 70 65  / structure type
16660 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  :..             
16670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16680 20 20 20 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c     //   ACE_CALL
16690 42 41 43 4b 5f 54 59 50 45 5f 41 52 43 48 49 56  BACK_TYPE_ARCHIV
166a0 45 44 46 49 4c 45 0d 0a 20 20 20 20 20 20 20 20  EDFILE..        
166b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
166c0 20 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 72 61          // opera
166d0 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20  tions:..        
166e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
166f0 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
16700 41 64 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20  Add..           
16710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16720 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45 78 74       //   ACEExt
16730 72 61 63 74 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20  ract......      
16740 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43 41    #define ACE_CA
16750 4c 4c 42 41 43 4b 5f 52 45 51 55 45 53 54 5f 4d  LLBACK_REQUEST_M
16760 4f 56 45 44 45 4c 52 45 41 4c 53 59 53 46 49 4c  OVEDELREALSYSFIL
16770 45 20 30 78 33 36 30 0d 0a 0d 0a 20 20 20 20 20  E 0x360....     
16780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16790 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 44 65             // De
167a0 6c 65 74 65 20 72 64 6f 6e 6c 79 2f 68 69 64 64  lete rdonly/hidd
167b0 65 6e 2f 73 79 73 74 65 6d 20 66 69 6c 65 0d 0a  en/system file..
167c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
167d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
167e0 2f 2f 20 28 6d 6f 76 65 20 74 6f 20 61 72 63 68  // (move to arch
167f0 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 29 0d 0a  ive operation)..
16800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16820 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
16830 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16840 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
16850 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
16860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16870 20 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74 79   // structure ty
16880 70 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  pe:..           
16890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
168a0 20 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43 41       //   ACE_CA
168b0 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 52 45 41 4c  LLBACK_TYPE_REAL
168c0 46 49 4c 45 0d 0a 20 20 20 20 20 20 20 20 20 20  FILE..          
168d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
168e0 20 20 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69        // operati
168f0 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  ons:..          
16900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16910 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 41 64        //   ACEAd
16920 64 0d 0a 0d 0a 0d 0a 20 20 2f 2f cd cd cd cd cd  d......  //.....
16930 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
16940 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
16950 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
16960 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
16970 cd cd cd cd cd cd 0d 0a 20 20 2f 2f 3d 3d 3d 3d  ........  //====
16980 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 2d 2d 2d  =============---
16990 20 20 50 61 72 74 20 32 2e 38 3a 20 73 74 61 74    Part 2.8: stat
169a0 65 20 63 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74  e callback funct
169b0 69 6f 6e 20 20 2d 2d 2d 3d 3d 3d 3d 3d 3d 3d 3d  ion  ---========
169c0 3d 3d 3d 3d 3d 3d 3d 0d 0a 20 20 2f 2f cd cd cd  =======..  //...
169d0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
169e0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
169f0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
16a00 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
16a10 cd cd cd cd cd cd cd cd 0d 0a 20 20 2f 2f 20 44  ..........  // D
16a20 65 63 6c 61 72 61 74 69 6f 6e 20 6f 66 20 41 43  eclaration of AC
16a30 45 53 74 61 74 65 43 61 6c 6c 62 61 63 6b 50 72  EStateCallbackPr
16a40 6f 63 28 29 20 70 61 72 61 6d 65 74 65 72 20 61  oc() parameter a
16a50 6e 64 20 65 78 70 6c 61 6e 61 74 69 6f 6e 20 6f  nd explanation o
16a60 66 0d 0a 20 20 2f 2f 20 63 61 6c 6c 62 61 63 6b  f..  // callback
16a70 20 73 74 61 74 65 20 63 6f 64 65 73 2e 0d 0a 20   state codes... 
16a80 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   //-------------
16a90 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16aa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16ab0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16ac0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
16ad0 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d  ..      //------
16ae0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16af0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16b00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16b10 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16b20 2d 0d 0a 20 20 20 20 20 20 2f 2f 20 55 6e 69 6f  -..      // Unio
16b30 6e 20 70 61 72 61 6d 65 74 65 72 20 75 73 65 64  n parameter used
16b40 20 61 74 20 41 43 45 53 74 61 74 65 43 61 6c 6c   at ACEStateCall
16b50 62 61 63 6b 50 72 6f 63 28 29 2e 0d 0a 20 20 20  backProc()...   
16b60 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d     //-----------
16b70 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16b80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16b90 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16ba0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a  ------------....
16bb0 20 20 20 20 20 20 20 20 74 79 70 65 64 65 66 20          typedef 
16bc0 75 6e 69 6f 6e 20 73 41 43 45 53 74 61 74 65 43  union sACEStateC
16bd0 61 6c 6c 62 61 63 6b 50 72 6f 63 53 74 72 75 63  allbackProcStruc
16be0 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20  ..        {..   
16bf0 20 20 20 20 20 20 20 55 4c 4f 4e 47 20 20 53 74         ULONG  St
16c00 72 75 63 74 75 72 65 54 79 70 65 3b 20 20 20 20  ructureType;    
16c10 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
16c20 69 6e 64 69 63 61 74 65 73 20 77 68 69 63 68 20  indicates which 
16c30 6f 66 20 74 68 65 20 66 6f 6c 2d 0d 0a 20 20 20  of the fol-..   
16c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16c60 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
16c70 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 72 65  lowing structure
16c80 73 20 69 73 20 75 73 65 64 0d 0a 20 20 20 20 20  s is used..     
16c90 20 20 20 20 20 74 41 43 45 43 61 6c 6c 62 61 63       tACECallbac
16ca0 6b 41 72 63 68 69 76 65 53 74 72 75 63 20 20 20  kArchiveStruc   
16cb0 20 20 20 41 72 63 68 69 76 65 3b 0d 0a 20 20 20     Archive;..   
16cc0 20 20 20 20 20 20 20 74 41 43 45 43 61 6c 6c 62         tACECallb
16cd0 61 63 6b 41 72 63 68 69 76 65 64 46 69 6c 65 53  ackArchivedFileS
16ce0 74 72 75 63 20 41 72 63 68 69 76 65 64 46 69 6c  truc ArchivedFil
16cf0 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 74 41  e;..          tA
16d00 43 45 43 61 6c 6c 62 61 63 6b 41 72 63 68 69 76  CECallbackArchiv
16d10 65 64 46 69 6c 65 53 74 72 75 63 20 52 65 61 6c  edFileStruc Real
16d20 46 69 6c 65 3b 0d 0a 20 20 20 20 20 20 20 20 20  File;..         
16d30 20 74 41 43 45 43 61 6c 6c 62 61 63 6b 50 72 6f   tACECallbackPro
16d40 67 72 65 73 73 53 74 72 75 63 20 20 20 20 20 50  gressStruc     P
16d50 72 6f 67 72 65 73 73 3b 0d 0a 20 20 20 20 20 20  rogress;..      
16d60 20 20 20 20 74 41 43 45 43 61 6c 6c 62 61 63 6b      tACECallback
16d70 43 52 43 43 68 65 63 6b 53 74 72 75 63 20 20 20  CRCCheckStruc   
16d80 20 20 43 52 43 43 68 65 63 6b 3b 0d 0a 20 20 20    CRCCheck;..   
16d90 20 20 20 20 20 7d 20 74 41 43 45 53 74 61 74 65       } tACEState
16da0 43 61 6c 6c 62 61 63 6b 50 72 6f 63 53 74 72 75  CallbackProcStru
16db0 63 3b 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 2f 2f  c;......      //
16dc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16dd0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16de0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16df0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16e00 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 2f  -------..      /
16e10 2f 20 43 61 6c 6c 73 20 74 6f 20 28 2a 53 74 61  / Calls to (*Sta
16e20 74 65 43 61 6c 6c 62 61 63 6b 50 72 6f 63 29 28  teCallbackProc)(
16e30 29 20 77 69 74 68 20 41 43 45 5f 43 41 4c 4c 42  ) with ACE_CALLB
16e40 41 43 4b 5f 53 54 41 54 45 20 76 61 6c 75 65 73  ACK_STATE values
16e50 20 69 6e 20 74 68 65 0d 0a 20 20 20 20 20 20 2f   in the..      /
16e60 2f 20 43 6f 64 65 20 66 69 65 6c 64 20 61 72 65  / Code field are
16e70 20 6d 61 64 65 20 74 6f 20 65 6e 61 62 6c 65 20   made to enable 
16e80 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20  the application 
16e90 74 6f 20 73 68 6f 77 20 74 68 65 20 70 72 6f 67  to show the prog
16ea0 72 65 73 73 20 6f 66 0d 0a 20 20 20 20 20 20 2f  ress of..      /
16eb0 2f 20 61 6e 20 6f 70 65 72 61 74 69 6f 6e 2e 0d  / an operation..
16ec0 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d  .      //-------
16ed0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16ee0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16ef0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16f00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16f10 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66  ....        #def
16f20 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b  ine ACE_CALLBACK
16f30 5f 53 54 41 54 45 5f 53 54 41 52 54 41 52 43 48  _STATE_STARTARCH
16f40 49 56 45 20 20 20 20 20 20 20 20 20 30 78 34 30  IVE         0x40
16f50 30 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  0....           
16f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16f70 20 20 20 20 20 2f 2f 20 70 72 6f 63 65 73 73 69       // processi
16f80 6f 6e 20 6f 66 20 61 72 63 68 69 76 65 20 69 73  on of archive is
16f90 20 61 62 6f 75 74 20 74 6f 20 62 65 67 69 6e 0d   about to begin.
16fa0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
16fb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16fc0 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   //-------------
16fd0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16fe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16ff0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
17000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17010 20 20 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74    // structure t
17020 79 70 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  ype:..          
17030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17040 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43        //   ACE_C
17050 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52 43  ALLBACK_TYPE_ARC
17060 48 49 56 45 0d 0a 20 20 20 20 20 20 20 20 20 20  HIVE..          
17070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17080 20 20 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69        // operati
17090 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  ons:..          
170a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
170b0 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 4c 69        //   ACELi
170c0 73 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  st..            
170d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
170e0 20 20 20 20 2f 2f 20 20 20 41 43 45 44 65 6c 65      //   ACEDele
170f0 74 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  te..            
17100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17110 20 20 20 20 2f 2f 20 20 20 41 43 45 54 65 73 74      //   ACETest
17120 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
17130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17140 20 20 2f 2f 20 20 20 41 43 45 45 78 74 72 61 63    //   ACEExtrac
17150 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  t..             
17160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17170 20 20 20 2f 2f 20 20 20 41 43 45 41 64 64 0d 0a     //   ACEAdd..
17180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
171a0 2f 2f 20 20 20 41 43 45 52 65 70 61 69 72 0d 0a  //   ACERepair..
171b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
171c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
171d0 2f 2f 20 20 20 41 43 45 53 65 74 43 6f 6d 6d 65  //   ACESetComme
171e0 6e 74 73 0d 0a 20 20 20 20 20 20 20 20 20 20 20  nts..           
171f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17200 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45 6e 63       //   ACEEnc
17210 72 79 70 74 46 69 6c 65 73 0d 0a 20 20 20 20 20  ryptFiles..     
17220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17230 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
17240 41 43 45 41 64 64 53 46 58 0d 0a 20 20 20 20 20  ACEAddSFX..     
17250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17260 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
17270 41 43 45 41 64 64 41 56 0d 0a 20 20 20 20 20 20  ACEAddAV..      
17280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17290 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
172a0 43 45 4c 6f 63 6b 0d 0a 20 20 20 20 20 20 20 20  CELock..        
172b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
172c0 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
172d0 41 64 64 52 65 63 6f 76 65 72 79 52 65 63 6f 72  AddRecoveryRecor
172e0 64 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23  d......        #
172f0 64 65 66 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42  define ACE_CALLB
17300 41 43 4b 5f 53 54 41 54 45 5f 53 54 41 52 54 46  ACK_STATE_STARTF
17310 49 4c 45 20 20 20 20 20 20 20 20 20 20 20 20 30  ILE            0
17320 78 34 31 30 0d 0a 0d 0a 20 20 20 20 20 20 20 20  x410....        
17330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17340 20 20 20 20 20 20 20 20 2f 2f 20 70 72 6f 63 65          // proce
17350 73 73 69 6f 6e 20 6f 66 20 66 69 6c 65 20 69 73  ssion of file is
17360 20 61 62 6f 75 74 20 74 6f 20 62 65 67 69 6e 0d   about to begin.
17370 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
17380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17390 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   //-------------
173a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
173b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
173c0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
173d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
173e0 20 20 2f 2f 20 73 74 72 75 63 74 75 72 65 20 74    // structure t
173f0 79 70 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  ype:..          
17400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17410 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 5f 43        //   ACE_C
17420 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 41 52 43  ALLBACK_TYPE_ARC
17430 48 49 56 45 44 46 49 4c 45 0d 0a 20 20 20 20 20  HIVEDFILE..     
17440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17450 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70             // op
17460 65 72 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20  erations:..     
17470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17480 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20             //   
17490 41 43 45 4c 69 73 74 0d 0a 20 20 20 20 20 20 20  ACEList..       
174a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
174b0 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
174c0 45 44 65 6c 65 74 65 0d 0a 20 20 20 20 20 20 20  EDelete..       
174d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
174e0 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
174f0 45 54 65 73 74 0d 0a 20 20 20 20 20 20 20 20 20  ETest..         
17500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17510 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45         //   ACEE
17520 78 74 72 61 63 74 0d 0a 20 20 20 20 20 20 20 20  xtract..        
17530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17540 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
17550 41 64 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20  Add..           
17560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17570 20 20 20 20 20 2f 2f 20 20 20 41 43 45 52 65 70       //   ACERep
17580 61 69 72 0d 0a 20 20 20 20 20 20 20 20 20 20 20  air..           
17590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
175a0 20 20 20 20 20 2f 2f 20 20 20 41 43 45 53 65 74       //   ACESet
175b0 43 6f 6d 6d 65 6e 74 73 0d 0a 20 20 20 20 20 20  Comments..      
175c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
175d0 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41            //   A
175e0 43 45 45 6e 63 72 79 70 74 46 69 6c 65 73 0d 0a  CEEncryptFiles..
175f0 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66  ....        #def
17600 69 6e 65 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b  ine ACE_CALLBACK
17610 5f 53 54 41 54 45 5f 45 4e 44 4e 4f 43 52 43 43  _STATE_ENDNOCRCC
17620 48 45 43 4b 20 20 20 20 20 20 20 20 30 78 34 31  HECK        0x41
17630 31 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  1....           
17640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17650 20 20 20 20 20 2f 2f 20 65 6e 64 20 6f 66 20 66       // end of f
17660 69 6c 65 20 70 72 6f 63 65 73 73 69 6f 6e 0d 0a  ile procession..
17670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17690 2f 2f 20 28 6e 6f 20 43 52 43 20 63 68 63 65 63  // (no CRC chcec
176a0 6b 20 66 6f 72 20 74 68 69 73 20 6f 70 65 72 61  k for this opera
176b0 74 69 6f 6e 29 0d 0a 20 20 20 20 20 20 20 20 20  tion)..         
176c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
176d0 20 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d         //-------
176e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
176f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
17700 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 20 20  ------..        
17710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17720 20 20 20 20 20 20 20 20 2f 2f 20 73 74 72 75 63          // struc
17730 74 75 72 65 20 74 79 70 65 3a 0d 0a 20 20 20 20  ture type:..    
17740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17750 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
17760 20 41 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 54 59   ACE_CALLBACK_TY
17770 50 45 5f 41 52 43 48 49 56 45 44 46 49 4c 45 0d  PE_ARCHIVEDFILE.
17780 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
17790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
177a0 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d   // operations:.
177b0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
177c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
177d0 20 2f 2f 20 20 20 41 43 45 4c 69 73 74 0d 0a 20   //   ACEList.. 
177e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
177f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
17800 2f 20 20 20 41 43 45 44 65 6c 65 74 65 0d 0a 20  /   ACEDelete.. 
17810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
17830 2f 20 20 20 41 43 45 41 64 64 0d 0a 20 20 20 20  /   ACEAdd..    
17840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17850 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
17860 20 41 43 45 52 65 70 61 69 72 0d 0a 20 20 20 20   ACERepair..    
17870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17880 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
17890 20 41 43 45 53 65 74 43 6f 6d 6d 65 6e 74 73 0d   ACESetComments.
178a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
178b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
178c0 20 2f 2f 20 20 20 41 43 45 45 6e 63 72 79 70 74   //   ACEEncrypt
178d0 46 69 6c 65 73 0d 0a 0d 0a 0d 0a 20 20 20 20 20  Files......     
178e0 20 20 20 23 64 65 66 69 6e 65 20 41 43 45 5f 43     #define ACE_C
178f0 41 4c 4c 42 41 43 4b 5f 53 54 41 54 45 5f 50 52  ALLBACK_STATE_PR
17900 4f 47 52 45 53 53 20 20 20 20 20 20 20 20 20 20  OGRESS          
17910 20 20 20 30 78 34 32 30 0d 0a 0d 0a 20 20 20 20     0x420....    
17920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17930 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69              // i
17940 6e 66 6f 72 6d 73 20 61 62 6f 75 74 20 74 68 65  nforms about the
17950 20 70 72 6f 67 72 65 73 73 20 6f 66 20 61 20 66   progress of a f
17960 69 6c 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ile..           
17970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17980 20 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f       // operatio
17990 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  n..             
179a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
179b0 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d     //-----------
179c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
179d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
179e0 2d 2d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  --..            
179f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a00 20 20 20 20 2f 2f 20 73 74 72 75 63 74 75 72 65      // structure
17a10 20 74 79 70 65 3a 0d 0a 20 20 20 20 20 20 20 20   type:..        
17a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a30 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
17a40 5f 43 41 4c 4c 42 41 43 4b 5f 54 59 50 45 5f 50  _CALLBACK_TYPE_P
17a50 52 4f 47 52 45 53 53 0d 0a 20 20 20 20 20 20 20  ROGRESS..       
17a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a70 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 70 65 72           // oper
17a80 61 74 69 6f 6e 73 3a 0d 0a 20 20 20 20 20 20 20  ations:..       
17a90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17aa0 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
17ab0 45 44 65 6c 65 74 65 0d 0a 20 20 20 20 20 20 20  EDelete..       
17ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ad0 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43           //   AC
17ae0 45 54 65 73 74 0d 0a 20 20 20 20 20 20 20 20 20  ETest..         
17af0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b00 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45         //   ACEE
17b10 78 74 72 61 63 74 0d 0a 20 20 20 20 20 20 20 20  xtract..        
17b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b30 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 43 45          //   ACE
17b40 41 64 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20  Add..           
17b50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b60 20 20 20 20 20 2f 2f 20 20 20 41 43 45 52 65 70       //   ACERep
17b70 61 69 72 0d 0a 20 20 20 20 20 20 20 20 20 20 20  air..           
17b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b90 20 20 20 20 20 2f 2f 20 20 20 41 43 45 45 6e 63       //   ACEEnc
17ba0 72 79 70 74 46 69 6c 65 73 0d 0a 0d 0a 0d 0a 20  ryptFiles...... 
17bb0 20 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41         #define A
17bc0 43 45 5f 43 41 4c 4c 42 41 43 4b 5f 53 54 41 54  CE_CALLBACK_STAT
17bd0 45 5f 45 4e 44 43 52 43 43 48 45 43 4b 20 20 20  E_ENDCRCCHECK   
17be0 20 20 20 20 20 20 20 30 78 34 33 30 0d 0a 0d 0a         0x430....
17bf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c10 2f 2f 20 65 6e 64 20 6f 66 20 66 69 6c 65 20 70  // end of file p
17c20 72 6f 63 65 73 73 69 6f 6e 2c 20 43 52 43 2d 63  rocession, CRC-c
17c30 68 65 63 6b 0d 0a 20 20 20 20 20 20 20 20 20 20  heck..          
17c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c50 20 20 20 20 20 20 2f 2f 20 72 65 73 75 6c 74 20        // result 
17c60 69 73 20 70 61 73 73 65 64 0d 0a 20 20 20 20 20  is passed..     
17c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c80 20 20 20 20 20 20 20 20 20 20 20 2f 2f 2d 2d 2d             //---
17c90 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
17ca0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
17cb0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20  ----------..    
17cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17cd0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73              // s
17ce0 74 72 75 63 74 75 72 65 20 74 79 70 65 3a 0d 0a  tructure type:..
17cf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d10 2f 2f 20 20 20 41 43 45 5f 43 41 4c 4c 42 41 43  //   ACE_CALLBAC
17d20 4b 5f 54 59 50 45 5f 43 52 43 43 48 45 43 4b 0d  K_TYPE_CRCCHECK.
17d30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
17d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d50 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 73 3a 0d   // operations:.
17d60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
17d70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d80 20 2f 2f 20 20 20 41 43 45 54 65 73 74 0d 0a 20   //   ACETest.. 
17d90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
17db0 2f 20 20 20 41 43 45 45 78 74 72 61 63 74 0d 0a  /   ACEExtract..
17dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17dd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17de0 2f 2f 20 20 20 41 43 45 44 65 6c 65 74 65 0d 0a  //   ACEDelete..
17df0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e10 2f 2f 20 20 20 41 43 45 41 64 64 0d 0a 0d 0a 0d  //   ACEAdd.....
17e20 0a 0d 0a 0d 0a 2f 2f cd cd cd cd cd cd cd cd cd  .....//.........
17e30 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
17e40 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
17e50 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
17e60 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
17e70 cd cd cd cd cd cd cd 0d 0a 2f 2f cd cd cd cd cd  .........//.....
17e80 cd cd cd 3d 3d 3d 3d 3d 2d 2d 2d 20 20 50 61 72  ...=====---  Par
17e90 74 20 33 3a 20 46 75 6e 63 74 69 6f 6e 73 20 73  t 3: Functions s
17ea0 75 70 70 6f 72 74 65 64 20 62 79 20 55 4e 41 63  upported by UNAc
17eb0 65 56 32 2e 44 6c 6c 20 2d 2d 2d 3d 3d 3d 3d cd  eV2.Dll ---====.
17ec0 cd cd cd cd cd cd cd cd cd cd cd 0d 0a 2f 2f cd  .............//.
17ed0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
17ee0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
17ef0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
17f00 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
17f10 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd 0d  ................
17f20 0a 0d 0a 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d  ...  //---------
17f30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
17f40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
17f50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
17f60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
17f70 2d 2d 0d 0a 20 20 2f 2f 0d 0a 20 20 2f 2f 20 55  --..  //..  // U
17f80 6e 41 63 65 56 32 2e 44 6c 6c 20 73 75 70 70 6f  nAceV2.Dll suppo
17f90 72 74 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e  rts the followin
17fa0 67 20 66 75 6e 63 74 69 6f 6e 73 3a 0d 0a 20 20  g functions:..  
17fb0 2f 2f 0d 0a 20 20 2f 2f 20 20 20 41 43 45 49 6e  //..  //   ACEIn
17fc0 69 74 44 6c 6c 0d 0a 20 20 2f 2f 20 20 20 41 43  itDll..  //   AC
17fd0 45 52 65 61 64 41 72 63 68 69 76 65 44 61 74 61  EReadArchiveData
17fe0 0d 0a 20 20 2f 2f 20 20 20 41 43 45 4c 69 73 74  ..  //   ACEList
17ff0 0d 0a 20 20 2f 2f 20 20 20 41 43 45 54 65 73 74  ..  //   ACETest
18000 0d 0a 20 20 2f 2f 20 20 20 41 43 45 45 78 74 72  ..  //   ACEExtr
18010 61 63 74 0d 0a 20 20 2f 2f 0d 0a 20 20 2f 2f 20  act..  //..  // 
18020 46 69 72 73 74 20 6f 66 20 61 6c 6c 20 2d 20 62  First of all - b
18030 65 66 6f 72 65 20 61 6e 79 20 6f 74 68 65 72 20  efore any other 
18040 66 75 6e 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c  function is call
18050 65 64 20 2d 20 74 68 65 20 44 6c 6c 20 68 61 73  ed - the Dll has
18060 20 74 6f 20 62 65 0d 0a 20 20 2f 2f 20 69 6e 69   to be..  // ini
18070 74 69 61 6c 69 7a 65 64 20 62 79 20 41 43 45 49  tialized by ACEI
18080 6e 69 74 44 6c 6c 28 29 2e 20 55 73 69 6e 67 20  nitDll(). Using 
18090 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 68  this function th
180a0 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 68 61  e application ha
180b0 73 0d 0a 20 20 2f 2f 20 74 6f 20 73 65 74 20 74  s..  // to set t
180c0 65 6d 70 6f 72 61 72 79 20 64 69 72 65 63 74 6f  emporary directo
180d0 72 79 2c 20 6b 65 79 20 66 69 6c 65 20 70 61 74  ry, key file pat
180e0 68 2c 20 63 6f 6d 6d 65 6e 74 20 62 75 66 66 65  h, comment buffe
180f0 72 20 61 6e 64 0d 0a 20 20 2f 2f 20 63 61 6c 6c  r and..  // call
18100 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e 20 70 6f  back function po
18110 69 6e 74 65 72 73 2e 0d 0a 20 20 2f 2f 20 28 63  inters...  // (c
18120 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e  allback function
18130 20 70 6f 69 6e 74 65 72 73 20 63 61 6e 20 62 65   pointers can be
18140 20 73 65 74 20 74 6f 20 4e 55 4c 4c 20 66 6f 72   set to NULL for
18150 20 66 69 72 73 74 2d 74 72 79 2d 72 75 6e 73 29   first-try-runs)
18160 0d 0a 20 20 2f 2f 0d 0a 20 20 2f 2f 20 53 65 65  ..  //..  // See
18170 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20   description of 
18180 65 61 63 68 20 66 75 6e 63 74 69 6f 6e 20 66 6f  each function fo
18190 72 20 64 65 74 61 69 6c 73 20 61 62 6f 75 74 20  r details about 
181a0 74 68 65 69 72 20 74 61 73 6b 2c 20 69 6e 70 75  their task, inpu
181b0 74 20 61 6e 64 0d 0a 20 20 2f 2f 20 6f 75 74 70  t and..  // outp
181c0 75 74 2e 20 52 65 74 75 72 6e 20 63 6f 64 65 73  ut. Return codes
181d0 20 6f 66 20 74 68 6f 73 65 20 66 75 6e 63 74 69   of those functi
181e0 6f 6e 73 20 61 72 65 20 6c 69 73 74 65 64 20 69  ons are listed i
181f0 6e 20 70 61 72 74 20 33 2e 31 2e 0d 0a 20 20 2f  n part 3.1...  /
18200 2f 0d 0a 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d  /..  //---------
18210 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18220 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18230 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18240 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18250 2d 2d 0d 0a 20 20 2f 2f 0d 0a 20 20 2f 2f 20 43  --..  //..  // C
18260 6f 6e 74 65 6e 74 73 3a 0d 0a 20 20 2f 2f 20 20  ontents:..  //  
18270 20 50 61 72 74 20 33 2e 31 3a 20 41 43 45 2e 44   Part 3.1: ACE.D
18280 4c 4c 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75  LL function retu
18290 72 6e 20 63 6f 64 65 73 0d 0a 20 20 2f 2f 20 20  rn codes..  //  
182a0 20 50 61 72 74 20 33 2e 32 3a 20 66 75 6e 63 74   Part 3.2: funct
182b0 69 6f 6e 73 20 61 6e 64 20 70 61 72 61 6d 65 74  ions and paramet
182c0 65 72 20 73 74 72 75 63 74 75 72 65 73 0d 0a 20  er structures.. 
182d0 20 2f 2f 0d 0a 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d   //..  //-------
182e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
182f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18300 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18310 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18320 2d 2d 2d 2d 0d 0a 0d 0a 0d 0a 20 20 2f 2f cd cd  ----......  //..
18330 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
18340 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
18350 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
18360 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
18370 cd cd cd cd cd cd cd cd cd 0d 0a 20 20 2f 2f 3d  ...........  //=
18380 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 2d 2d 2d 20  ============--- 
18390 20 50 61 72 74 20 33 2e 31 3a 20 41 43 45 2e 44   Part 3.1: ACE.D
183a0 4c 4c 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75  LL function retu
183b0 72 6e 20 63 6f 64 65 73 20 20 2d 2d 2d 3d 3d 3d  rn codes  ---===
183c0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 20 20 2f 2f  ==========..  //
183d0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
183e0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
183f0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
18400 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
18410 cd cd cd cd cd cd cd cd cd cd cd 0d 0a 0d 0a 20  ............... 
18420 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
18430 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18440 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18450 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18460 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
18470 20 20 20 20 20 20 2f 2f 20 54 68 65 73 65 20 65        // These e
18480 72 72 6f 72 20 63 6f 64 65 73 20 61 72 65 20 72  rror codes are r
18490 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 20 41  eturned by the A
184a0 43 45 2e 44 4c 4c 2d 66 75 6e 63 74 69 6f 6e 73  CE.DLL-functions
184b0 2e 20 54 68 65 20 6d 65 61 6e 69 6e 67 73 0d 0a  . The meanings..
184c0 20 20 20 20 20 20 2f 2f 20 6f 66 20 74 68 65 20        // of the 
184d0 63 6f 64 65 73 20 61 72 65 20 74 68 65 20 73 61  codes are the sa
184e0 6d 65 2c 20 61 73 20 74 68 65 79 20 61 72 65 20  me, as they are 
184f0 66 6f 72 20 74 68 65 20 65 78 69 74 20 63 6f 64  for the exit cod
18500 65 73 20 6f 66 20 41 43 45 2e 45 58 45 2e 0d 0a  es of ACE.EXE...
18510 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d        //--------
18520 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18530 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18540 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18550 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
18560 0a 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69  ...        #defi
18570 6e 65 20 41 43 45 5f 45 52 52 4f 52 5f 4e 4f 45  ne ACE_ERROR_NOE
18580 52 52 4f 52 20 20 20 20 20 20 20 30 20 20 20 2f  RROR       0   /
18590 2f 20 6e 6f 20 65 72 72 6f 72 3b 20 6f 70 65 72  / no error; oper
185a0 61 74 69 6f 6e 20 73 75 63 63 65 73 66 75 6c 0d  ation succesful.
185b0 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e 65  .        #define
185c0 20 41 43 45 5f 45 52 52 4f 52 5f 4d 45 4d 20 20   ACE_ERROR_MEM  
185d0 20 20 20 20 20 20 20 20 20 31 20 20 20 2f 2f 20           1   // 
185e0 69 6e 73 75 66 66 69 63 69 65 6e 74 20 6d 65 6d  insufficient mem
185f0 6f 72 79 0d 0a 20 20 20 20 20 20 20 20 23 64 65  ory..        #de
18600 66 69 6e 65 20 41 43 45 5f 45 52 52 4f 52 5f 46  fine ACE_ERROR_F
18610 49 4c 45 53 20 20 20 20 20 20 20 20 20 32 20 20  ILES         2  
18620 20 2f 2f 20 6e 6f 20 66 69 6c 65 73 20 73 70 65   // no files spe
18630 63 69 66 69 65 64 0d 0a 20 20 20 20 20 20 20 20  cified..        
18640 23 64 65 66 69 6e 65 20 41 43 45 5f 45 52 52 4f  #define ACE_ERRO
18650 52 5f 46 4f 55 4e 44 20 20 20 20 20 20 20 20 20  R_FOUND         
18660 33 20 20 20 2f 2f 20 73 70 65 63 69 66 69 65 64  3   // specified
18670 20 61 72 63 68 69 76 65 20 6e 6f 74 20 66 6f 75   archive not fou
18680 6e 64 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66  nd..        #def
18690 69 6e 65 20 41 43 45 5f 45 52 52 4f 52 5f 46 55  ine ACE_ERROR_FU
186a0 4c 4c 20 20 20 20 20 20 20 20 20 20 34 20 20 20  LL          4   
186b0 2f 2f 20 64 69 73 6b 20 66 75 6c 6c 0d 0a 20 20  // disk full..  
186c0 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43        #define AC
186d0 45 5f 45 52 52 4f 52 5f 4f 50 45 4e 20 20 20 20  E_ERROR_OPEN    
186e0 20 20 20 20 20 20 35 20 20 20 2f 2f 20 63 6f 75        5   // cou
186f0 6c 64 20 6e 6f 74 20 6f 70 65 6e 20 66 69 6c 65  ld not open file
18700 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e  ..        #defin
18710 65 20 41 43 45 5f 45 52 52 4f 52 5f 52 45 41 44  e ACE_ERROR_READ
18720 20 20 20 20 20 20 20 20 20 20 36 20 20 20 2f 2f            6   //
18730 20 72 65 61 64 20 65 72 72 6f 72 0d 0a 20 20 20   read error..   
18740 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43 45       #define ACE
18750 5f 45 52 52 4f 52 5f 57 52 49 54 45 20 20 20 20  _ERROR_WRITE    
18760 20 20 20 20 20 37 20 20 20 2f 2f 20 77 72 69 74       7   // writ
18770 65 20 65 72 72 6f 72 0d 0a 20 20 20 20 20 20 20  e error..       
18780 20 23 64 65 66 69 6e 65 20 41 43 45 5f 45 52 52   #define ACE_ERR
18790 4f 52 5f 43 4c 49 4e 45 20 20 20 20 20 20 20 20  OR_CLINE        
187a0 20 38 20 20 20 2f 2f 20 69 6e 76 61 6c 69 64 20   8   // invalid 
187b0 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 0d 0a 20 20  command line..  
187c0 20 20 20 20 20 20 23 64 65 66 69 6e 65 20 41 43        #define AC
187d0 45 5f 45 52 52 4f 52 5f 43 52 43 20 20 20 20 20  E_ERROR_CRC     
187e0 20 20 20 20 20 20 39 20 20 20 2f 2f 20 43 52 43        9   // CRC
187f0 20 65 72 72 6f 72 0d 0a 20 20 20 20 20 20 20 20   error..        
18800 23 64 65 66 69 6e 65 20 41 43 45 5f 45 52 52 4f  #define ACE_ERRO
18810 52 5f 4f 54 48 45 52 20 20 20 20 20 20 20 20 20  R_OTHER         
18820 31 30 20 20 2f 2f 20 6f 74 68 65 72 20 65 72 72  10  // other err
18830 6f 72 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66  or..        #def
18840 69 6e 65 20 41 43 45 5f 45 52 52 4f 52 5f 45 58  ine ACE_ERROR_EX
18850 49 53 54 53 20 20 20 20 20 20 20 20 31 31 20 20  ISTS        11  
18860 2f 2f 20 66 69 6c 65 20 61 6c 72 65 61 64 79 20  // file already 
18870 65 78 69 73 74 73 0d 0a 20 20 20 20 20 20 20 20  exists..        
18880 23 64 65 66 69 6e 65 20 41 43 45 5f 45 52 52 4f  #define ACE_ERRO
18890 52 5f 55 53 45 52 20 20 20 20 20 20 20 20 20 20  R_USER          
188a0 32 35 35 20 2f 2f 20 75 73 65 72 20 62 72 65 61  255 // user brea
188b0 6b 20 28 61 70 70 6c 69 63 61 74 69 6f 6e 0d 0a  k (application..
188c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
188d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
188e0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 72              // r
188f0 65 74 75 72 6e 65 64 20 63 61 6e 63 65 6c 20 63  eturned cancel c
18900 6f 64 65 20 61 74 0d 0a 20 20 20 20 20 20 20 20  ode at..        
18910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18930 20 20 20 20 2f 2f 20 63 61 6c 6c 62 61 63 6b 20      // callback 
18940 66 75 6e 63 74 69 6f 6e 29 0d 0a 0d 0a 0d 0a 20  function)...... 
18950 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
18960 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18970 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18980 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18990 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
189a0 20 20 20 20 20 20 2f 2f 20 54 68 65 73 65 20 65        // These e
189b0 72 72 6f 72 20 63 6f 64 65 73 20 61 72 65 20 72  rror codes are r
189c0 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 20 41  eturned by the A
189d0 43 45 2e 44 4c 4c 2d 66 75 6e 63 74 69 6f 6e 73  CE.DLL-functions
189e0 2e 20 54 68 65 79 20 61 72 65 20 6e 6f 74 0d 0a  . They are not..
189f0 20 20 20 20 20 20 2f 2f 20 75 73 65 64 20 62 79        // used by
18a00 20 41 43 45 2e 45 58 45 20 79 65 74 2e 0d 0a 20   ACE.EXE yet... 
18a10 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
18a20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18a30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18a40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18a50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
18a60 0d 0a 20 20 20 20 20 20 20 20 23 64 65 66 69 6e  ..        #defin
18a70 65 20 41 43 45 5f 45 52 52 4f 52 5f 50 41 52 41  e ACE_ERROR_PARA
18a80 4d 20 20 20 20 20 20 20 31 32 38 20 2f 2f 20 6d  M       128 // m
18a90 69 67 68 74 20 62 65 20 75 73 65 64 20 6c 61 74  ight be used lat
18aa0 65 72 0d 0a 0d 0a 0d 0a 20 20 2f 2f cd cd cd cd  er......  //....
18ab0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
18ac0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
18ad0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
18ae0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
18af0 cd cd cd cd cd cd cd 0d 0a 20 20 2f 2f 3d 3d 3d  .........  //===
18b00 3d 3d 3d 3d 3d 3d 3d 3d 3d 2d 2d 2d 20 20 50 61  =========---  Pa
18b10 72 74 20 33 2e 32 3a 20 66 75 6e 63 74 69 6f 6e  rt 3.2: function
18b20 73 20 61 6e 64 20 70 61 72 61 6d 65 74 65 72 20  s and parameter 
18b30 73 74 72 75 63 74 75 72 65 73 20 2d 2d 2d 3d 3d  structures ---==
18b40 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 20 20 2f 2f cd cd  ========..  //..
18b50 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
18b60 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
18b70 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
18b80 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd  ................
18b90 cd cd cd cd cd cd cd cd cd 0d 0a 0d 0a 20 20 20  .............   
18ba0 20 2f 2f c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4   //.............
18bb0 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 20 20  ..............  
18bc0 41 43 45 49 6e 69 74 44 6c 6c 20 20 c4 c4 c4 c4  ACEInitDll  ....
18bd0 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
18be0 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 0d 0a 20 20  ..............  
18bf0 20 20 2f 2f 20 49 6e 69 74 69 61 6c 69 7a 65 73    // Initializes
18c00 20 41 43 45 20 64 79 6e 61 6d 69 63 20 6c 69 6e   ACE dynamic lin
18c10 6b 20 6c 69 62 72 61 72 79 2e 20 48 61 73 20 74  k library. Has t
18c20 6f 20 62 65 20 63 61 6c 6c 65 64 20 62 65 66 6f  o be called befo
18c30 72 65 20 61 6e 79 0d 0a 20 20 20 20 2f 2f 20 6f  re any..    // o
18c40 74 68 65 72 20 66 75 6e 63 74 69 6f 6e 20 63 61  ther function ca
18c50 6c 6c 2e 20 4d 61 79 20 62 65 20 63 61 6c 6c 65  ll. May be calle
18c60 64 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20  d more than one 
18c70 74 69 6d 65 2e 0d 0a 20 20 20 20 2f 2f 2d 2d 2d  time...    //---
18c80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18c90 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18ca0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18cb0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18cc0 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 2f 2f 20 49  ------..    // I
18cd0 6e 70 75 74 20 3a 0d 0a 20 20 20 20 2f 2f 20 4f  nput :..    // O
18ce0 75 74 70 75 74 3a 0d 0a 20 20 20 20 2f 2f 2d 2d  utput:..    //--
18cf0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18d00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18d10 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18d20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18d30 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20  -------....     
18d40 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   //-------------
18d50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18d60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18d70 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18d80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20  ----------..    
18d90 20 20 2f 2f 20 41 43 45 49 6e 69 74 44 6c 6c 28    // ACEInitDll(
18da0 29 20 70 61 72 61 6d 65 74 65 72 20 73 74 72 75  ) parameter stru
18db0 63 74 75 72 65 2e 0d 0a 20 20 20 20 20 20 2f 2f  cture...      //
18dc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18dd0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18de0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18df0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18e00 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20  -------....     
18e10 20 20 20 74 79 70 65 64 65 66 20 73 74 72 75 63     typedef struc
18e20 74 20 73 41 43 45 49 6e 69 74 44 6c 6c 53 74 72  t sACEInitDllStr
18e30 75 63 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20  uc..        {.. 
18e40 20 20 20 20 20 20 20 20 20 74 41 43 45 47 6c 6f           tACEGlo
18e50 62 61 6c 44 61 74 61 53 74 72 75 63 0d 0a 20 20  balDataStruc..  
18e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 6c                Gl
18e70 6f 62 61 6c 44 61 74 61 3b 0d 0a 20 20 20 20 20  obalData;..     
18e80 20 20 20 20 20 43 48 41 52 20 20 52 65 73 65 72       CHAR  Reser
18e90 76 65 64 5b 36 34 5d 3b 20 20 20 20 20 20 20 20  ved[64];        
18ea0 20 2f 2f 20 68 61 73 20 74 6f 20 62 65 20 66 69   // has to be fi
18eb0 6c 6c 65 64 20 77 69 74 68 20 7a 65 72 6f 65 73  lled with zeroes
18ec0 0d 0a 20 20 20 20 20 20 20 20 7d 20 74 41 43 45  ..        } tACE
18ed0 49 6e 69 74 44 6c 6c 53 74 72 75 63 2c 0d 0a 20  InitDllStruc,.. 
18ee0 20 20 20 20 20 20 20 20 2a 70 41 43 45 49 6e 69          *pACEIni
18ef0 74 44 6c 6c 53 74 72 75 63 3b 0d 0a 0d 0a 0d 0a  tDllStruc;......
18f00 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d        //--------
18f10 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18f20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18f30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18f40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
18f50 0a 20 20 20 20 20 20 2f 2f 20 41 43 45 49 6e 69  .      // ACEIni
18f60 74 44 6c 6c 28 29 20 66 75 6e 63 74 69 6f 6e 20  tDll() function 
18f70 64 65 63 6c 61 72 61 74 69 6f 6e 2e 0d 0a 20 20  declaration...  
18f80 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
18f90 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18fa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18fb0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
18fc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d  -------------...
18fd0 0a 20 20 20 20 20 20 20 20 49 4e 54 20 5f 5f 73  .        INT __s
18fe0 74 64 63 61 6c 6c 20 41 43 45 49 6e 69 74 44 6c  tdcall ACEInitDl
18ff0 6c 28 70 41 43 45 49 6e 69 74 44 6c 6c 53 74 72  l(pACEInitDllStr
19000 75 63 20 44 6c 6c 44 61 74 61 29 3b 0d 0a 0d 0a  uc DllData);....
19010 0d 0a 20 20 20 20 2f 2f c4 c4 c4 c4 c4 c4 c4 c4  ..    //........
19020 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 20  ............... 
19030 20 41 43 45 52 65 61 64 41 72 63 68 69 76 65 44   ACEReadArchiveD
19040 61 74 61 20 20 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ata  ...........
19050 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
19060 c4 0d 0a 20 20 20 20 2f 2f 20 54 65 73 74 73 20  ...    // Tests 
19070 61 20 66 69 6c 65 20 77 68 65 74 68 65 72 20 69  a file whether i
19080 74 20 69 73 20 61 6e 20 61 72 63 68 69 76 65 20  t is an archive 
19090 6f 72 20 6e 6f 74 20 61 6e 64 20 72 65 61 64 73  or not and reads
190a0 20 6f 75 74 20 74 68 65 20 61 72 63 68 69 76 65   out the archive
190b0 0d 0a 20 20 20 20 2f 2f 20 64 61 74 61 2e 0d 0a  ..    // data...
190c0 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
190d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
190e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
190f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19100 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
19110 0a 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d  ...      //-----
19120 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19130 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19140 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19150 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19160 2d 2d 0d 0a 20 20 20 20 20 20 2f 2f 20 41 43 45  --..      // ACE
19170 52 65 61 64 41 72 63 68 69 76 65 44 61 74 61 28  ReadArchiveData(
19180 29 20 70 61 72 61 6d 65 74 65 72 20 73 74 72 75  ) parameter stru
19190 63 74 75 72 65 2e 0d 0a 20 20 20 20 20 20 2f 2f  cture...      //
191a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
191b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
191c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
191d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
191e0 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20  -------....     
191f0 20 20 20 74 79 70 65 64 65 66 20 73 74 72 75 63     typedef struc
19200 74 20 73 41 43 45 52 65 61 64 41 72 63 68 69 76  t sACEReadArchiv
19210 65 44 61 74 61 53 74 72 75 63 0d 0a 20 20 20 20  eDataStruc..    
19220 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20      {..         
19230 20 70 41 43 45 41 72 63 68 69 76 65 44 61 74 61   pACEArchiveData
19240 53 74 72 75 63 20 20 20 20 20 20 20 20 2f 2f 20  Struc        // 
19250 69 66 20 74 68 69 73 20 70 6f 69 6e 74 65 72 20  if this pointer 
19260 69 73 20 4e 55 4c 4c 2c 20 74 68 65 0d 0a 20 20  is NULL, the..  
19270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 72                Ar
19280 63 68 69 76 65 44 61 74 61 3b 20 20 20 20 20 20  chiveData;      
19290 20 20 20 20 2f 2f 20 66 69 6c 65 20 70 61 73 73      // file pass
192a0 65 64 20 74 6f 20 41 43 45 52 65 61 64 41 72 63  ed to ACEReadArc
192b0 68 69 76 65 44 61 74 61 0d 0a 20 20 20 20 20 20  hiveData..      
192c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
192d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
192e0 2f 2f 20 69 73 20 6e 6f 20 61 72 63 68 69 76 65  // is no archive
192f0 3b 20 6f 74 68 65 72 77 69 73 65 20 69 74 20 70  ; otherwise it p
19300 6f 69 6e 74 73 0d 0a 20 20 20 20 20 20 20 20 20  oints..         
19310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19320 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
19330 74 6f 20 61 20 74 41 43 45 41 72 63 68 69 76 65  to a tACEArchive
19340 44 61 74 61 53 74 72 75 63 20 73 74 72 75 63 74  DataStruc struct
19350 75 72 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ure..           
19360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19370 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74 68             // th
19380 61 74 20 63 6f 6e 74 61 69 6e 73 20 69 6e 66 6f  at contains info
19390 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68  rmation about th
193a0 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  e..             
193b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
193c0 20 20 20 20 20 20 20 20 20 2f 2f 20 61 72 63 68           // arch
193d0 69 76 65 0d 0a 20 20 20 20 20 20 20 20 20 20 43  ive..          C
193e0 48 41 52 20 20 52 65 73 65 72 76 65 64 5b 36 34  HAR  Reserved[64
193f0 5d 3b 20 20 20 20 20 20 20 20 20 2f 2f 20 68 61  ];         // ha
19400 73 20 74 6f 20 62 65 20 66 69 6c 6c 65 64 20 77  s to be filled w
19410 69 74 68 20 7a 65 72 6f 65 73 0d 0a 20 20 20 20  ith zeroes..    
19420 20 20 20 20 7d 20 74 41 43 45 52 65 61 64 41 72      } tACEReadAr
19430 63 68 69 76 65 44 61 74 61 53 74 72 75 63 2c 0d  chiveDataStruc,.
19440 0a 20 20 20 20 20 20 20 20 20 2a 70 41 43 45 52  .         *pACER
19450 65 61 64 41 72 63 68 69 76 65 44 61 74 61 53 74  eadArchiveDataSt
19460 72 75 63 3b 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20  ruc;......      
19470 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
19480 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19490 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
194a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
194b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20  ---------..     
194c0 20 2f 2f 20 41 43 45 52 65 61 64 41 72 63 68 69   // ACEReadArchi
194d0 76 65 44 61 74 61 28 29 20 66 75 6e 63 74 69 6f  veData() functio
194e0 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 2e 0d 0a  n declaration...
194f0 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d        //--------
19500 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19510 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19520 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19530 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
19540 0a 0d 0a 20 20 20 20 20 20 20 20 49 4e 54 20 5f  ...        INT _
19550 5f 73 74 64 63 61 6c 6c 20 41 43 45 52 65 61 64  _stdcall ACERead
19560 41 72 63 68 69 76 65 44 61 74 61 28 4c 50 53 54  ArchiveData(LPST
19570 52 20 41 72 63 68 69 76 65 4e 61 6d 65 2c 0d 0a  R ArchiveName,..
19580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
195a0 20 20 20 20 20 20 20 20 20 70 41 43 45 52 65 61           pACERea
195b0 64 41 72 63 68 69 76 65 44 61 74 61 53 74 72 75  dArchiveDataStru
195c0 63 20 41 72 63 68 69 76 65 44 61 74 61 29 3b 0d  c ArchiveData);.
195d0 0a 0d 0a 0d 0a 20 20 20 20 2f 2f c4 c4 c4 c4 c4  .....    //.....
195e0 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
195f0 c4 c4 c4 c4 c4 c4 c4 20 20 41 43 45 4c 69 73 74  .......  ACEList
19600 20 20 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4    ..............
19610 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
19620 c4 c4 c4 c4 0d 0a 20 20 20 20 2f 2f 20 50 61 73  ......    // Pas
19630 73 65 73 20 74 68 65 20 73 70 65 63 69 66 69 65  ses the specifie
19640 64 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 61  d files in the a
19650 72 63 68 69 76 65 20 74 6f 20 53 74 61 74 65 43  rchive to StateC
19660 61 6c 6c 62 61 63 6b 50 72 6f 63 28 29 2e 0d 0a  allbackProc()...
19670 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d      //----------
19680 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19690 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
196a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
196b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
196c0 0a 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d  ...      //-----
196d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
196e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
196f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19700 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19710 2d 2d 0d 0a 20 20 20 20 20 20 2f 2f 20 41 43 45  --..      // ACE
19720 4c 69 73 74 28 29 20 70 61 72 61 6d 65 74 65 72  List() parameter
19730 20 73 74 72 75 63 74 75 72 65 2e 0d 0a 20 20 20   structure...   
19740 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d     //-----------
19750 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19760 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19770 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19780 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a  ------------....
19790 20 20 20 20 20 20 20 20 74 79 70 65 64 65 66 20          typedef 
197a0 73 74 72 75 63 74 20 73 41 43 45 4c 69 73 74 53  struct sACEListS
197b0 74 72 75 63 0d 0a 20 20 20 20 20 20 20 20 7b 0d  truc..        {.
197c0 0a 20 20 20 20 20 20 20 20 20 20 74 41 43 45 46  .          tACEF
197d0 69 6c 65 73 53 74 72 75 63 20 20 20 20 20 20 20  ilesStruc       
197e0 20 20 20 20 20 20 20 2f 2f 20 73 70 65 63 69 66         // specif
197f0 69 65 73 20 66 69 6c 65 73 20 74 6f 20 62 65 20  ies files to be 
19800 6c 69 73 74 65 64 3b 0d 0a 20 20 20 20 20 20 20  listed;..       
19810 20 20 20 20 20 20 20 20 20 46 69 6c 65 73 3b 20           Files; 
19820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
19830 2f 20 73 65 65 20 74 41 43 45 46 69 6c 65 73 53  / see tACEFilesS
19840 74 72 75 63 20 73 74 72 75 63 74 75 72 65 0d 0a  truc structure..
19850 20 20 20 20 20 20 20 20 20 20 43 48 41 52 20 20            CHAR  
19860 52 65 73 65 72 76 65 64 5b 36 34 5d 3b 20 20 20  Reserved[64];   
19870 20 20 20 20 20 20 2f 2f 20 68 61 73 20 74 6f 20        // has to 
19880 62 65 20 66 69 6c 6c 65 64 20 77 69 74 68 20 7a  be filled with z
19890 65 72 6f 65 73 0d 0a 20 20 20 20 20 20 20 20 7d  eroes..        }
198a0 20 74 41 43 45 4c 69 73 74 53 74 72 75 63 2c 0d   tACEListStruc,.
198b0 0a 20 20 20 20 20 20 20 20 20 2a 70 41 43 45 4c  .         *pACEL
198c0 69 73 74 53 74 72 75 63 3b 0d 0a 0d 0a 0d 0a 20  istStruc;...... 
198d0 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
198e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
198f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19900 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19910 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
19920 20 20 20 20 20 20 2f 2f 20 41 43 45 4c 69 73 74        // ACEList
19930 28 29 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 6c  () function decl
19940 61 72 61 74 69 6f 6e 2e 0d 0a 20 20 20 20 20 20  aration...      
19950 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
19960 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19970 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19980 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19990 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 20 20 20  ---------....   
199a0 20 20 20 20 20 49 4e 54 20 5f 5f 73 74 64 63 61       INT __stdca
199b0 6c 6c 20 41 43 45 4c 69 73 74 28 4c 50 53 54 52  ll ACEList(LPSTR
199c0 20 41 72 63 68 69 76 65 4e 61 6d 65 2c 20 70 41   ArchiveName, pA
199d0 43 45 4c 69 73 74 53 74 72 75 63 20 4c 69 73 74  CEListStruc List
199e0 29 3b 0d 0a 0d 0a 0d 0a 20 20 20 20 2f 2f c4 c4  );......    //..
199f0 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
19a00 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 20 20 41 43 45 54  ..........  ACET
19a10 65 73 74 20 20 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  est  ...........
19a20 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
19a30 c4 c4 c4 c4 c4 c4 c4 0d 0a 20 20 20 20 2f 2f 20  .........    // 
19a40 54 65 73 74 73 20 73 70 65 63 69 66 69 65 64 20  Tests specified 
19a50 66 69 6c 65 73 20 69 6e 20 61 72 63 68 69 76 65  files in archive
19a60 2e 0d 0a 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d  ...    //-------
19a70 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19a80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19a90 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19aa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19ab0 2d 2d 0d 0a 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d  --....      //--
19ac0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19ad0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19ae0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19af0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19b00 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 2f 2f 20  -----..      // 
19b10 41 43 45 54 65 73 74 28 29 20 70 61 72 61 6d 65  ACETest() parame
19b20 74 65 72 20 73 74 72 75 63 74 75 72 65 2e 0d 0a  ter structure...
19b30 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d        //--------
19b40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19b50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19b60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19b70 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
19b80 0a 0d 0a 20 20 20 20 20 20 20 20 74 79 70 65 64  ...        typed
19b90 65 66 20 73 74 72 75 63 74 20 73 41 43 45 54 65  ef struct sACETe
19ba0 73 74 53 74 72 75 63 0d 0a 20 20 20 20 20 20 20  stStruc..       
19bb0 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 74 41   {..          tA
19bc0 43 45 46 69 6c 65 73 53 74 72 75 63 20 20 20 20  CEFilesStruc    
19bd0 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73 70 65            // spe
19be0 63 69 66 69 65 73 20 66 69 6c 65 73 20 74 6f 20  cifies files to 
19bf0 74 65 73 74 3b 0d 0a 20 20 20 20 20 20 20 20 20  test;..         
19c00 20 20 20 20 20 20 20 46 69 6c 65 73 3b 20 20 20         Files;   
19c10 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
19c20 73 65 65 20 74 41 43 45 46 69 6c 65 73 53 74 72  see tACEFilesStr
19c30 75 63 20 73 74 72 75 63 74 75 72 65 0d 0a 20 20  uc structure..  
19c40 20 20 20 20 20 20 20 20 4c 50 53 54 52 20 44 65          LPSTR De
19c50 63 72 79 70 74 50 61 73 73 77 6f 72 64 3b 20 20  cryptPassword;  
19c60 20 20 20 20 2f 2f 20 7a 65 72 6f 2d 74 65 72 6d      // zero-term
19c70 69 6e 61 74 65 64 20 73 74 72 69 6e 67 2c 0d 0a  inated string,..
19c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ca0 20 20 20 20 20 20 2f 2f 20 63 61 73 65 2d 73 65        // case-se
19cb0 6e 73 69 74 69 76 65 20 28 6d 61 78 6c 65 6e 3d  nsitive (maxlen=
19cc0 35 36 29 0d 0a 20 20 20 20 20 20 20 20 20 20 43  56)..          C
19cd0 48 41 52 20 20 52 65 73 65 72 76 65 64 5b 36 34  HAR  Reserved[64
19ce0 5d 3b 20 20 20 20 20 20 20 20 20 2f 2f 20 68 61  ];         // ha
19cf0 73 20 74 6f 20 62 65 20 66 69 6c 6c 65 64 20 77  s to be filled w
19d00 69 74 68 20 7a 65 72 6f 65 73 0d 0a 20 20 20 20  ith zeroes..    
19d10 20 20 20 20 7d 20 74 41 43 45 54 65 73 74 53 74      } tACETestSt
19d20 72 75 63 2c 0d 0a 20 20 20 20 20 20 20 20 20 2a  ruc,..         *
19d30 70 41 43 45 54 65 73 74 53 74 72 75 63 3b 0d 0a  pACETestStruc;..
19d40 0d 0a 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d  ....      //----
19d50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19d60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19d70 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19d80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19d90 2d 2d 2d 0d 0a 20 20 20 20 20 20 2f 2f 20 41 43  ---..      // AC
19da0 45 54 65 73 74 28 29 20 66 75 6e 63 74 69 6f 6e  ETest() function
19db0 20 64 65 63 6c 61 72 61 74 69 6f 6e 2e 0d 0a 20   declaration... 
19dc0 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d       //---------
19dd0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19de0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19df0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19e00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
19e10 0d 0a 20 20 20 20 20 20 20 20 49 4e 54 20 5f 5f  ..        INT __
19e20 73 74 64 63 61 6c 6c 20 41 43 45 54 65 73 74 28  stdcall ACETest(
19e30 4c 50 53 54 52 20 41 72 63 68 69 76 65 4e 61 6d  LPSTR ArchiveNam
19e40 65 2c 20 70 41 43 45 54 65 73 74 53 74 72 75 63  e, pACETestStruc
19e50 20 54 65 73 74 29 3b 0d 0a 0d 0a 0d 0a 20 20 20   Test);......   
19e60 20 2f 2f c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4   //.............
19e70 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 20 20  ..............  
19e80 41 43 45 45 78 74 72 61 63 74 20 20 c4 c4 c4 c4  ACEExtract  ....
19e90 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4  ................
19ea0 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 c4 0d 0a 20 20  ..............  
19eb0 20 20 2f 2f 20 45 78 74 72 61 63 74 73 20 73 70    // Extracts sp
19ec0 65 63 69 66 69 65 64 20 20 66 69 6c 65 73 2e 0d  ecified  files..
19ed0 0a 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d  .    //---------
19ee0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19ef0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19f00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19f10 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19f20 0d 0a 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d  ....      //----
19f30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19f40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19f50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19f60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19f70 2d 2d 2d 0d 0a 20 20 20 20 20 20 2f 2f 20 41 43  ---..      // AC
19f80 45 45 78 74 72 61 63 74 28 29 20 70 61 72 61 6d  EExtract() param
19f90 65 74 65 72 20 73 74 72 75 63 74 75 72 65 2e 0d  eter structure..
19fa0 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d 2d 2d 2d  .      //-------
19fb0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19fc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19fd0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19fe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
19ff0 0d 0a 0d 0a 20 20 20 20 20 20 20 20 74 79 70 65  ....        type
1a000 64 65 66 20 73 74 72 75 63 74 20 73 41 43 45 45  def struct sACEE
1a010 78 74 72 61 63 74 53 74 72 75 63 0d 0a 20 20 20  xtractStruc..   
1a020 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20       {..        
1a030 20 20 74 41 43 45 46 69 6c 65 73 53 74 72 75 63    tACEFilesStruc
1a040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a050 2f 2f 20 73 70 65 63 69 66 69 65 73 20 66 69 6c  // specifies fil
1a060 65 73 20 74 6f 20 65 78 74 72 61 63 74 3b 0d 0a  es to extract;..
1a070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a080 20 20 46 69 6c 65 73 3b 20 20 20 20 20 20 20 20    Files;        
1a090 20 20 20 20 20 20 20 20 2f 2f 20 73 65 65 20 74          // see t
1a0a0 41 43 45 46 69 6c 65 73 53 74 72 75 63 20 73 74  ACEFilesStruc st
1a0b0 72 75 63 74 75 72 65 0d 0a 20 20 20 20 20 20 20  ructure..       
1a0c0 20 20 20 4c 50 53 54 52 20 20 20 44 65 73 74 69     LPSTR   Desti
1a0d0 6e 61 74 69 6f 6e 44 69 72 3b 20 20 20 20 20 20  nationDir;      
1a0e0 20 2f 2f 20 64 69 72 65 63 74 6f 72 79 20 74 6f   // directory to
1a0f0 20 65 78 74 72 61 63 74 20 66 69 6c 65 73 20 74   extract files t
1a100 6f 0d 0a 20 20 20 20 20 20 20 20 20 20 42 4f 4f  o..          BOO
1a110 4c 20 20 20 20 45 78 63 6c 75 64 65 50 61 74 68  L    ExcludePath
1a120 3b 20 20 20 20 20 20 20 20 20 20 2f 2f 20 65 78  ;          // ex
1a130 74 72 61 63 74 20 66 69 6c 65 73 20 77 69 74 68  tract files with
1a140 6f 75 74 20 70 61 74 68 0d 0a 20 20 20 20 20 20  out path..      
1a150 20 20 20 20 4c 50 53 54 52 20 20 20 44 65 63 72      LPSTR   Decr
1a160 79 70 74 50 61 73 73 77 6f 72 64 3b 20 20 20 20  yptPassword;    
1a170 20 20 2f 2f 20 70 61 73 73 77 6f 72 64 20 66 6f    // password fo
1a180 72 20 64 65 63 72 79 70 74 69 6f 6e 20 28 69 66  r decryption (if
1a190 20 66 69 6c 65 73 0d 0a 20 20 20 20 20 20 20 20   files..        
1a1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a1b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a1c0 2f 2f 20 61 72 65 20 65 6e 63 72 79 70 74 65 64  // are encrypted
1a1d0 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  );..            
1a1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a1f0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 7a              // z
1a200 65 72 6f 2d 74 65 72 6d 69 6e 61 74 65 64 20 73  ero-terminated s
1a210 74 72 69 6e 67 2c 0d 0a 20 20 20 20 20 20 20 20  tring,..        
1a220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a240 2f 2f 20 63 61 73 65 2d 73 65 6e 73 69 74 69 76  // case-sensitiv
1a250 65 20 28 6d 61 78 6c 65 6e 3d 35 36 29 0d 0a 20  e (maxlen=56).. 
1a260 20 20 20 20 20 20 20 20 20 43 48 41 52 20 20 20           CHAR   
1a270 20 52 65 73 65 72 76 65 64 5b 36 34 5d 3b 20 20   Reserved[64];  
1a280 20 20 20 20 20 20 20 2f 2f 20 68 61 73 20 74 6f         // has to
1a290 20 62 65 20 66 69 6c 6c 65 64 20 77 69 74 68 20   be filled with 
1a2a0 7a 65 72 6f 65 73 0d 0a 20 20 20 20 20 20 20 20  zeroes..        
1a2b0 7d 20 74 41 43 45 45 78 74 72 61 63 74 53 74 72  } tACEExtractStr
1a2c0 75 63 2c 0d 0a 20 20 20 20 20 20 20 20 20 2a 70  uc,..         *p
1a2d0 41 43 45 45 78 74 72 61 63 74 53 74 72 75 63 3b  ACEExtractStruc;
1a2e0 0d 0a 0d 0a 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d  ......      //--
1a2f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1a300 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1a310 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1a320 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1a330 2d 2d 2d 2d 2d 0d 0a 20 20 20 20 20 20 2f 2f 20  -----..      // 
1a340 41 43 45 45 78 74 72 61 63 74 28 29 20 66 75 6e  ACEExtract() fun
1a350 63 74 69 6f 6e 20 64 65 63 6c 61 72 61 74 69 6f  ction declaratio
1a360 6e 2e 0d 0a 20 20 20 20 20 20 2f 2f 2d 2d 2d 2d  n...      //----
1a370 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1a380 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1a390 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1a3a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1a3b0 2d 2d 2d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 49  ---....        I
1a3c0 4e 54 20 5f 5f 73 74 64 63 61 6c 6c 20 41 43 45  NT __stdcall ACE
1a3d0 45 78 74 72 61 63 74 28 4c 50 53 54 52 20 41 72  Extract(LPSTR Ar
1a3e0 63 68 69 76 65 4e 61 6d 65 2c 0d 0a 20 20 20 20  chiveName,..    
1a3f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a400 20 20 20 20 20 20 20 20 20 20 20 20 20 70 41 43               pAC
1a410 45 45 78 74 72 61 63 74 53 74 72 75 63 20 45 78  EExtractStruc Ex
1a420 74 72 61 63 74 29 3b 0d 0a 0d 0a 0d 0a 23 69 66  tract);......#if
1a430 64 65 66 20 5f 5f 63 70 6c 75 73 70 6c 75 73 0d  def __cplusplus.
1a440 0a 20 7d 0d 0a 23 65 6e 64 69 66 0d 0a 23 65 6e  . }..#endif..#en
1a450 64 69 66 0d 0a 0d 0a                             dif....