/* Unzip Flags (UF) */
typedef struct
{
  BOOL fRecreateDirs;
  BOOL fShowBubbleHelp;
  BOOL fTranslate;
  BOOL fSaveUnZipToDir;
  BOOL fSaveUnZipFromDir;
  BOOL fFormatLong;
  BOOL fUnzipToZipDir;
  BOOL fBeepOnFinish;
  BOOL fDoAll;
  BOOL fIconSwitched;
  BOOL fHelp;
  BOOL fCanDragDrop;
  BOOL fAutoClearStatus;
  BOOL fAutoClearDisplay;
  BOOL fTrailingSlash;
  BOOL fPromptToOverwrite;
} UF, *PUF;

/* Unzip Miscellaneous Buffers (UMB) */
typedef struct
{
  /* fully-qualified archive file name in OEM char set */
  char szFileName[WIZUNZIP_MAX_PATH];

  /* directory of archive file in ANSI char set */
  char szDirName[WIZUNZIP_MAX_PATH];  

  /* extraction ("unzip to") directory name in ANSI */
  char szUnzipToDirName[WIZUNZIP_MAX_PATH];

  /* temp extraction ("unzip to") directory name in ANSI */
  char szUnzipToDirNameTmp[WIZUNZIP_MAX_PATH]; 

  /* extraction ("unzip from") directory name in ANSI */
  char szUnzipFromDirName[WIZUNZIP_MAX_PATH]; 
 
  /* text for totals of zip archive */
  char szTotalsLine[80];                       

  char szPassword[81];
  LPSTR lpPassword;

  OPENFILENAME ofn;                   /* name of open file */
  MSG msg;
  OFSTRUCT of;                        /* archive open file struct */
} UMB, __far *LPUMB;

extern LPUMB lpumb;

// DLL Command Line (DCL)
typedef struct {
   HWND hInst;
   DLLCALLBK callback;
   BOOL fTraceEnabled;

   BOOL ExtractOnlyNewer;
   BOOL Overwrite;
   BOOL SpaceToUnderscore;
   BOOL PromptToOverwrite;

   BOOL ncflag;  // if true, write to stdout
   BOOL ntflag;  // if true, test zipfile
   BOOL nvflag;  // verbose flag
   BOOL nUflag;  // "update" (extract only newer files)
   BOOL nzflag;  // show zip comment (not currently supported)
   BOOL ndflag;  // if true, all args are files/dirs to be extracted (normal)
   BOOL noflag;  // if true, overwrite existing???
   BOOL naflag;  // if true, do ASCII/EBCDIC or EOL translation

   char Date[7];     /* Date to include after (MMDDYY + 1 null) */
   int argc;
   LPSTR lpszZipFN;  /* ptr to zip filename */
   int seven;        /* stick a 7 in here to validate the struct offsets */
   char **FNV;       /* File Name Vector - filespec args */
} DCL, _far *LPDCL;

extern LPDCL lpDCL;
