home *** CD-ROM | disk | FTP | other *** search
/ Hot Shareware 32 / hot34.iso / ficheros / 9ZIP / TSUZDLL.ZIP / EXAM2 / CLUZ.CPP next >
C/C++ Source or Header  |  1998-04-07  |  4KB  |  119 lines

  1. //---------------------------------------------------------------------------
  2. //Simple example how to use TopSpeed Unzip DLL in C++
  3. //Compiled with Borland C++ Builder 1.0
  4. //(c) TopSpeedSoft, 1998
  5. //Be sure TSUZ.DLL is available in directory.
  6. //---------------------------------------------------------------------------
  7.  
  8. #include <vcl\condefs.h>
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #include <string.h>
  12. #include <io.h>
  13.  
  14. #pragma hdrstop
  15. USERES("cluz.res");
  16.  
  17. //declare TopSpeed API DLL functions
  18. extern "C" {
  19.  __declspec(dllimport)  int __stdcall zCloseZipFile(void);
  20.  __declspec(dllimport)  int __stdcall zOpenZipFile(char *zipfilename);
  21.  __declspec(dllimport)  char *  __stdcall zGetLastErrorAsText(void);
  22.  
  23.  
  24.  __declspec(dllimport)  int __stdcall zCloseZipFile(void);
  25.  __declspec(dllimport)  int __stdcall zGetTotalFiles(void);
  26.  __declspec(dllimport)  int __stdcall zGetTotalBytes(void);
  27.  __declspec(dllimport)  int __stdcall zGetSelectedFiles(void);
  28.  __declspec(dllimport)  int __stdcall zGetSelectedBytes(void);
  29.  __declspec(dllimport)  char *  __stdcall zGetLastErrorAsText(void);
  30.  __declspec(dllimport)  int __stdcall zGetSkipedFiles(void);
  31.  __declspec(dllimport)  bool __stdcall zGetRunTimeInfo(int &ProcessedFiles,int &ProcessedBytes);
  32.  __declspec(dllimport)  bool __stdcall zCancelOperation(void);
  33.  
  34.  __declspec(dllimport)  int __stdcall zExtractOne(int ItemNo,char *ExtractDirectory,char *Password,
  35.   bool OverwriteExisting,bool UseFolders,bool TestOnly,void (__stdcall *RTInfoFunc)(void));
  36.  
  37.  __declspec(dllimport)  int __stdcall zExtractSelected(char *ExtractDirectory,char *Password,
  38.   bool OverwriteExisting,bool UseFolders,bool TestOnly,void (__stdcall *RTInfoFunc)(void));
  39.  
  40.  __declspec(dllimport)  int __stdcall zExtractAll(char *ExtractDirectory,char *Password,
  41.   bool OverwriteExisting,bool UseFolders,bool TestOnly,void (__stdcall *RTInfoFunc)(void));
  42.  
  43.  __declspec(dllimport)  char *  __stdcall zGetFileName(int index);
  44.  __declspec(dllimport)  char *  __stdcall zGetFileExt(int index);
  45.  __declspec(dllimport)  char *  __stdcall zGetFilePath(int index);
  46.  __declspec(dllimport)  int __stdcall zGetFileDate(int index);
  47.  __declspec(dllimport)  int __stdcall zGetFileTime(int index);
  48.  __declspec(dllimport)  int __stdcall zGetFileSize(int index);
  49.  __declspec(dllimport)  int __stdcall zGetCompressedFileSize(int index);
  50.  __declspec(dllimport)  bool __stdcall zFileIsEncrypted(int index);
  51.  __declspec(dllimport)  char *  __stdcall zGetLastOperResult(int index);
  52.  
  53.  __declspec(dllimport)  bool __stdcall zFileIsSelected(int index);
  54.  __declspec(dllimport)  bool __stdcall zSelectFile(int index,bool how);
  55. }
  56.  
  57.  
  58. //show runtime info
  59. void __stdcall ShowProgress(void)
  60. {
  61.   int pf,pb;
  62.   zGetRunTimeInfo(pf,pb);
  63.   printf("Processed %u files, %u bytes\n",pf,pb);
  64. }
  65.  
  66.  
  67. int main(int argc, char **argv)
  68. {
  69.   int i,numitems,tm,dt;
  70.   char s[80];
  71.  
  72. //file name of test zip file.
  73. //change it to point to your zip file
  74.   char *zfn = "c:\\temp\\tst\\x.zip";
  75.  
  76.  
  77.   if (zOpenZipFile(zfn) != 0) {
  78.      printf("%s",zGetLastErrorAsText());
  79.      return 1;
  80.   }
  81.  
  82. //get number of items in zip file
  83.   numitems = zGetTotalFiles();
  84.  
  85. //show the contents of zip file
  86.   for (i=0; i<numitems; i++)
  87.   {
  88.     dt = zGetFileDate(i);
  89.     tm = zGetFileTime(i);
  90.     printf("%u  %s  %u",i,zGetFileName(i),zGetFileSize(i));
  91.     printf("  %u/%u/%u", (dt>>5)&0xf, dt&0x1f, (dt>>9)+1980);
  92.     printf("  %u:%u:%u\n", tm>>11,(tm>>5)&0x3f, (tm&0x1f)<<1);
  93.   }
  94.  
  95.   printf("Press ENTER to continue...");
  96.   gets(s);
  97.  
  98. //extract all files to temp directory
  99.   if (zExtractAll("C:\\TEMP\\","",true,false,false,ShowProgress) != 0) {
  100.      printf("%s",zGetLastErrorAsText());
  101.      return 1;
  102.   }
  103.  
  104. //show the result for each file
  105.   for (i=0; i<numitems; i++)
  106.     printf("%u  %s\n",i,zGetLastOperResult(i));
  107.  
  108.   printf("Press ENTER to continue...");
  109.   gets(s);
  110.  
  111. //close zip file
  112.   zCloseZipFile();
  113.  
  114.   return 0;
  115. }
  116.  
  117.  
  118.  
  119.