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;.}.