Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.   Copyright (c) 1990-2002 Info-ZIP.  All rights reserved.
  3.  
  4.   See the accompanying file LICENSE, version 2000-Apr-09 or later
  5.   (the contents of which are also included in unzip.h) for terms of use.
  6.   If, for some reason, all these files are missing, the Info-ZIP license
  7.   also may be found at:  ftp://ftp.info-zip.org/pub/infozip/license.html
  8. */
  9. //******************************************************************************
  10. //
  11. // File:        INTRFACE.H
  12. //
  13. // Description: This module acts as the interface between the Info-ZIP code and
  14. //              our Windows code in WINMAIN.CPP.  See INTRFACE.CPP for a more
  15. //              detailed description and the actual implementation.
  16. //
  17. // Copyright:   All the source files for Pocket UnZip, except for components
  18. //              written by the Info-ZIP group, are copyrighted 1997 by Steve P.
  19. //              Miller.  The product "Pocket UnZip" itself is property of the
  20. //              author and cannot be altered in any way without written consent
  21. //              from Steve P. Miller.
  22. //
  23. // Disclaimer:  All project files are provided "as is" with no guarantee of
  24. //              their correctness.  The authors are not liable for any outcome
  25. //              that is the result of using this source.  The source for Pocket
  26. //              UnZip has been placed in the public domain to help provide an
  27. //              understanding of its implementation.  You are hereby granted
  28. //              full permission to use this source in any way you wish, except
  29. //              to alter Pocket UnZip itself.  For comments, suggestions, and
  30. //              bug reports, please write to stevemil@pobox.com.
  31. //
  32. //
  33. // Date      Name          History
  34. // --------  ------------  -----------------------------------------------------
  35. // 02/01/97  Steve Miller  Created (Version 1.0 using Info-ZIP UnZip 5.30)
  36. //
  37. //******************************************************************************
  38.  
  39. #ifndef __INTRFACE_H__
  40. #define __INTRFACE_H__
  41.  
  42. #ifdef __cplusplus
  43. extern "C" {
  44. #endif
  45.  
  46. #ifdef POCKET_UNZIP
  47. //******************************************************************************
  48. //***** Types and Structures
  49. //******************************************************************************
  50.  
  51. typedef enum _OVERWRITE_MODE {
  52.    OM_PROMPT = 0,
  53.    OM_NEWER,
  54.    OM_ALWAYS,
  55.    OM_NEVER
  56. } OVERWRITE_MODE, *LPOVERWRITE_MODE;
  57.  
  58. typedef struct _EXTRACT_INFO {
  59.    zusz_t          uzByteCount;   // Total bytes to extract/test
  60.    DWORD           dwFileCount;   // Number of files to extract/test.
  61.    LPSTR          *szFileList;    // ARGV list of files, NULL for all files.
  62.    LPSTR           szMappedPath;  // Used to store mapped name. May be NULL.
  63.    OVERWRITE_MODE  overwriteMode; // How to handle file overwrites.
  64.    BOOL            fExtract;      // TRUE for extract, FALSE for test
  65.    BOOL            fRestorePaths; // TRUE to restore paths, FALSE to junk them.
  66.    BOOL            fAbort;        // Set during operation by UI to abort.
  67.    int             result;        // Result code from extraction/test.
  68.  
  69.    // Window handles for the various controls in our progress dialogs.
  70.    HWND            hWndEditFile;
  71.    HWND            hWndProgFile;
  72.    HWND            hWndProgTotal;
  73.    HWND            hWndPercentage;
  74.    HWND            hWndFilesProcessed;
  75.    HWND            hWndBytesProcessed;
  76.  
  77.    // Values used to keep track of our progress.
  78.    zusz_t          uzBytesTotalThisFile;
  79.    zusz_t          uzBytesWrittenThisFile;
  80.    zusz_t          uzBytesWrittenPreviousFiles;
  81.    zusz_t          uzFileOffset;
  82.    DWORD           dwFile;
  83.    LPCSTR          szFile;
  84.    BOOL            fNewLineOfText;
  85.  
  86. } EXTRACT_INFO, *LPEXTRACT_INFO;
  87.  
  88. typedef struct _DECRYPT_INFO {
  89.    int    retry;
  90.    LPSTR  szPassword;
  91.    DWORD  nSize;
  92.    LPCSTR szFile;
  93. } DECRYPT_INFO, *LPDECRYPT_INFO;
  94.  
  95. //******************************************************************************
  96. //***** Function Prototypes
  97. //******************************************************************************
  98.  
  99. // Our exposed interface functions to the Info-ZIP core.
  100. int  DoListFiles(LPCSTR szZipFile);
  101. BOOL DoExtractOrTestFiles(LPCSTR szZipFile, EXTRACT_INFO *pei);
  102. int  DoGetComment(LPCSTR szZipFile);
  103. BOOL SetExtractToDirectory(LPTSTR szDirectory);
  104.  
  105. // "Internal" callbacks from Info-ZIP code.
  106. // (The "official" callback functions are declared in the UnZip DLL headers,
  107. // see "unzip.h".)
  108. void WINAPI Wiz_NoPrinting(int f);
  109. int  win_fprintf(zvoid *pG, FILE *file, unsigned int dwCount, char far *buffer);
  110.  
  111.  
  112. //******************************************************************************
  113. //***** Global Variables
  114. //******************************************************************************
  115.  
  116. #ifdef GLOBAL_DECLARE
  117. #undef GLOBAL_DECLARE
  118. #undef GLOBAL_INIT
  119. #endif
  120.  
  121. #ifdef __INTRFACE_CPP__
  122.    #define GLOBAL_DECLARE
  123.    #define GLOBAL_INIT(value) =value
  124. #else
  125.    #define GLOBAL_DECLARE extern
  126.    #define GLOBAL_INIT(value)
  127. #endif
  128.  
  129. GLOBAL_DECLARE jmp_buf         dll_error_return;
  130. GLOBAL_DECLARE LPDCL           lpDCL           GLOBAL_INIT(NULL);
  131. GLOBAL_DECLARE LPUSERFUNCTIONS lpUserFunctions GLOBAL_INIT(NULL);
  132.  
  133. #endif // POCKET_UNZIP
  134.  
  135. #ifdef __cplusplus
  136. } // extern "C"
  137. #endif
  138.  
  139. #endif // __INTRFACE_H__
  140.