blob: 07fd1b3f6c5f445c9814f28e5b96d956a3781005 [file] [log] [blame]
Alexandre Julliard641ee761997-08-04 16:34:36 +00001#include <stdlib.h>
2#include <stdio.h>
3#include <string.h>
4#include <windows.h>
5#include <lzexpand.h>
6
7int PASCAL WinMain(HINSTANCE hinstCurrent,
8 HINSTANCE hinstPrevious,
9 LPSTR lpCmdLine,
10 int nCmdShow)
11{
12 OFSTRUCT SourceOpenStruct1, SourceOpenStruct2;
Marcus Meissner505fadc2000-01-08 22:21:47 +000013 char OriginalName[256];
Alexandre Julliard670cdc41997-08-24 16:00:30 +000014 char FAR *lpzDestFile;
Alexandre Julliard641ee761997-08-04 16:34:36 +000015 DWORD dwreturn;
16 HFILE hSourceFile, hDestFile;
Alexandre Julliard670cdc41997-08-24 16:00:30 +000017 /* Most Windows compilers have something like this: */
18 extern int _ARGC;
19 extern char **_ARGV;
Alexandre Julliard641ee761997-08-04 16:34:36 +000020
Marcus Meissner505fadc2000-01-08 22:21:47 +000021 hSourceFile = LZOpenFile(_ARGV[1], (LPOFSTRUCT) &SourceOpenStruct1, OF_READ);
22 if ((_ARGC == 3) && (_ARGV[2] != NULL))
23 lpzDestFile = _ARGV[2];
24 else {
25 lpzDestFile = OriginalName;
26 GetExpandedName(_ARGV[1], lpzDestFile);
Alexandre Julliard641ee761997-08-04 16:34:36 +000027 };
Alexandre Julliard641ee761997-08-04 16:34:36 +000028 hDestFile = LZOpenFile(lpzDestFile, (LPOFSTRUCT) &SourceOpenStruct2,
29 OF_CREATE | OF_WRITE);
Alexandre Julliard641ee761997-08-04 16:34:36 +000030 dwreturn = LZCopy(hSourceFile, hDestFile);
Marcus Meissner505fadc2000-01-08 22:21:47 +000031 if (dwreturn != 0)
32 fprintf(stderr,"LZCopy failed: return is %ld\n",dwreturn);
33 LZClose(hSourceFile);
34 LZClose(hDestFile);
Alexandre Julliard641ee761997-08-04 16:34:36 +000035 return dwreturn;
36}