Hex Artifact Content

Not logged in

Artifact 9913c810ddc077f2fb5d97959120d5b782407e76:


0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0a 2a 20 20 20 20 20  ********\.*     
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0060: 20 20 20 20 20 20 20 20 20 20 6c 7a 65 78 70 61            lzexpa
0070: 6e 64 2e 64 20 20 20 20 20 20 20 20 20 20 20 20  nd.d            
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0090: 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20    *.*           
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20              *.* 
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00f0: 20 20 20 20 20 20 57 69 6e 64 6f 77 73 20 41 50        Windows AP
0100: 49 20 68 65 61 64 65 72 20 6d 6f 64 75 6c 65 20  I header module 
0110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0120: 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20        *.*       
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0170: 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20  *.*             
0180: 20 20 20 20 54 72 61 6e 73 6c 61 74 65 64 20 66      Translated f
0190: 72 6f 6d 20 4d 69 6e 47 57 20 57 69 6e 64 6f 77  rom MinGW Window
01a0: 73 20 68 65 61 64 65 72 73 20 20 20 20 20 20 20  s headers       
01b0: 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20            *.*   
01c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0200: 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20      *.*         
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 6c                Pl
0220: 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c 69 63  aced into public
0230: 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 20 20   domain         
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a                *.
0250: 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  \***************
0260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0270: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0280: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0290: 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 6d 6f 64 75 6c 65  ********/.module
02a0: 20 77 69 6e 33 32 2e 6c 7a 65 78 70 61 6e 64 3b   win32.lzexpand;
02b0: 0a 70 72 61 67 6d 61 28 6c 69 62 2c 20 22 6c 7a  .pragma(lib, "lz
02c0: 33 32 2e 6c 69 62 22 29 3b 0a 0a 70 72 69 76 61  32.lib");..priva
02d0: 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e  te import win32.
02e0: 77 69 6e 62 61 73 65 2c 20 77 69 6e 33 32 2e 77  winbase, win32.w
02f0: 69 6e 64 65 66 3b 0a 0a 65 6e 75 6d 20 3a 20 4c  indef;..enum : L
0300: 4f 4e 47 20 7b 0a 09 4c 5a 45 52 52 4f 52 5f 42  ONG {..LZERROR_B
0310: 41 44 49 4e 48 41 4e 44 4c 45 20 20 3d 20 2d 31  ADINHANDLE  = -1
0320: 2c 0a 09 4c 5a 45 52 52 4f 52 5f 42 41 44 4f 55  ,..LZERROR_BADOU
0330: 54 48 41 4e 44 4c 45 20 3d 20 2d 32 2c 0a 09 4c  THANDLE = -2,..L
0340: 5a 45 52 52 4f 52 5f 52 45 41 44 20 20 20 20 20  ZERROR_READ     
0350: 20 20 20 20 3d 20 2d 33 2c 0a 09 4c 5a 45 52 52      = -3,..LZERR
0360: 4f 52 5f 57 52 49 54 45 20 20 20 20 20 20 20 20  OR_WRITE        
0370: 3d 20 2d 34 2c 0a 09 4c 5a 45 52 52 4f 52 5f 47  = -4,..LZERROR_G
0380: 4c 4f 42 41 4c 4c 4f 43 20 20 20 20 3d 20 2d 35  LOBALLOC    = -5
0390: 2c 0a 09 4c 5a 45 52 52 4f 52 5f 47 4c 4f 42 4c  ,..LZERROR_GLOBL
03a0: 4f 43 4b 20 20 20 20 20 3d 20 2d 36 2c 0a 09 4c  OCK     = -6,..L
03b0: 5a 45 52 52 4f 52 5f 42 41 44 56 41 4c 55 45 20  ZERROR_BADVALUE 
03c0: 20 20 20 20 3d 20 2d 37 2c 0a 09 4c 5a 45 52 52      = -7,..LZERR
03d0: 4f 52 5f 55 4e 4b 4e 4f 57 4e 41 4c 47 20 20 20  OR_UNKNOWNALG   
03e0: 3d 20 2d 38 0a 7d 0a 0a 65 78 74 65 72 6e 20 28  = -8.}..extern (
03f0: 57 69 6e 64 6f 77 73 29 3a 0a 64 65 70 72 65 63  Windows):.deprec
0400: 61 74 65 64 20 7b 0a 09 4c 4f 4e 47 20 43 6f 70  ated {..LONG Cop
0410: 79 4c 5a 46 69 6c 65 28 49 4e 54 2c 20 49 4e 54  yLZFile(INT, INT
0420: 29 3b 0a 09 76 6f 69 64 20 4c 5a 44 6f 6e 65 28  );..void LZDone(
0430: 29 3b 0a 09 49 4e 54 20 4c 5a 53 74 61 72 74 28  );..INT LZStart(
0440: 29 3b 0a 7d 0a 49 4e 54 20 47 65 74 45 78 70 61  );.}.INT GetExpa
0450: 6e 64 65 64 4e 61 6d 65 41 28 4c 50 53 54 52 2c  ndedNameA(LPSTR,
0460: 20 4c 50 53 54 52 29 3b 0a 49 4e 54 20 47 65 74   LPSTR);.INT Get
0470: 45 78 70 61 6e 64 65 64 4e 61 6d 65 57 28 4c 50  ExpandedNameW(LP
0480: 57 53 54 52 2c 20 4c 50 57 53 54 52 29 3b 0a 76  WSTR, LPWSTR);.v
0490: 6f 69 64 20 4c 5a 43 6c 6f 73 65 28 49 4e 54 29  oid LZClose(INT)
04a0: 3b 0a 4c 4f 4e 47 20 4c 5a 43 6f 70 79 28 49 4e  ;.LONG LZCopy(IN
04b0: 54 2c 20 49 4e 54 29 3b 0a 49 4e 54 20 4c 5a 49  T, INT);.INT LZI
04c0: 6e 69 74 28 49 4e 54 29 3b 0a 49 4e 54 20 4c 5a  nit(INT);.INT LZ
04d0: 4f 70 65 6e 46 69 6c 65 41 28 4c 50 53 54 52 2c  OpenFileA(LPSTR,
04e0: 20 4c 50 4f 46 53 54 52 55 43 54 2c 20 57 4f 52   LPOFSTRUCT, WOR
04f0: 44 29 3b 0a 49 4e 54 20 4c 5a 4f 70 65 6e 46 69  D);.INT LZOpenFi
0500: 6c 65 57 28 4c 50 57 53 54 52 2c 20 4c 50 4f 46  leW(LPWSTR, LPOF
0510: 53 54 52 55 43 54 2c 20 57 4f 52 44 29 3b 0a 49  STRUCT, WORD);.I
0520: 4e 54 20 4c 5a 52 65 61 64 28 49 4e 54 2c 20 4c  NT LZRead(INT, L
0530: 50 53 54 52 2c 20 49 4e 54 29 3b 0a 4c 4f 4e 47  PSTR, INT);.LONG
0540: 20 4c 5a 53 65 65 6b 28 49 4e 54 2c 20 4c 4f 4e   LZSeek(INT, LON
0550: 47 2c 20 49 4e 54 29 3b 0a 0a 76 65 72 73 69 6f  G, INT);..versio
0560: 6e 20 28 55 6e 69 63 6f 64 65 29 20 7b 0a 09 61  n (Unicode) {..a
0570: 6c 69 61 73 20 47 65 74 45 78 70 61 6e 64 65 64  lias GetExpanded
0580: 4e 61 6d 65 57 20 47 65 74 45 78 70 61 6e 64 65  NameW GetExpande
0590: 64 4e 61 6d 65 3b 0a 09 61 6c 69 61 73 20 4c 5a  dName;..alias LZ
05a0: 4f 70 65 6e 46 69 6c 65 57 20 4c 5a 4f 70 65 6e  OpenFileW LZOpen
05b0: 46 69 6c 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 09  File;.} else {..
05c0: 61 6c 69 61 73 20 47 65 74 45 78 70 61 6e 64 65  alias GetExpande
05d0: 64 4e 61 6d 65 41 20 47 65 74 45 78 70 61 6e 64  dNameA GetExpand
05e0: 65 64 4e 61 6d 65 3b 0a 09 61 6c 69 61 73 20 4c  edName;..alias L
05f0: 5a 4f 70 65 6e 46 69 6c 65 41 20 4c 5a 4f 70 65  ZOpenFileA LZOpe
0600: 6e 46 69 6c 65 3b 0a 7d 0a                       nFile;.}.