home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September / Chip_2002-09_cd1.bin / zkuste / vbasic / Data / Utils / XZipComp.exe / XceedZip.Cab / F112439_XceedZipAPI.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-06-15  |  99.1 KB  |  2,069 lines

  1. #ifndef __XCEEDZIPAPI_H__
  2. #define __XCEEDZIPAPI_H__
  3.  
  4. /*
  5.  * Xceed Zip Compression Library v4 - API declaration
  6.  * Copyright 1998-1999, Xceed Software Inc.
  7.  *
  8.  * Description:
  9.  *    Header file for exported functions of XceedZip.dll. 
  10.  *    For use with direct access to DLL without having to instanciate the ActiveX.
  11.  *
  12.  * Notes on usage:
  13.  *
  14.  * Notes on implementation:
  15.  *
  16.  */
  17.  
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21.  
  22. ////////////////////////////////////////////////////////////////////////////////
  23. // Import declaration
  24. //
  25.  
  26. #define XCD_IMPORT  _declspec( dllimport )
  27. #define XCD_WINAPI  __stdcall
  28.  
  29.  
  30. ////////////////////////////////////////////////////////////////////////////////
  31. // Constants
  32. //
  33.  
  34. #define WM_USER_XCEEDZIPEVENT     ( WM_USER + 1555 )
  35.  
  36. #define XM_LISTINGFILE                 1
  37. #define XM_PREVIEWINGFILE              2
  38. #define XM_INSERTDISK                  3
  39. #define XM_ZIPPREPROCESSINGFILE        4
  40. #define XM_UNZIPPREPROCESSINGFILE      5
  41. #define XM_SKIPPINGFILE                6
  42. #define XM_REMOVINGFILE                7
  43. #define XM_TESTINGFILE                 8
  44. #define XM_FILESTATUS                  9
  45. #define XM_GLOBALSTATUS               10
  46. #define XM_DISKNOTEMPTY               11
  47. #define XM_PROCESSCOMPLETED           12
  48. #define XM_ZIPCOMMENT                 13
  49. #define XM_QUERYMEMORYFILE            14
  50. #define XM_ZIPPINGMEMORYFILE          15
  51. #define XM_UNZIPPINGMEMORYFILE        16
  52. #define XM_WARNING                    17
  53. #define XM_INVALIDPASSWORD            18
  54. #define XM_REPLACINGFILE              19
  55. #define XM_ZIPCONTENTSSTATUS          20
  56. #define XM_DELETINGFILE               21
  57. #define XM_CONVERTPREPROCESSINGFILE   22
  58.  
  59. #define XCD_LASTDISK              0
  60.  
  61.  
  62. ////////////////////////////////////////////////////////////////////////////////
  63. // Data types
  64. //
  65.  
  66. typedef HANDLE  HXCEEDZIP;
  67. typedef HANDLE  HXCEEDCMP;
  68. typedef HANDLE  HXCEEDZIPITEMS;
  69.  
  70. typedef void (CALLBACK *LPFNXCEEDZIPCALLBACK)(WPARAM wXceedMessage, LPARAM lParam);
  71.  
  72.  
  73. typedef enum _xcdSfxButtons
  74. {
  75.   xsbOk             = 0,
  76.   xsbCancel         = 1,
  77.   xsbAbort          = 2,
  78.   xsbSkip           = 3,
  79.   xsbAlwaysSkip     = 4,
  80.   xsbYes            = 5,
  81.   xsbNo             = 6,
  82.   xsbOverwriteAll   = 7,
  83.   xsbOverwriteNone  = 8,
  84.   xsbContinue       = 9,
  85.   xsbExit           = 10,
  86.   xsbAgree          = 11,
  87.   xsbRefuse         = 12
  88. } xcdSfxButtons;
  89.  
  90. typedef enum _xcdSfxMessages
  91. {
  92.   xsmSuccess              = 0,
  93.   xsmFail                 = 1,
  94.   xsmErrorCreatingFolder  = 2,
  95.   xsmIntro                = 3,
  96.   xsmLicense              = 4,
  97.   xsmDestinationFolder    = 5,
  98.   xsmPassword             = 6,
  99.   xsmInsertLastDisk       = 7,
  100.   xsmInsertDisk           = 8,
  101.   xsmAbortUnzip           = 9,
  102.   xsmCreateFolder         = 10,
  103.   xsmOverwrite            = 11,
  104.   xsmProgress             = 12
  105. } xcdSfxMessages;
  106.  
  107. typedef enum _xcdSfxStrings
  108. {
  109.   xssProgressBar    = 0,
  110.   xssTitle          = 1,
  111.   xssCurrentFolder  = 2,
  112.   xssShareName      = 3,
  113.   xssNetwork        = 4
  114. } xcdSfxStrings;
  115.  
  116. typedef enum _xcdValueType
  117. {
  118.   xvtError          = 0,
  119.   xvtWarning        = 1,
  120.   xvtSkippingReason = 2
  121. } xcdValueType;
  122.  
  123. typedef enum _xcdFileAttributes
  124. {
  125.   xfaNone       = 0,
  126.   xfaReadOnly   = 1,
  127.   xfaHidden     = 2,
  128.   xfaSystem     = 4,
  129.   xfaVolume     = 8,
  130.   xfaFolder     = 16,
  131.   xfaArchive    = 32,
  132.   xfaCompressed = 2048
  133. } xcdFileAttributes;
  134.  
  135. typedef enum _xcdWarning
  136. {
  137.   xwrIncompleteWrite            = 300,
  138.   xwrInvalidSignature           = 301,
  139.   xwrInvalidCentralOffset       = 302,
  140.   xwrInvalidLocalOffset         = 303,
  141.   xwrInvalidDescriptorOffset    = 304,
  142.   xwrJunkInZip                  = 305,
  143.   xwrSecurityNotSupported       = 306,
  144.   xwrSecurityGet                = 307,
  145.   xwrSecuritySet                = 308,
  146.   xwrSecuritySize               = 309,
  147.   xwrSecurityVersion            = 310,
  148.   xwrSecurityUnknownCompression = 311,
  149.   xwrSecurityData               = 312,
  150.   xwrUnicodeSize                = 313,
  151.   xwrUnicodeData                = 314,
  152.   xwrExtraHeaderSize            = 315,
  153.   xwrTimeStampSize              = 316,
  154.   xwrTimeStampFlags             = 317,
  155.   xwrFileTimesSize              = 318,
  156.   xwrInvalidFileCount           = 319,
  157.   xwrFileAlreadyOpenWrite       = 320,
  158.   xwrOriginalLocSize            = 321,
  159.   xwrOriginalLocData            = 322,
  160.   // The following enumerations are not yet available in the ActiveX TypeLib
  161.   xwrNoFilesMatched             = 323,
  162.   xwrHeadersDiffer              = 324
  163. } xcdWarning;
  164.  
  165. typedef enum _xcdError
  166. {
  167.   xerSuccess                = 0,
  168.   xerProcessStarted         = 1,
  169.   xerEmptyZipFile           = 500,
  170.   xerSeekInZipFile          = 501,
  171.   xerEndOfZipFile           = 502,
  172.   xerOpenZipFile            = 503,
  173.   xerCreateTempFile         = 504,
  174.   xerReadZipFile            = 505,
  175.   xerWriteTempZipFile       = 506,
  176.   xerWriteZipFile           = 507,
  177.   xerMoveTempFile           = 508,
  178.   xerNothingToDo            = 509,
  179.   xerCannotUpdateAndSpan    = 510,
  180.   xerMemory                 = 511,
  181.   xerSplitSizeTooSmall      = 512,
  182.   xerSfxBinaryNotFound      = 513,
  183.   xerReadSfxBinary          = 514,
  184.   xerCannotUpdateSpanned    = 515,
  185.   xerBusy                   = 516,
  186.   xerInsertDiskAbort        = 517,
  187.   xerUserAbort              = 518,
  188.   xerNotAZipFile            = 519,
  189.   xerUninitializedString    = 520,
  190.   xerUninitializedArray     = 521,
  191.   xerInvalidArrayDimensions = 522,
  192.   xerInvalidArrayType       = 523,
  193.   xerCannotAccessArray      = 524,
  194.   xerUnsupportedDataType    = 525,
  195.   xerWarnings               = 526,
  196.   xerFilesSkipped           = 527,
  197.   xerDiskNotEmptyAbort      = 528,
  198.   xerRemoveWithoutTemp      = 529,
  199.   xerNotLicensed            = 530,
  200.   xerInvalidSfxProperty     = 531,
  201.   xerInternalError          = 999
  202. } xcdError;
  203.  
  204. typedef enum _xcdSkippingReason
  205. {
  206.   xsrIncluded               = 0,
  207.   xsrFilesToExclude         = 1,
  208.   xsrSkipExisting           = 2,
  209.   xsrSkipNotExisting        = 3,
  210.   xsrSkipOlderDate          = 4,
  211.   xsrSkipOlderVersion       = 5,
  212.   xsrRequiredAttributes     = 6,
  213.   xsrExcludedAttributes     = 7,
  214.   xsrMinDate                = 8,
  215.   xsrMaxDate                = 9,
  216.   xsrMinSize                = 10,
  217.   xsrMaxSize                = 11,
  218.   xsrSkipUser               = 12,
  219.   xsrDuplicateFilenames     = 13,
  220.   xsrSkipReplace            = 14,
  221.   xsrUpdateWithoutTemp      = 15,
  222.   xsrInvalidDiskNumber      = 100,
  223.   xsrFolderWithSize         = 101,
  224.   xsrWriteFile              = 102,
  225.   xsrOpenFile               = 103,
  226.   xsrReadFile               = 104,
  227.   xsrMoveFile               = 105,
  228.   xsrInvalidPassword        = 106,
  229.   xsrInvalidCRC             = 107,
  230.   xsrInvalidUncompSize      = 108,
  231.   xsrCentralHeaderData      = 109,
  232.   xsrLocalHeaderData        = 110,
  233.   xsrDescriptorHeaderData   = 111,
  234.   xsrCreateFolder           = 112,
  235.   xsrAccessDenied           = 113,
  236.   xsrCreateFile             = 114,
  237.   xsrRenamedToExisting      = 116,
  238.   xsrVolumeWithSize         = 117,
  239.   xsrCannotSetVolumeLabel   = 118,
  240.   xsrCentralHeaderNotFound  = 119,
  241.   xsrUnzipDiskFull          = 120,
  242.   xsrCompress               = 121,
  243.   xsrUncompress             = 122
  244. } xcdSkippingReason;
  245.  
  246. typedef enum _xcdDiskSpanning
  247. {
  248.   xdsNever                = 0,
  249.   xdsAlways               = 1,
  250.   xdsRemovableDrivesOnly  = 2
  251. } xcdDiskSpanning;
  252.  
  253. typedef enum _xcdExtraHeader
  254. {
  255.   xehNone               = 0,
  256.   xehExtTimeStamp       = 1,
  257.   xehFileTimes          = 2,
  258.   xehSecurityDescriptor = 4,
  259.   xehUnicode            = 8
  260. } xcdExtraHeader;
  261.  
  262. typedef enum _xcdSfxExistingFileBehavior
  263. {
  264.   xseAsk        = 0,
  265.   xseSkip       = 1,
  266.   xseOverwrite  = 2
  267. } xcdSfxExistingFileBehavior;
  268.  
  269. typedef enum _xcdCurrentOperation
  270. {
  271.   xcoIdle               = 0,
  272.   xcoPreviewing         = 1,
  273.   xcoListing            = 2,
  274.   xcoZipping            = 3,
  275.   xcoUnzipping          = 4,
  276.   xcoRemoving           = 5,
  277.   xcoTestingZipFile     = 6,
  278.   xcoGettingInformation = 7,
  279.   xcoConverting         = 8
  280. } xcdCurrentOperation;
  281.  
  282. typedef enum _xcdUnzipDestination
  283. {
  284.   xudDisk         = 0,
  285.   xudMemory       = 1,
  286.   xudMemoryStream = 2
  287. } xcdUnzipDestination;
  288.  
  289. typedef enum _xcdCommonDiskSize
  290. {
  291.   xcsFloppy3p5HD    = 1457664,
  292.   xcsFloppy3p5DD    = 730112,
  293.   xcsFloppy3p5XD    = 3019898,
  294.   xcsFloppy5p25HD   = 1310720,
  295.   xcsFloppy5p25DD   = 655360,
  296.   xcsIomegaZip      = 100431872,
  297.   xcsIomegaJazz1G   = 1121976320,
  298.   xcsIomegaJazz2G   = 2099249152,
  299.   xcsSyquestEzFlyer = 241172480,
  300.   xcsSyquestSyjet   = 1610612736,
  301.   xcsSyquestSparQ   = 1073741824,
  302.   xcsCDR            = 681574400
  303. } xcdCommonDiskSize;
  304.  
  305. typedef enum _xcdCompressionError
  306. {
  307.   xceSuccess          = 0,
  308.   xceSessionOpened    = 1000,
  309.   xceInitCompression  = 1001,
  310.   xceUnknownMethod    = 1002,
  311.   xceCompression      = 1003,
  312.   xceInvalidPassword  = 1004,
  313.   xceChecksumFailed   = 1005,
  314.   xceDataRemaining    = 1006,
  315.   xceNotLicensed      = 1007,
  316.   xceBusy             = 1008
  317. } xcdCompressionError;
  318.  
  319. typedef enum _xcdCompressionMethod
  320. {
  321.   xcmStored         = 0,
  322.   xcmDeflated       = 8,
  323.   xcmBurrowWheeler  = 18
  324. } xcdCompressionMethod;
  325.  
  326. typedef enum _xcdNotEmptyAction
  327. {
  328.   xnaErase      = 0,
  329.   xnaAppend     = 1,
  330.   xnaAskAnother = 2,
  331.   xnaAbort      = 3
  332. } xcdNotEmptyAction;
  333.  
  334. typedef enum _xcdCompressionLevel
  335. {
  336.   xclNone   = 0,
  337.   xclLow    = 1,
  338.   xclMedium = 6,
  339.   xclHigh   = 9
  340. } xcdCompressionLevel;
  341.  
  342. typedef enum _xcdEvents
  343. {
  344.   xevNone                     = 0x00000000,
  345.   xevListingFile              = 0x00000001,
  346.   xevPreviewingFile           = 0x00000002,
  347.   xevInsertDisk               = 0x00000004,
  348.   xevZipPreprocessingFile     = 0x00000008,
  349.   xevUnzipPreprocessingFile   = 0x00000010,
  350.   xevSkippingFile             = 0x00000020,
  351.   xevRemovingFile             = 0x00000040,
  352.   xevTestingFile              = 0x00000080,
  353.   xevFileStatus               = 0x00000100,
  354.   xevGlobalStatus             = 0x00000200,
  355.   xevDiskNotEmpty             = 0x00000400,
  356.   xevProcessCompleted         = 0x00000800,
  357.   xevZipComment               = 0x00001000,
  358.   xevQueryMemoryFile          = 0x00002000,
  359.   xevZippingMemoryFile        = 0x00004000,
  360.   xevUnzippingMemoryFile      = 0x00008000,
  361.   xevWarning                  = 0x00010000,
  362.   xevInvalidPassword          = 0x00020000,
  363.   xevReplacingFile            = 0x00040000,
  364.   xevZipContentsStatus        = 0x00080000,
  365.   xevDeletingFile             = 0x00100000,
  366.   xevConvertPreprocessingFile = 0x00200000,
  367.   xevAll                      = 0x7fffffff
  368. }    xcdEvents;
  369.  
  370.  
  371. ////////////////////////////////////////////////////////////////////////////////
  372. // Typedefs for all exported functions for easy GetProcAddress
  373. //
  374.  
  375. typedef BOOL      ( XCD_WINAPI *LPFNXCEEDZIPINITDLL )( void );
  376. typedef BOOL      ( XCD_WINAPI *LPFNXCEEDZIPSHUTDOWNDLL )( void );
  377. typedef HXCEEDZIP ( XCD_WINAPI *LPFNXZCREATEXCEEDZIPA )( const char* );
  378. typedef HXCEEDZIP ( XCD_WINAPI *LPFNXZCREATEXCEEDZIPW )( const WCHAR* );
  379. typedef void      ( XCD_WINAPI *LPFNXZDESTROYXCEEDZIP )( HXCEEDZIP );
  380. typedef HXCEEDCMP ( XCD_WINAPI *LPFNXCCREATEXCEEDCOMPRESSIONA )( const char* );
  381. typedef HXCEEDCMP ( XCD_WINAPI *LPFNXCCREATEXCEEDCOMPRESSIONW )( const WCHAR* );
  382. typedef void      ( XCD_WINAPI *LPFNXCDESTROYXCEEDCOMPRESSION )( HXCEEDZIP );
  383. typedef void      ( XCD_WINAPI *LPFNXZIDESTROYXCEEDZIPITEMS )( HXCEEDZIPITEMS );
  384. typedef void      ( XCD_WINAPI *LPFNXZSETXCEEDZIPCALLBACK )( HXCEEDZIP, LPFNXCEEDZIPCALLBACK );
  385. typedef void      ( XCD_WINAPI *LPFNXZSETXCEEDZIPWINDOW )( HXCEEDZIP, HWND );
  386. typedef BYTE*     ( XCD_WINAPI *LPFNXZALLOC )( DWORD );
  387. typedef void      ( XCD_WINAPI *LPFNXZFREE )( BYTE* );
  388.  
  389. typedef BOOL  ( XCD_WINAPI *LPFNXZGETABORT )( HXCEEDZIP );
  390. typedef void  ( XCD_WINAPI *LPFNXZSETABORT )( HXCEEDZIP, BOOL );
  391. typedef BOOL  ( XCD_WINAPI *LPFNXZGETBACKGROUNDPROCESSING )( HXCEEDZIP );
  392. typedef void  ( XCD_WINAPI *LPFNXZSETBACKGROUNDPROCESSING )( HXCEEDZIP, BOOL );
  393. typedef UINT  ( XCD_WINAPI *LPFNXZGETBASEPATHW )( HXCEEDZIP, WCHAR*, UINT );
  394. typedef UINT  ( XCD_WINAPI *LPFNXZGETBASEPATHA )( HXCEEDZIP, char*, UINT );
  395. typedef void  ( XCD_WINAPI *LPFNXZSETBASEPATHW )( HXCEEDZIP, const WCHAR* );
  396. typedef void  ( XCD_WINAPI *LPFNXZSETBASEPATHA )( HXCEEDZIP, const char* );
  397. typedef UINT  ( XCD_WINAPI *LPFNXZGETCOMPRESSIONLEVEL )( HXCEEDZIP );
  398. typedef void  ( XCD_WINAPI *LPFNXZSETCOMPRESSIONLEVEL )( HXCEEDZIP, UINT );
  399. typedef UINT  ( XCD_WINAPI *LPFNXZGETCURRENTOPERATION )( HXCEEDZIP );
  400. typedef UINT  ( XCD_WINAPI *LPFNXZGETENCRYPTIONPASSWORDW )( HXCEEDZIP, WCHAR*, UINT );
  401. typedef UINT  ( XCD_WINAPI *LPFNXZGETENCRYPTIONPASSWORDA )( HXCEEDZIP, char*,   UINT );
  402. typedef void  ( XCD_WINAPI *LPFNXZSETENCRYPTIONPASSWORDW )( HXCEEDZIP, const WCHAR* );
  403. typedef void  ( XCD_WINAPI *LPFNXZSETENCRYPTIONPASSWORDA )( HXCEEDZIP, const char* );
  404. typedef DWORD ( XCD_WINAPI *LPFNXZGETEXCLUDEDFILEATTRIBUTES )( HXCEEDZIP );
  405. typedef void  ( XCD_WINAPI *LPFNXZSETEXCLUDEDFILEATTRIBUTES )( HXCEEDZIP, DWORD );
  406. typedef UINT  ( XCD_WINAPI *LPFNXZGETEXTRAHEADERS )( HXCEEDZIP );
  407. typedef void  ( XCD_WINAPI *LPFNXZSETEXTRAHEADERS )( HXCEEDZIP, UINT );
  408. typedef UINT  ( XCD_WINAPI *LPFNXZGETFILESTOEXCLUDEW )( HXCEEDZIP, WCHAR*, UINT );
  409. typedef UINT  ( XCD_WINAPI *LPFNXZGETFILESTOEXCLUDEA )( HXCEEDZIP, char*, UINT );
  410. typedef void  ( XCD_WINAPI *LPFNXZSETFILESTOEXCLUDEW )( HXCEEDZIP, const WCHAR* );
  411. typedef void  ( XCD_WINAPI *LPFNXZSETFILESTOEXCLUDEA )( HXCEEDZIP, const char* );
  412. typedef UINT  ( XCD_WINAPI *LPFNXZGETFILESTOPROCESSW )( HXCEEDZIP, WCHAR*, UINT );
  413. typedef UINT  ( XCD_WINAPI *LPFNXZGETFILESTOPROCESSA )( HXCEEDZIP, char*, UINT );
  414. typedef void  ( XCD_WINAPI *LPFNXZSETFILESTOPROCESSW )( HXCEEDZIP, const WCHAR* );
  415. typedef void  ( XCD_WINAPI *LPFNXZSETFILESTOPROCESSA )( HXCEEDZIP, const char* );
  416. typedef void  ( XCD_WINAPI *LPFNXZGETMAXDATETOPROCESS )( HXCEEDZIP, LPSYSTEMTIME );
  417. typedef void  ( XCD_WINAPI *LPFNXZSETMAXDATETOPROCESS )( HXCEEDZIP, const LPSYSTEMTIME );
  418. typedef DWORD ( XCD_WINAPI *LPFNXZGETMAXSIZETOPROCESS )( HXCEEDZIP );
  419. typedef void  ( XCD_WINAPI *LPFNXZSETMAXSIZETOPROCESS )( HXCEEDZIP, DWORD );
  420. typedef void  ( XCD_WINAPI *LPFNXZGETMINDATETOPROCESS )( HXCEEDZIP, LPSYSTEMTIME );
  421. typedef void  ( XCD_WINAPI *LPFNXZSETMINDATETOPROCESS )( HXCEEDZIP, const LPSYSTEMTIME );
  422. typedef DWORD ( XCD_WINAPI *LPFNXZGETMINSIZETOPROCESS )( HXCEEDZIP );
  423. typedef void  ( XCD_WINAPI *LPFNXZSETMINSIZETOPROCESS )( HXCEEDZIP, DWORD );
  424. typedef BOOL  ( XCD_WINAPI *LPFNXZGETPRESERVEPATHS )( HXCEEDZIP );
  425. typedef void  ( XCD_WINAPI *LPFNXZSETPRESERVEPATHS )( HXCEEDZIP, BOOL );
  426. typedef BOOL  ( XCD_WINAPI *LPFNXZGETPROCESSSUBFOLDERS )( HXCEEDZIP );
  427. typedef void  ( XCD_WINAPI *LPFNXZSETPROCESSSUBFOLDERS )( HXCEEDZIP, BOOL );
  428. typedef DWORD ( XCD_WINAPI *LPFNXZGETREQUIREDFILEATTRIBUTES )( HXCEEDZIP );
  429. typedef void  ( XCD_WINAPI *LPFNXZSETREQUIREDFILEATTRIBUTES )( HXCEEDZIP, DWORD );
  430. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXBINARYMODULEW )( HXCEEDZIP, WCHAR*, UINT );
  431. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXBINARYMODULEA )( HXCEEDZIP, char*, UINT );
  432. typedef void  ( XCD_WINAPI *LPFNXZSETSFXBINARYMODULEW )( HXCEEDZIP, const WCHAR* );
  433. typedef void  ( XCD_WINAPI *LPFNXZSETSFXBINARYMODULEA )( HXCEEDZIP, const char* );
  434. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXBUTTONSW )( HXCEEDZIP, xcdSfxButtons xIndex, WCHAR* pwszBuffer, UINT uMaxLength );
  435. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXBUTTONSA )( HXCEEDZIP, xcdSfxButtons xIndex, char* pszBuffer, UINT uMaxLength );
  436. typedef void  ( XCD_WINAPI *LPFNXZSETSFXBUTTONSW )( HXCEEDZIP, xcdSfxButtons xIndex, const WCHAR* pwszValue );
  437. typedef void  ( XCD_WINAPI *LPFNXZSETSFXBUTTONSA )( HXCEEDZIP, xcdSfxButtons xIndex, const char* pszValue );
  438. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXDEFAULTPASSWORDW )( HXCEEDZIP, WCHAR* pwszBuffer, UINT uMaxLength );
  439. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXDEFAULTPASSWORDA )( HXCEEDZIP, char* pszBuffer,   UINT uMaxLength );
  440. typedef void  ( XCD_WINAPI *LPFNXZSETSFXDEFAULTPASSWORDW )( HXCEEDZIP, const WCHAR* pwszValue );
  441. typedef void  ( XCD_WINAPI *LPFNXZSETSFXDEFAULTPASSWORDA )( HXCEEDZIP, const char* pszValue );
  442. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXDEFAULTUNZIPTOFOLDERW )( HXCEEDZIP, WCHAR* pwszBuffer, UINT uMaxLength );
  443. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXDEFAULTUNZIPTOFOLDERA )( HXCEEDZIP, char* pszBuffer,   UINT uMaxLength );
  444. typedef void  ( XCD_WINAPI *LPFNXZSETSFXDEFAULTUNZIPTOFOLDERW )( HXCEEDZIP, const WCHAR* pwszValue );
  445. typedef void  ( XCD_WINAPI *LPFNXZSETSFXDEFAULTUNZIPTOFOLDERA )( HXCEEDZIP, const char* pszValue );
  446. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXEXISTINGFILEBEHAVIOR )( HXCEEDZIP );
  447. typedef void  ( XCD_WINAPI *LPFNXZSETSFXEXISTINGFILEBEHAVIOR )( HXCEEDZIP, UINT uValue );
  448. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXEXTENSIONSTOASSOCIATEW )( HXCEEDZIP, WCHAR* pwszBuffer, UINT uMaxLength );
  449. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXEXTENSIONSTOASSOCIATEA )( HXCEEDZIP, char* pszBuffer,   UINT uMaxLength );
  450. typedef void  ( XCD_WINAPI *LPFNXZSETSFXEXTENSIONSTOASSOCIATEW )( HXCEEDZIP, const WCHAR* pwszValue );
  451. typedef void  ( XCD_WINAPI *LPFNXZSETSFXEXTENSIONSTOASSOCIATEA )( HXCEEDZIP, const char* pszValue );
  452. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXEXECUTEAFTERW )( HXCEEDZIP, WCHAR* pwszBuffer, UINT uMaxLength );
  453. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXEXECUTEAFTERA )( HXCEEDZIP, char* pszBuffer,   UINT uMaxLength );
  454. typedef void  ( XCD_WINAPI *LPFNXZSETSFXEXECUTEAFTERW )( HXCEEDZIP, const WCHAR* pwszValue );
  455. typedef void  ( XCD_WINAPI *LPFNXZSETSFXEXECUTEAFTERA )( HXCEEDZIP, const char* pszValue );
  456. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXICONFILENAMEW )( HXCEEDZIP, WCHAR* pwszBuffer, UINT uMaxLength );
  457. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXICONFILENAMEA )( HXCEEDZIP, char* pszBuffer,   UINT uMaxLength );
  458. typedef void  ( XCD_WINAPI *LPFNXZSETSFXICONFILENAMEW )( HXCEEDZIP, const WCHAR* pwszValue );
  459. typedef void  ( XCD_WINAPI *LPFNXZSETSFXICONFILENAMEA )( HXCEEDZIP, const char* pszValue );
  460. typedef BOOL  ( XCD_WINAPI *LPFNXZGETSFXINSTALLMODE )( HXCEEDZIP );
  461. typedef void  ( XCD_WINAPI *LPFNXZSETSFXINSTALLMODE )( HXCEEDZIP, BOOL bValue );
  462. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXMESSAGESW )( HXCEEDZIP, xcdSfxMessages xIndex, WCHAR* pwszBuffer, UINT uMaxLength );
  463. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXMESSAGESA )( HXCEEDZIP, xcdSfxMessages xIndex, char* pszBuffer,   UINT uMaxLength );
  464. typedef void  ( XCD_WINAPI *LPFNXZSETSFXMESSAGESW )( HXCEEDZIP, xcdSfxMessages xIndex, const WCHAR* pwszValue );
  465. typedef void  ( XCD_WINAPI *LPFNXZSETSFXMESSAGESA )( HXCEEDZIP, xcdSfxMessages xIndex, const char* pszValue );
  466. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXPROGRAMGROUPW )( HXCEEDZIP, WCHAR* pwszBuffer, UINT uMaxLength );
  467. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXPROGRAMGROUPA )( HXCEEDZIP, char* pszBuffer,   UINT uMaxLength );
  468. typedef void  ( XCD_WINAPI *LPFNXZSETSFXPROGRAMGROUPW )( HXCEEDZIP, const WCHAR* pwszValue );
  469. typedef void  ( XCD_WINAPI *LPFNXZSETSFXPROGRAMGROUPA )( HXCEEDZIP, const char* pszValue );
  470. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXPROGRAMGROUPITEMSW )( HXCEEDZIP, WCHAR* pwszBuffer, UINT uMaxLength );
  471. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXPROGRAMGROUPITEMSA )( HXCEEDZIP, char* pszBuffer,   UINT uMaxLength );
  472. typedef void  ( XCD_WINAPI *LPFNXZSETSFXPROGRAMGROUPITEMSW )( HXCEEDZIP, const WCHAR* pwszValue );
  473. typedef void  ( XCD_WINAPI *LPFNXZSETSFXPROGRAMGROUPITEMSA )( HXCEEDZIP, const char* pszValue );
  474. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXREADMEFILEW )( HXCEEDZIP, WCHAR* pwszBuffer, UINT uMaxLength );
  475. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXREADMEFILEA )( HXCEEDZIP, char* pszBuffer,   UINT uMaxLength );
  476. typedef void  ( XCD_WINAPI *LPFNXZSETSFXREADMEFILEW )( HXCEEDZIP, const WCHAR* pwszValue );
  477. typedef void  ( XCD_WINAPI *LPFNXZSETSFXREADMEFILEA )( HXCEEDZIP, const char* pszValue );
  478. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXSTRINGSW )( HXCEEDZIP, xcdSfxStrings xIndex, WCHAR* pwszBuffer, UINT uMaxLength );
  479. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXSTRINGSA )( HXCEEDZIP, xcdSfxStrings xIndex, char* pszBuffer,   UINT uMaxLength );
  480. typedef void  ( XCD_WINAPI *LPFNXZSETSFXSTRINGSW )( HXCEEDZIP, xcdSfxStrings xIndex, const WCHAR* pwszValue );
  481. typedef void  ( XCD_WINAPI *LPFNXZSETSFXSTRINGSA )( HXCEEDZIP, xcdSfxStrings xIndex, const char* pszValue );
  482. typedef BOOL  ( XCD_WINAPI *LPFNXZGETSKIPIFEXISTING )( HXCEEDZIP );
  483. typedef void  ( XCD_WINAPI *LPFNXZSETSKIPIFEXISTING )( HXCEEDZIP, BOOL bValue );
  484. typedef BOOL  ( XCD_WINAPI *LPFNXZGETSKIPIFNOTEXISTING )( HXCEEDZIP );
  485. typedef void  ( XCD_WINAPI *LPFNXZSETSKIPIFNOTEXISTING )( HXCEEDZIP, BOOL bValue );
  486. typedef BOOL  ( XCD_WINAPI *LPFNXZGETSKIPIFOLDERDATE )( HXCEEDZIP );
  487. typedef void  ( XCD_WINAPI *LPFNXZSETSKIPIFOLDERDATE )( HXCEEDZIP, BOOL bValue );
  488. typedef BOOL  ( XCD_WINAPI *LPFNXZGETSKIPIFOLDERVERSION )( HXCEEDZIP );
  489. typedef void  ( XCD_WINAPI *LPFNXZSETSKIPIFOLDERVERSION )( HXCEEDZIP, BOOL bValue );
  490. typedef UINT  ( XCD_WINAPI *LPFNXZGETSPANMULTIPLEDISKS )( HXCEEDZIP );
  491. typedef void  ( XCD_WINAPI *LPFNXZSETSPANMULTIPLEDISKS )( HXCEEDZIP, UINT uValue );
  492. typedef DWORD ( XCD_WINAPI *LPFNXZGETSPLITSIZE )( HXCEEDZIP );
  493. typedef void  ( XCD_WINAPI *LPFNXZSETSPLITSIZE )( HXCEEDZIP, DWORD dwValue );
  494. typedef UINT  ( XCD_WINAPI *LPFNXZGETTEMPFOLDERW )( HXCEEDZIP, WCHAR* pwszBuffer, UINT uMaxLength );
  495. typedef UINT  ( XCD_WINAPI *LPFNXZGETTEMPFOLDERA )( HXCEEDZIP, char* pszBuffer,   UINT uMaxLength );
  496. typedef void  ( XCD_WINAPI *LPFNXZSETTEMPFOLDERW )( HXCEEDZIP, const WCHAR* pwszValue );
  497. typedef void  ( XCD_WINAPI *LPFNXZSETTEMPFOLDERA )( HXCEEDZIP, const char* pszValue );
  498. typedef UINT  ( XCD_WINAPI *LPFNXZGETUNZIPTOFOLDERW )( HXCEEDZIP, WCHAR* pwszBuffer, UINT uMaxLength );
  499. typedef UINT  ( XCD_WINAPI *LPFNXZGETUNZIPTOFOLDERA )( HXCEEDZIP, char* pszBuffer,   UINT uMaxLength );
  500. typedef void  ( XCD_WINAPI *LPFNXZSETUNZIPTOFOLDERW )( HXCEEDZIP, const WCHAR* pwszValue );
  501. typedef void  ( XCD_WINAPI *LPFNXZSETUNZIPTOFOLDERA )( HXCEEDZIP, const char* pszValue );
  502. typedef BOOL  ( XCD_WINAPI *LPFNXZGETUSETEMPFILE )( HXCEEDZIP );
  503. typedef void  ( XCD_WINAPI *LPFNXZSETUSETEMPFILE )( HXCEEDZIP, BOOL bValue );
  504. typedef UINT  ( XCD_WINAPI *LPFNXZGETZIPFILENAMEW )( HXCEEDZIP, WCHAR* pwszBuffer, UINT uMaxLength );
  505. typedef UINT  ( XCD_WINAPI *LPFNXZGETZIPFILENAMEA )( HXCEEDZIP, char* pszBuffer,   UINT uMaxLength );
  506. typedef void  ( XCD_WINAPI *LPFNXZSETZIPFILENAMEW )( HXCEEDZIP, const WCHAR* pwszValue );
  507. typedef void  ( XCD_WINAPI *LPFNXZSETZIPFILENAMEA )( HXCEEDZIP, const char* pszValue );
  508. typedef BOOL  ( XCD_WINAPI *LPFNXZGETZIPOPENEDFILES )( HXCEEDZIP );
  509. typedef void  ( XCD_WINAPI *LPFNXZSETZIPOPENEDFILES )( HXCEEDZIP, BOOL bValue );
  510. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXFILESTOCOPYW )( HXCEEDZIP, WCHAR* pwszBuffer, UINT uMaxLength );
  511. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXFILESTOCOPYA )( HXCEEDZIP, char* pszBuffer,   UINT uMaxLength );
  512. typedef void  ( XCD_WINAPI *LPFNXZSETSFXFILESTOCOPYW )( HXCEEDZIP, const WCHAR* pwszValue );
  513. typedef void  ( XCD_WINAPI *LPFNXZSETSFXFILESTOCOPYA )( HXCEEDZIP, const char* pszValue );
  514. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXFILESTOREGISTERW )( HXCEEDZIP, WCHAR* pwszBuffer, UINT uMaxLength );
  515. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXFILESTOREGISTERA )( HXCEEDZIP, char* pszBuffer,   UINT uMaxLength );
  516. typedef void  ( XCD_WINAPI *LPFNXZSETSFXFILESTOREGISTERW )( HXCEEDZIP, const WCHAR* pwszValue );
  517. typedef void  ( XCD_WINAPI *LPFNXZSETSFXFILESTOREGISTERA )( HXCEEDZIP, const char* pszValue );
  518. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXREGISTRYKEYSW )( HXCEEDZIP, WCHAR* pwszBuffer, UINT uMaxLength );
  519. typedef UINT  ( XCD_WINAPI *LPFNXZGETSFXREGISTRYKEYSA )( HXCEEDZIP, char* pszBuffer,   UINT uMaxLength );
  520. typedef void  ( XCD_WINAPI *LPFNXZSETSFXREGISTRYKEYSW )( HXCEEDZIP, const WCHAR* pwszValue );
  521. typedef void  ( XCD_WINAPI *LPFNXZSETSFXREGISTRYKEYSA )( HXCEEDZIP, const char* pszValue );
  522. typedef BOOL  ( XCD_WINAPI *LPFNXZGETDELETEZIPPEDFILES )( HXCEEDZIP );
  523. typedef void  ( XCD_WINAPI *LPFNXZSETDELETEZIPPEDFILES )( HXCEEDZIP, BOOL );
  524. typedef DWORD ( XCD_WINAPI *LPFNXZGETFIRSTDISKFREESPACE )( HXCEEDZIP );
  525. typedef void  ( XCD_WINAPI *LPFNXZSETFIRSTDISKFREESPACE )( HXCEEDZIP, DWORD dwValue );
  526. typedef DWORD ( XCD_WINAPI *LPFNXZGETMINDISKFREESPACE )( HXCEEDZIP );
  527. typedef void  ( XCD_WINAPI *LPFNXZSETMINDISKFREESPACE )( HXCEEDZIP, DWORD dwValue );
  528. typedef DWORD ( XCD_WINAPI *LPFNXZGETEVENTSTOTRIGGER )( HXCEEDZIP );
  529. typedef void  ( XCD_WINAPI *LPFNXZSETEVENTSTOTRIGGER )( HXCEEDZIP, DWORD dwValue );
  530. typedef UINT  ( XCD_WINAPI *LPFNXZGETCOMPRESSIONMETHOD )( HXCEEDZIP );
  531. typedef void  ( XCD_WINAPI *LPFNXZSETCOMPRESSIONMETHOD )( HXCEEDZIP, UINT );
  532.  
  533. typedef UINT  ( XCD_WINAPI *LPFNXCGETENCRYPTIONPASSWORDW )( HXCEEDCMP, WCHAR*, UINT );
  534. typedef UINT  ( XCD_WINAPI *LPFNXCGETENCRYPTIONPASSWORDA )( HXCEEDCMP, char*, UINT );
  535. typedef void  ( XCD_WINAPI *LPFNXCSETENCRYPTIONPASSWORDW )( HXCEEDCMP, const WCHAR* );
  536. typedef void  ( XCD_WINAPI *LPFNXCSETENCRYPTIONPASSWORDA )( HXCEEDCMP, const char* );
  537. typedef int   ( XCD_WINAPI *LPFNXCGETCOMPRESSIONLEVEL )( HXCEEDCMP );
  538. typedef void  ( XCD_WINAPI *LPFNXCSETCOMPRESSIONLEVEL )( HXCEEDCMP, int );
  539. typedef UINT  ( XCD_WINAPI *LPFNXCGETCOMPRESSIONMETHOD )( HXCEEDCMP );
  540. typedef void  ( XCD_WINAPI *LPFNXCSETCOMPRESSIONMETHOD )( HXCEEDCMP, UINT );
  541.  
  542. typedef void  ( XCD_WINAPI *LPFNXZADDFILESTOPROCESSW )( HXCEEDZIP, const WCHAR* );
  543. typedef void  ( XCD_WINAPI *LPFNXZADDFILESTOPROCESSA )( HXCEEDZIP, const char* );
  544. typedef void  ( XCD_WINAPI *LPFNXZADDFILESTOEXCLUDEW )( HXCEEDZIP, const WCHAR* );
  545. typedef void  ( XCD_WINAPI *LPFNXZADDFILESTOEXCLUDEA )( HXCEEDZIP, const char* );
  546. typedef int   ( XCD_WINAPI *LPFNXZCONVERTW )( HXCEEDZIP, const WCHAR* );
  547. typedef int   ( XCD_WINAPI *LPFNXZCONVERTA )( HXCEEDZIP, const char* );
  548. typedef UINT  ( XCD_WINAPI *LPFNXZGETERRORDESCRIPTIONW )( HXCEEDZIP, xcdValueType, int, WCHAR*, UINT );
  549. typedef UINT  ( XCD_WINAPI *LPFNXZGETERRORDESCRIPTIONA )( HXCEEDZIP, xcdValueType, int, char*,   UINT );
  550. typedef int   ( XCD_WINAPI *LPFNXZGETZIPFILEINFORMATION )( HXCEEDZIP, LONG*, LONG*, LONG*, SHORT*, BOOL* );
  551. typedef int   ( XCD_WINAPI *LPFNXZLISTZIPCONTENTS )( HXCEEDZIP );
  552. typedef int   ( XCD_WINAPI *LPFNXZPREVIEWFILES )( HXCEEDZIP, BOOL );
  553. typedef int   ( XCD_WINAPI *LPFNXZREMOVEFILES )( HXCEEDZIP );
  554. typedef void  ( XCD_WINAPI *LPFNXZSFXADDEXTENSIONTOASSOCIATEW )( HXCEEDZIP, const WCHAR*, const WCHAR*, const WCHAR* );
  555. typedef void  ( XCD_WINAPI *LPFNXZSFXADDEXTENSIONTOASSOCIATEA )( HXCEEDZIP, const char*,   const char*,   const char* );
  556. typedef void  ( XCD_WINAPI *LPFNXZSFXADDPROGRAMGROUPITEMW )( HXCEEDZIP, const WCHAR*, const WCHAR* );
  557. typedef void  ( XCD_WINAPI *LPFNXZSFXADDPROGRAMGROUPITEMA )( HXCEEDZIP, const char*,   const char* );
  558. typedef void  ( XCD_WINAPI *LPFNXZSFXCLEARBUTTONS )( HXCEEDZIP );
  559. typedef void  ( XCD_WINAPI *LPFNXZSFXCLEARMESSAGES )( HXCEEDZIP );
  560. typedef void  ( XCD_WINAPI *LPFNXZSFXCLEARSTRINGS )( HXCEEDZIP );
  561. typedef BOOL  ( XCD_WINAPI *LPFNXZSFXLOADCONFIGW )( HXCEEDZIP, const WCHAR* );
  562. typedef BOOL  ( XCD_WINAPI *LPFNXZSFXLOADCONFIGA )( HXCEEDZIP, const char* );
  563. typedef BOOL  ( XCD_WINAPI *LPFNXZSFXSAVECONFIGW )( HXCEEDZIP, const WCHAR* );
  564. typedef BOOL  ( XCD_WINAPI *LPFNXZSFXSAVECONFIGA )( HXCEEDZIP, const char* );
  565. typedef void  ( XCD_WINAPI *LPFNXZSFXRESETBUTTONS )( HXCEEDZIP );
  566. typedef void  ( XCD_WINAPI *LPFNXZSFXRESETMESSAGES )( HXCEEDZIP );
  567. typedef void  ( XCD_WINAPI *LPFNXZSFXRESETSTRINGS )( HXCEEDZIP );
  568. typedef int   ( XCD_WINAPI *LPFNXZTESTZIPFILE )( HXCEEDZIP, BOOL );
  569. typedef int   ( XCD_WINAPI *LPFNXZUNZIP )( HXCEEDZIP );
  570. typedef int   ( XCD_WINAPI *LPFNXZZIP )( HXCEEDZIP );
  571. typedef void  ( XCD_WINAPI *LPFNXZSFXADDEXECUTEAFTERW )( HXCEEDZIP, const WCHAR*, const WCHAR* );
  572. typedef void  ( XCD_WINAPI *LPFNXZSFXADDEXECUTEAFTERA )( HXCEEDZIP, const char*,  const char* );
  573. typedef void  ( XCD_WINAPI *LPFNXZSFXADDFILETOCOPYW )( HXCEEDZIP, const WCHAR*, const WCHAR* );
  574. typedef void  ( XCD_WINAPI *LPFNXZSFXADDFILETOCOPYA )( HXCEEDZIP, const char*,  const char* );
  575. typedef void  ( XCD_WINAPI *LPFNXZSFXADDFILETOREGISTERW )( HXCEEDZIP, const WCHAR* );
  576. typedef void  ( XCD_WINAPI *LPFNXZSFXADDFILETOREGISTERA )( HXCEEDZIP, const char* );
  577. typedef void  ( XCD_WINAPI *LPFNXZSFXADDREGISTRYKEYW )( HXCEEDZIP, const WCHAR*, const WCHAR*, const WCHAR* );
  578. typedef void  ( XCD_WINAPI *LPFNXZSFXADDREGISTRYKEYA )( HXCEEDZIP, const char*,  const char*,  const char* );
  579. typedef int   ( XCD_WINAPI *LPFNXZGETZIPCONTENTS )( HXCEEDZIP, HXCEEDZIPITEMS* );
  580.  
  581. typedef UINT  ( XCD_WINAPI *LPFNXCGETERRORDESCRIPTIONW )( HXCEEDCMP, int, WCHAR*, UINT );
  582. typedef UINT  ( XCD_WINAPI *LPFNXCGETERRORDESCRIPTIONA )( HXCEEDCMP, int, char*, UINT );
  583. typedef int   ( XCD_WINAPI *LPFNXCCOMPRESS )( HXCEEDCMP, const BYTE*, DWORD, BYTE**, DWORD*, BOOL );
  584. typedef int   ( XCD_WINAPI *LPFNXCUNCOMPRESS )( HXCEEDCMP, const BYTE*, DWORD, BYTE**, DWORD*, BOOL );
  585. typedef long  ( XCD_WINAPI *LPFNXCCALCULATECRC )( HXCEEDCMP, const BYTE*, DWORD, long );
  586.  
  587.  
  588. ////////////////////////////////////////////////////////////////////////////////
  589. // Structures for callbacks / messages params
  590. //
  591.  
  592. // ListingFile event parameters
  593. typedef struct _xcdListingFileParamsA
  594. {
  595.   /* IN  */ WORD                  wStructSize;
  596.   /* IN  */ HXCEEDZIP             hZip;
  597.   /* IN  */ char                  szFilename[ MAX_PATH ];
  598.   /* IN  */ char                  szComment[ 1024 ];
  599.   /* IN  */ LONG                  lSize;
  600.   /* IN  */ LONG                  lCompressedSize;
  601.   /* IN  */ SHORT                 nCompressionRatio;
  602.   /* IN  */ xcdFileAttributes     xAttributes;
  603.   /* IN  */ LONG                  lCRC;
  604.   /* IN  */ SYSTEMTIME            stLastModified;
  605.   /* IN  */ SYSTEMTIME            stLastAccessed;
  606.   /* IN  */ SYSTEMTIME            stCreated;
  607.   /* IN  */ xcdCompressionMethod  xMethod;
  608.   /* IN  */ BOOL                  bEncrypted;
  609.   /* IN  */ LONG                  lDiskNumber;
  610.   /* IN  */ BOOL                  bExcluded;
  611.   /* IN  */ xcdSkippingReason     xReason;
  612. } xcdListingFileParamsA;
  613.  
  614. typedef struct _xcdListingFileParamsW
  615. {
  616.   /* IN  */ WORD                  wStructSize;
  617.   /* IN  */ HXCEEDZIP             hZip;
  618.   /* IN  */ WCHAR                 szFilename[ MAX_PATH ];
  619.   /* IN  */ WCHAR                 szComment[ 1024 ];
  620.   /* IN  */ LONG                  lSize;
  621.   /* IN  */ LONG                  lCompressedSize;
  622.   /* IN  */ SHORT                 nCompressionRatio;
  623.   /* IN  */ xcdFileAttributes     xAttributes;
  624.   /* IN  */ LONG                  lCRC;
  625.   /* IN  */ SYSTEMTIME            stLastModified;
  626.   /* IN  */ SYSTEMTIME            stLastAccessed;
  627.   /* IN  */ SYSTEMTIME            stCreated;
  628.   /* IN  */ xcdCompressionMethod  xMethod;
  629.   /* IN  */ BOOL                  bEncrypted;
  630.   /* IN  */ LONG                  lDiskNumber;
  631.   /* IN  */ BOOL                  bExcluded;
  632.   /* IN  */ xcdSkippingReason     xReason;
  633. } xcdListingFileParamsW;
  634.  
  635. // PreviewingFile event parameters
  636. typedef struct _xcdPreviewingFileParamsA
  637. {
  638.   /* IN  */ WORD              wStructSize;
  639.   /* IN  */ HXCEEDZIP         hZip;
  640.   /* IN  */ char              szFilename[ MAX_PATH ];
  641.   /* IN  */ char              szSourceFilename[ MAX_PATH ];
  642.   /* IN  */ LONG              lSize;
  643.   /* IN  */ xcdFileAttributes xAttributes;
  644.   /* IN  */ SYSTEMTIME        stModified;
  645.   /* IN  */ SYSTEMTIME        stAccessed;
  646.   /* IN  */ SYSTEMTIME        stCreated;
  647.   /* IN  */ BOOL              bExcluded;
  648.   /* IN  */ xcdSkippingReason xReason;
  649. } xcdPreviewingFileParamsA;
  650.  
  651. typedef struct _xcdPreviewingFileParamsW
  652. {
  653.   /* IN  */ WORD              wStructSize;
  654.   /* IN  */ HXCEEDZIP         hZip;
  655.   /* IN  */ WCHAR             szFilename[ MAX_PATH ];
  656.   /* IN  */ WCHAR             szSourceFilename[ MAX_PATH ];
  657.   /* IN  */ LONG              lSize;
  658.   /* IN  */ xcdFileAttributes xAttributes;
  659.   /* IN  */ SYSTEMTIME        stModified;
  660.   /* IN  */ SYSTEMTIME        stAccessed;
  661.   /* IN  */ SYSTEMTIME        stCreated;
  662.   /* IN  */ BOOL              bExcluded;
  663.   /* IN  */ xcdSkippingReason xReason;
  664. } xcdPreviewingFileParamsW;
  665.  
  666. // InsertDisk event parameters
  667. typedef struct _xcdInsertDiskParams
  668. {
  669.   /* IN  */ WORD            wStructSize;
  670.   /* IN  */ HXCEEDZIP       hZip;
  671.   /* IN  */ LONG            lDiskNumber;
  672.   /* OUT */ BOOL            bDiskInserted;
  673. } xcdInsertDiskParams;
  674.  
  675. // ZipPreprocessingFile event parameters
  676. typedef struct _xcdZipPreprocessingFileParamsA
  677. {
  678.   /* IN  */ WORD                  wStructSize;
  679.   /* IN  */ HXCEEDZIP             hZip;
  680.   /* OUT */ char                  szFilename[ MAX_PATH ];
  681.   /* OUT */ char                  szComment[ 1024 ];
  682.   /* IN  */ char                  szSourceFilename[ MAX_PATH ];
  683.   /* IN  */ LONG                  lSize;
  684.   /* OUT */ xcdFileAttributes     xAttributes;
  685.   /* OUT */ SYSTEMTIME            stModified;
  686.   /* OUT */ SYSTEMTIME            stAccessed;
  687.   /* OUT */ SYSTEMTIME            stCreated;
  688.   /* OUT */ xcdCompressionMethod  xMethod;
  689.   /* OUT */ BOOL                  bEncrypted;
  690.   /* OUT */ char                  szPassword[ MAX_PATH ];
  691.   /* OUT */ BOOL                  bExcluded;
  692.   /* IN  */ xcdSkippingReason     xReason;
  693.   /* IN  */ BOOL                  bExisting;
  694. } xcdZipPreprocessingFileParamsA;
  695.  
  696. typedef struct _xcdZipPreprocessingFileParamsW
  697. {
  698.   /* IN  */ WORD                  wStructSize;
  699.   /* IN  */ HXCEEDZIP             hZip;
  700.   /* OUT */ WCHAR                 szFilename[ MAX_PATH ];
  701.   /* OUT */ WCHAR                 szComment[ 1024 ];
  702.   /* IN  */ WCHAR                 szSourceFilename[ MAX_PATH ];
  703.   /* IN  */ LONG                  lSize;
  704.   /* OUT */ xcdFileAttributes     xAttributes;
  705.   /* OUT */ SYSTEMTIME            stModified;
  706.   /* OUT */ SYSTEMTIME            stAccessed;
  707.   /* OUT */ SYSTEMTIME            stCreated;
  708.   /* OUT */ xcdCompressionMethod  xMethod;
  709.   /* OUT */ BOOL                  bEncrypted;
  710.   /* OUT */ WCHAR                 szPassword[ MAX_PATH ];
  711.   /* OUT */ BOOL                  bExcluded;
  712.   /* IN  */ xcdSkippingReason     xReason;
  713.   /* IN  */ BOOL                  bExisting;
  714. } xcdZipPreprocessingFileParamsW;
  715.  
  716. // UnzipPreprocessingFile event parameters
  717. typedef struct _xcdUnzipPreprocessingFileParamsA
  718. {
  719.   /* IN  */ WORD                  wStructSize;
  720.   /* IN  */ HXCEEDZIP             hZip;
  721.   /* IN  */ char                  szFilename[ MAX_PATH ];
  722.   /* IN  */ char                  szComment[ 1024 ];
  723.   /* OUT */ char                  szDestFilename[ MAX_PATH ];
  724.   /* IN  */ LONG                  lSize;
  725.   /* IN  */ LONG                  lCompressedSize;
  726.   /* OUT */ xcdFileAttributes     xAttributes;
  727.   /* IN  */ LONG                  lCRC;
  728.   /* OUT */ SYSTEMTIME            stModified;
  729.   /* OUT */ SYSTEMTIME            stAccessed;
  730.   /* OUT */ SYSTEMTIME            stCreated;
  731.   /* IN  */ xcdCompressionMethod  xMethod;
  732.   /* IN  */ BOOL                  bEncrypted;
  733.   /* OUT */ char                  szPassword[ MAX_PATH ];
  734.   /* IN  */ LONG                  lDiskNumber;
  735.   /* OUT */ BOOL                  bExcluded;
  736.   /* IN  */ xcdSkippingReason     xReason;
  737.   /* IN  */ BOOL                  bExisting;
  738.   /* OUT */ xcdUnzipDestination   xDestination;
  739. } xcdUnzipPreprocessingFileParamsA;
  740.  
  741. typedef struct _xcdUnzipPreprocessingFileParamsW
  742. {
  743.   /* IN  */ WORD                  wStructSize;
  744.   /* IN  */ HXCEEDZIP             hZip;
  745.   /* IN  */ WCHAR                 szFilename[ MAX_PATH ];
  746.   /* IN  */ WCHAR                 szComment[ 1024 ];
  747.   /* OUT */ WCHAR                 szDestFilename[ MAX_PATH ];
  748.   /* IN  */ LONG                  lSize;
  749.   /* IN  */ LONG                  lCompressedSize;
  750.   /* OUT */ xcdFileAttributes     xAttributes;
  751.   /* IN  */ LONG                  lCRC;
  752.   /* OUT */ SYSTEMTIME            stModified;
  753.   /* OUT */ SYSTEMTIME            stAccessed;
  754.   /* OUT */ SYSTEMTIME            stCreated;
  755.   /* IN  */ xcdCompressionMethod  xMethod;
  756.   /* IN  */ BOOL                  bEncrypted;
  757.   /* OUT */ WCHAR                 szPassword[ MAX_PATH ];
  758.   /* IN  */ LONG                  lDiskNumber;
  759.   /* OUT */ BOOL                  bExcluded;
  760.   /* IN  */ xcdSkippingReason     xReason;
  761.   /* IN  */ BOOL                  bExisting;
  762.   /* OUT */ xcdUnzipDestination   xDestination;
  763. } xcdUnzipPreprocessingFileParamsW;
  764.  
  765. // SkippingFile event parameters
  766. typedef struct _xcdSkippingFileParamsA
  767. {
  768.   /* IN  */ WORD                  wStructSize;
  769.   /* IN  */ HXCEEDZIP             hZip;
  770.   /* IN  */ char                  szFilename[ MAX_PATH ];
  771.   /* IN  */ char                  szComment[ 1024 ];
  772.   /* IN  */ char                  szFilenameOnDisk[ MAX_PATH ];
  773.   /* IN  */ LONG                  lSize;
  774.   /* IN  */ LONG                  lCompressedSize;
  775.   /* IN  */ xcdFileAttributes     xAttributes;
  776.   /* IN  */ LONG                  lCRC;
  777.   /* IN  */ SYSTEMTIME            stModified;
  778.   /* IN  */ SYSTEMTIME            stAccessed;
  779.   /* IN  */ SYSTEMTIME            stCreated;
  780.   /* IN  */ xcdCompressionMethod  xMethod;
  781.   /* IN  */ BOOL                  bEncrypted;
  782.   /* IN  */ xcdSkippingReason     xReason;
  783. } xcdSkippingFileParamsA;
  784.  
  785. typedef struct _xcdSkippingFileParamsW
  786. {
  787.   /* IN  */ WORD                  wStructSize;
  788.   /* IN  */ HXCEEDZIP             hZip;
  789.   /* IN  */ WCHAR                 szFilename[ MAX_PATH ];
  790.   /* IN  */ WCHAR                 szComment[ 1024 ];
  791.   /* IN  */ WCHAR                 szFilenameOnDisk[ MAX_PATH ];
  792.   /* IN  */ LONG                  lSize;
  793.   /* IN  */ LONG                  lCompressedSize;
  794.   /* IN  */ xcdFileAttributes     xAttributes;
  795.   /* IN  */ LONG                  lCRC;
  796.   /* IN  */ SYSTEMTIME            stModified;
  797.   /* IN  */ SYSTEMTIME            stAccessed;
  798.   /* IN  */ SYSTEMTIME            stCreated;
  799.   /* IN  */ xcdCompressionMethod  xMethod;
  800.   /* IN  */ BOOL                  bEncrypted;
  801.   /* IN  */ xcdSkippingReason     xReason;
  802. } xcdSkippingFileParamsW;
  803.  
  804. // RemovingFile event parameters
  805. typedef struct _xcdRemovingFileParamsA
  806. {
  807.   /* IN  */ WORD                  wStructSize;
  808.   /* IN  */ HXCEEDZIP             hZip;
  809.   /* IN  */ char                  szFilename[ MAX_PATH ];
  810.   /* IN  */ char                  szComment[ 1024 ];
  811.   /* IN  */ LONG                  lSize;
  812.   /* IN  */ LONG                  lCompressedSize;
  813.   /* IN  */ xcdFileAttributes     xAttributes;
  814.   /* IN  */ LONG                  lCRC;
  815.   /* IN  */ SYSTEMTIME            stModified;
  816.   /* IN  */ SYSTEMTIME            stAccessed;
  817.   /* IN  */ SYSTEMTIME            stCreated;
  818.   /* IN  */ xcdCompressionMethod  xMethod;
  819.   /* IN  */ BOOL                  bEncrypted;
  820. } xcdRemovingFileParamsA;
  821.  
  822. typedef struct _xcdRemovingFileParamsW
  823. {
  824.   /* IN  */ WORD                  wStructSize;
  825.   /* IN  */ HXCEEDZIP             hZip;
  826.   /* IN  */ WCHAR                 szFilename[ MAX_PATH ];
  827.   /* IN  */ WCHAR                 szComment[ 1024 ];
  828.   /* IN  */ LONG                  lSize;
  829.   /* IN  */ LONG                  lCompressedSize;
  830.   /* IN  */ xcdFileAttributes     xAttributes;
  831.   /* IN  */ LONG                  lCRC;
  832.   /* IN  */ SYSTEMTIME            stModified;
  833.   /* IN  */ SYSTEMTIME            stAccessed;
  834.   /* IN  */ SYSTEMTIME            stCreated;
  835.   /* IN  */ xcdCompressionMethod  xMethod;
  836.   /* IN  */ BOOL                  bEncrypted;
  837. } xcdRemovingFileParamsW;
  838.  
  839. // TestingFile event parameters
  840. typedef struct _xcdTestingFileParamsA
  841. {
  842.   /* IN  */ WORD                  wStructSize;
  843.   /* IN  */ HXCEEDZIP             hZip;
  844.   /* IN  */ char                  szFilename[ MAX_PATH ];
  845.   /* IN  */ char                  szComment[ 1024 ];
  846.   /* IN  */ LONG                  lSize;
  847.   /* IN  */ LONG                  lCompressedSize;
  848.   /* IN  */ SHORT                 nCompressionRatio;
  849.   /* IN  */ xcdFileAttributes     xAttributes;
  850.   /* IN  */ LONG                  lCRC;
  851.   /* IN  */ SYSTEMTIME            stModified;
  852.   /* IN  */ SYSTEMTIME            stAccessed;
  853.   /* IN  */ SYSTEMTIME            stCreated;
  854.   /* IN  */ xcdCompressionMethod  xMethod;
  855.   /* IN  */ BOOL                  bEncrypted;
  856.   /* IN  */ LONG                  lDiskNumber;
  857. } xcdTestingFileParamsA;
  858.  
  859. typedef struct _xcdTestingFileParamsW
  860. {
  861.   /* IN  */ WORD                  wStructSize;
  862.   /* IN  */ HXCEEDZIP             hZip;
  863.   /* IN  */ WCHAR                 szFilename[ MAX_PATH ];
  864.   /* IN  */ WCHAR                 szComment[ 1024 ];
  865.   /* IN  */ LONG                  lSize;
  866.   /* IN  */ LONG                  lCompressedSize;
  867.   /* IN  */ SHORT                 nCompressionRatio;
  868.   /* IN  */ xcdFileAttributes     xAttributes;
  869.   /* IN  */ LONG                  lCRC;
  870.   /* IN  */ SYSTEMTIME            stModified;
  871.   /* IN  */ SYSTEMTIME            stAccessed;
  872.   /* IN  */ SYSTEMTIME            stCreated;
  873.   /* IN  */ xcdCompressionMethod  xMethod;
  874.   /* IN  */ BOOL                  bEncrypted;
  875.   /* IN  */ LONG                  lDiskNumber;
  876. } xcdTestingFileParamsW;
  877.  
  878. // FileStatus event parameters
  879. typedef struct _xcdFileStatusParamsA
  880. {
  881.   /* IN  */ WORD            wStructSize;
  882.   /* IN  */ HXCEEDZIP       hZip;
  883.   /* IN  */ char            szFilename[ MAX_PATH ];
  884.   /* IN  */ LONG            lSize;
  885.   /* IN  */ LONG            lCompressedSize;
  886.   /* IN  */ LONG            lBytesProcessed;
  887.   /* IN  */ SHORT           nBytesPercent;
  888.   /* IN  */ SHORT           nCompressionRatio;
  889.   /* IN  */ BOOL            bFileCompleted;
  890. } xcdFileStatusParamsA;
  891.  
  892. typedef struct _xcdFileStatusParamsW
  893. {
  894.   /* IN  */ WORD            wStructSize;
  895.   /* IN  */ HXCEEDZIP       hZip;
  896.   /* IN  */ WCHAR           szFilename[ MAX_PATH ];
  897.   /* IN  */ LONG            lSize;
  898.   /* IN  */ LONG            lCompressedSize;
  899.   /* IN  */ LONG            lBytesProcessed;
  900.   /* IN  */ SHORT           nBytesPercent;
  901.   /* IN  */ SHORT           nCompressionRatio;
  902.   /* IN  */ BOOL            bFileCompleted;
  903. } xcdFileStatusParamsW;
  904.  
  905. // GlobalStatus event parameters
  906. typedef struct _xcdGlobalStatusParams
  907. {
  908.   /* IN  */ WORD            wStructSize;
  909.   /* IN  */ HXCEEDZIP       hZip;
  910.   /* IN  */ LONG            lFilesTotal;
  911.   /* IN  */ LONG            lFilesProcessed;
  912.   /* IN  */ LONG            lFilesSkipped;
  913.   /* IN  */ SHORT           nFilesPercent;
  914.   /* IN  */ LONG            lBytesTotal;
  915.   /* IN  */ LONG            lBytesProcessed;
  916.   /* IN  */ LONG            lBytesSkipped;
  917.   /* IN  */ SHORT           nBytesPercent;
  918.   /* IN  */ LONG            lBytesOutput;
  919.   /* IN  */ SHORT           nCompressionRatio;
  920. } xcdGlobalStatusParams;
  921.  
  922. // DiskNotEmpty event parameters
  923. typedef struct _xcdDiskNotEmptyParams
  924. {
  925.   /* IN  */ WORD              wStructSize;
  926.   /* IN  */ HXCEEDZIP         hZip;
  927.   /* OUT */ xcdNotEmptyAction xAction;
  928. } xcdDiskNotEmptyParams;
  929.  
  930. // ProcessCompleted event parameters
  931. typedef struct _xcdProcessCompletedParams
  932. {
  933.   /* IN  */ WORD            wStructSize;
  934.   /* IN  */ HXCEEDZIP       hZip;
  935.   /* IN  */ LONG            lFilesTotal;
  936.   /* IN  */ LONG            lFilesProcessed;
  937.   /* IN  */ LONG            lFilesSkipped;
  938.   /* IN  */ LONG            lBytesTotal;
  939.   /* IN  */ LONG            lBytesProcessed;
  940.   /* IN  */ LONG            lBytesSkipped;
  941.   /* IN  */ LONG            lBytesOutput;
  942.   /* IN  */ SHORT           nCompressionRatio;
  943.   /* IN  */ xcdError        xResult;
  944. } xcdProcessCompletedParams;
  945.  
  946. // ZipComment event parameters
  947. typedef struct _xcdZipCommentParamsA
  948. {
  949.   /* IN  */ WORD            wStructSize;
  950.   /* IN  */ HXCEEDZIP       hZip;
  951.   /* OUT */ char            szComment[ 10240 ];
  952. } xcdZipCommentParamsA;
  953.  
  954. typedef struct _xcdZipCommentParamsW
  955. {
  956.   /* IN  */ WORD            wStructSize;
  957.   /* IN  */ HXCEEDZIP       hZip;
  958.   /* OUT */ WCHAR           szComment[ 10240 ];
  959. } xcdZipCommentParamsW;
  960.  
  961. // QueryMemoryFile event parameters
  962. typedef struct _xcdQueryMemoryFileParamsA
  963. {
  964.   /* IN  */ WORD              wStructSize;
  965.   /* IN  */ HXCEEDZIP         hZip;
  966.   /* OUT */ LONG              lUserTag;
  967.   /* OUT */ char              szFilename[ MAX_PATH ];
  968.   /* OUT */ char              szComment[ 1024 ];
  969.   /* OUT */ xcdFileAttributes xAttributes;
  970.   /* OUT */ SYSTEMTIME        stModified;
  971.   /* OUT */ SYSTEMTIME        stAccessed;
  972.   /* OUT */ SYSTEMTIME        stCreated;
  973.   /* OUT */ BOOL              bEncrypted;
  974.   /* OUT */ char              szPassword[ MAX_PATH ];
  975.   /* OUT */ BOOL              bFileProvided;
  976. } xcdQueryMemoryFileParamsA;
  977.  
  978. typedef struct _xcdQueryMemoryFileParamsW
  979. {
  980.   /* IN  */ WORD              wStructSize;
  981.   /* IN  */ HXCEEDZIP         hZip;
  982.   /* OUT */ LONG              lUserTag;
  983.   /* OUT */ WCHAR             szFilename[ MAX_PATH ];
  984.   /* OUT */ WCHAR             szComment[ 1024 ];
  985.   /* OUT */ xcdFileAttributes xAttributes;
  986.   /* OUT */ SYSTEMTIME        stModified;
  987.   /* OUT */ SYSTEMTIME        stAccessed;
  988.   /* OUT */ SYSTEMTIME        stCreated;
  989.   /* OUT */ BOOL              bEncrypted;
  990.   /* OUT */ WCHAR             szPassword[ MAX_PATH ];
  991.   /* OUT */ BOOL              bFileProvided;
  992. } xcdQueryMemoryFileParamsW;
  993.  
  994. // ZippingMemoryFile event parameters
  995. typedef struct _xcdZippingMemoryFileParamsA
  996. {
  997.   /* IN  */ WORD            wStructSize;
  998.   /* IN  */ HXCEEDZIP       hZip;
  999.   /* IN  */ LONG            lUserTag;
  1000.   /* IN  */ char            szFilename[ MAX_PATH ];
  1001.   /* OUT */ BYTE *          pbDataToCompress;
  1002.   /* OUT */ DWORD           dwDataSize;
  1003.   /* OUT */ BOOL            bEndOfData;
  1004. } xcdZippingMemoryFileParamsA;
  1005.  
  1006. typedef struct _xcdZippingMemoryFileParamsW
  1007. {
  1008.   /* IN  */ WORD            wStructSize;
  1009.   /* IN  */ HXCEEDZIP       hZip;
  1010.   /* IN  */ LONG            lUserTag;
  1011.   /* IN  */ WCHAR           szFilename[ MAX_PATH ];
  1012.   /* OUT */ BYTE *          pbDataToCompress;
  1013.   /* OUT */ DWORD           dwDataSize;
  1014.   /* OUT */ BOOL            bEndOfData;
  1015. } xcdZippingMemoryFileParamsW;
  1016.  
  1017. // UnzippingMemoryFile event parameters
  1018. typedef struct _xcdUnzippingMemoryFileParamsA
  1019. {
  1020.   /* IN  */ WORD            wStructSize;
  1021.   /* IN  */ HXCEEDZIP       hZip;
  1022.   /* IN  */ char            szFilename[ MAX_PATH ];
  1023.   /* IN  */ BYTE *          pbUncompressedData;
  1024.   /* IN  */ DWORD           dwDataSize;
  1025.   /* IN  */ BOOL            bEndOfData;
  1026. } xcdUnzippingMemoryFileParamsA;
  1027.  
  1028. typedef struct _xcdUnzippingMemoryFileParamsW
  1029. {
  1030.   /* IN  */ WORD            wStructSize;
  1031.   /* IN  */ HXCEEDZIP       hZip;
  1032.   /* IN  */ WCHAR           szFilename[ MAX_PATH ];
  1033.   /* IN  */ BYTE *          pbUncompressedData;
  1034.   /* IN  */ DWORD           dwDataSize;
  1035.   /* IN  */ BOOL            bEndOfData;
  1036. } xcdUnzippingMemoryFileParamsW;
  1037.  
  1038. // Warnign event parameters
  1039. typedef struct _xcdWarningParamsA
  1040. {
  1041.   /* IN  */ WORD              wStructSize;
  1042.   /* IN  */ HXCEEDZIP         hZip;
  1043.   /* IN  */ char              szFilename[ MAX_PATH ];
  1044.   /* IN  */ xcdWarning        xWarning;
  1045. } xcdWarningParamsA;
  1046.  
  1047. typedef struct _xcdWarningParamsW
  1048. {
  1049.   /* IN  */ WORD              wStructSize;
  1050.   /* IN  */ HXCEEDZIP         hZip;
  1051.   /* IN  */ WCHAR             szFilename[ MAX_PATH ];
  1052.   /* IN  */ xcdWarning        xWarning;
  1053. } xcdWarningParamsW;
  1054.  
  1055. // InvalidPassword event parameters
  1056. typedef struct _xcdInvalidPasswordParamsA
  1057. {
  1058.   /* IN  */ WORD            wStructSize;
  1059.   /* IN  */ HXCEEDZIP       hZip;
  1060.   /* IN  */ char            szFilename[ MAX_PATH ];
  1061.   /* OUT */ char            szNewPassword[ MAX_PATH ];
  1062.   /* OUT */ BOOL            bRetry;
  1063. } xcdInvalidPasswordParamsA;
  1064.  
  1065. typedef struct _xcdInvalidPasswordParamsW
  1066. {
  1067.   /* IN  */ WORD            wStructSize;
  1068.   /* IN  */ HXCEEDZIP       hZip;
  1069.   /* IN  */ WCHAR           szFilename[ MAX_PATH ];
  1070.   /* OUT */ WCHAR           szNewPassword[ MAX_PATH ];
  1071.   /* OUT */ BOOL            bRetry;
  1072. } xcdInvalidPasswordParamsW;
  1073.  
  1074. // ReplacingFile event parameters
  1075. typedef struct _xcdReplacingFileParamsA
  1076. {
  1077.   /* IN  */ WORD              wStructSize;
  1078.   /* IN  */ HXCEEDZIP         hZip;
  1079.   /* IN  */ char              szFilename[ MAX_PATH ];
  1080.   /* IN  */ char              szComment[ 1024 ];
  1081.   /* IN  */ LONG              lSize;
  1082.   /* IN  */ xcdFileAttributes xAttributes;
  1083.   /* IN  */ SYSTEMTIME        stLastModified;
  1084.   /* IN  */ SYSTEMTIME        stLastAccessed;
  1085.   /* IN  */ SYSTEMTIME        stCreated;
  1086.   /* IN  */ char              szOrigFilename[ MAX_PATH ];
  1087.   /* IN  */ LONG              lOrigSize;
  1088.   /* IN  */ xcdFileAttributes xOrigAttributes;
  1089.   /* IN  */ SYSTEMTIME        stOrigLastModified;
  1090.   /* IN  */ SYSTEMTIME        stOrigLastAccessed;
  1091.   /* IN  */ SYSTEMTIME        stOrigCreated;
  1092.   /* OUT */ BOOL              bReplaceFile;
  1093. } xcdReplacingFileParamsA;
  1094.  
  1095. typedef struct _xcdReplacingFileParamsW
  1096. {
  1097.   /* IN  */ WORD              wStructSize;
  1098.   /* IN  */ HXCEEDZIP         hZip;
  1099.   /* IN  */ WCHAR             szFilename[ MAX_PATH ];
  1100.   /* IN  */ WCHAR             szComment[ 1024 ];
  1101.   /* IN  */ LONG              lSize;
  1102.   /* IN  */ xcdFileAttributes xAttributes;
  1103.   /* IN  */ SYSTEMTIME        stLastModified;
  1104.   /* IN  */ SYSTEMTIME        stLastAccessed;
  1105.   /* IN  */ SYSTEMTIME        stCreated;
  1106.   /* IN  */ WCHAR             szOrigFilename[ MAX_PATH ];
  1107.   /* IN  */ LONG              lOrigSize;
  1108.   /* IN  */ xcdFileAttributes xOrigAttributes;
  1109.   /* IN  */ SYSTEMTIME        stOrigLastModified;
  1110.   /* IN  */ SYSTEMTIME        stOrigLastAccessed;
  1111.   /* IN  */ SYSTEMTIME        stOrigCreated;
  1112.   /* OUT */ BOOL              bReplaceFile;
  1113. } xcdReplacingFileParamsW;
  1114.  
  1115. // ZipContentsStatus event parameters
  1116. typedef struct _xcdZipContentsStatusParams
  1117. {
  1118.   /* IN  */ WORD            wStructSize;
  1119.   /* IN  */ HXCEEDZIP       hZip;
  1120.   /* IN  */ LONG            lFilesTotal;
  1121.   /* IN  */ LONG            lFilesRead;
  1122.   /* IN  */ SHORT           nFilesPercent;
  1123. } xcdZipContentsStatusParams;
  1124.  
  1125. // DeletingFile event parameters
  1126. typedef struct _xcdDeletingFileParamsA
  1127. {
  1128.   /* IN  */ WORD              wStructSize;
  1129.   /* IN  */ HXCEEDZIP         hZip;
  1130.   /* IN  */ char              szFilename[ MAX_PATH ];
  1131.   /* IN  */ LONG              lSize;
  1132.   /* IN  */ xcdFileAttributes xAttributes;
  1133.   /* IN  */ SYSTEMTIME        stModified;
  1134.   /* IN  */ SYSTEMTIME        stAccessed;
  1135.   /* IN  */ SYSTEMTIME        stCreated;
  1136.   /* OUT */ BOOL              bDoNotDelete;
  1137. } xcdDeletingFileParamsA;
  1138.  
  1139. typedef struct _xcdDeletingFileParamsW
  1140. {
  1141.   /* IN  */ WORD              wStructSize;
  1142.   /* IN  */ HXCEEDZIP         hZip;
  1143.   /* IN  */ WCHAR             wszFilename[ MAX_PATH ];
  1144.   /* IN  */ LONG              lSize;
  1145.   /* IN  */ xcdFileAttributes xAttributes;
  1146.   /* IN  */ SYSTEMTIME        stModified;
  1147.   /* IN  */ SYSTEMTIME        stAccessed;
  1148.   /* IN  */ SYSTEMTIME        stCreated;
  1149.   /* OUT */ BOOL              bDoNotDelete;
  1150. } xcdDeletingFileParamsW;
  1151.  
  1152. // ConvertPreprocessingFile event parameters
  1153. typedef struct _xcdConvertPreprocessingFileParamsA
  1154. {
  1155.   /* IN  */ WORD                  wStructSize;
  1156.   /* IN  */ HXCEEDZIP             hZip;
  1157.   /* IN  */ char                  szFilename[ MAX_PATH ];
  1158.   /* OUT */ char                  szComment[ 1024 ];
  1159.   /* OUT */ char                  szDestFilename[ MAX_PATH ];
  1160.   /* IN  */ LONG                  lSize;
  1161.   /* IN  */ LONG                  lCompressedSize;
  1162.   /* OUT */ xcdFileAttributes     xAttributes;
  1163.   /* IN  */ LONG                  lCRC;
  1164.   /* OUT */ SYSTEMTIME            stModified;
  1165.   /* OUT */ SYSTEMTIME            stAccessed;
  1166.   /* OUT */ SYSTEMTIME            stCreated;
  1167.   /* IN  */ xcdCompressionMethod  xMethod;
  1168.   /* IN  */ BOOL                  bEncrypted;
  1169.   /* IN  */ LONG                  lDiskNumber;
  1170.   /* OUT */ BOOL                  bExcluded;
  1171.   /* IN  */ xcdSkippingReason     xReason;
  1172.   /* IN  */ BOOL                  bExisting;
  1173. } xcdConvertPreprocessingFileParamsA;
  1174.  
  1175. typedef struct _xcdConvertPreprocessingFileParamsW
  1176. {
  1177.   /* IN  */ WORD                  wStructSize;
  1178.   /* IN  */ HXCEEDZIP             hZip;
  1179.   /* IN  */ WCHAR                 wszFilename[ MAX_PATH ];
  1180.   /* OUT */ WCHAR                 wszComment[ 1024 ];
  1181.   /* OUT */ WCHAR                 wszDestFilename[ MAX_PATH ];
  1182.   /* IN  */ LONG                  lSize;
  1183.   /* IN  */ LONG                  lCompressedSize;
  1184.   /* OUT */ xcdFileAttributes     xAttributes;
  1185.   /* IN  */ LONG                  lCRC;
  1186.   /* OUT */ SYSTEMTIME            stModified;
  1187.   /* OUT */ SYSTEMTIME            stAccessed;
  1188.   /* OUT */ SYSTEMTIME            stCreated;
  1189.   /* IN  */ xcdCompressionMethod  xMethod;
  1190.   /* IN  */ BOOL                  bEncrypted;
  1191.   /* IN  */ LONG                  lDiskNumber;
  1192.   /* OUT */ BOOL                  bExcluded;
  1193.   /* IN  */ xcdSkippingReason     xReason;
  1194.   /* IN  */ BOOL                  bExisting;
  1195. } xcdConvertPreprocessingFileParamsW;
  1196.  
  1197.  
  1198. //
  1199. // More typedefs for exported functions that use event structures
  1200. //
  1201.  
  1202. typedef BOOL  ( XCD_WINAPI *LPFNXZIGETFIRSTITEMW )( HXCEEDZIPITEMS, xcdListingFileParamsW* );
  1203. typedef BOOL  ( XCD_WINAPI *LPFNXZIGETFIRSTITEMA )( HXCEEDZIPITEMS, xcdListingFileParamsA* );
  1204. typedef BOOL  ( XCD_WINAPI *LPFNXZIGETNEXTITEMW )( HXCEEDZIPITEMS, xcdListingFileParamsW* );
  1205. typedef BOOL  ( XCD_WINAPI *LPFNXZIGETNEXTITEMA )( HXCEEDZIPITEMS, xcdListingFileParamsA* );
  1206.  
  1207.  
  1208. ////////////////////////////////////////////////////////////////////////////////
  1209. // Exported prototypes for use when LINKING with XCEEDZIP.LIB
  1210. // (only in Visual C++)
  1211. //
  1212.  
  1213. #ifdef _MSC_VER
  1214.  
  1215. //
  1216. // Initialization functions
  1217. //
  1218. XCD_IMPORT  BOOL  XCD_WINAPI  XceedZipInitDLL( void );
  1219. XCD_IMPORT  BOOL  XCD_WINAPI  XceedZipShutdownDLL( void );
  1220.  
  1221. //
  1222. // Instance creation functions
  1223. //
  1224. XCD_IMPORT  HXCEEDZIP XCD_WINAPI  XzCreateXceedZipA( const char* pszLicense );
  1225. XCD_IMPORT  HXCEEDZIP XCD_WINAPI  XzCreateXceedZipW( const WCHAR* pwszLicense );
  1226. XCD_IMPORT  void      XCD_WINAPI  XzDestroyXceedZip( HXCEEDZIP hZip );
  1227.  
  1228. XCD_IMPORT  HXCEEDCMP XCD_WINAPI  XcCreateXceedCompressionA( const char* pszLicense );
  1229. XCD_IMPORT  HXCEEDCMP XCD_WINAPI  XcCreateXceedCompressionW( const WCHAR* pwszLicense );
  1230. XCD_IMPORT  void      XCD_WINAPI  XcDestroyXceedCompression( HXCEEDCMP hComp );
  1231.  
  1232. XCD_IMPORT  void      XCD_WINAPI  XziDestroyXceedZipItems( HXCEEDZIPITEMS hItems );
  1233.  
  1234. //
  1235. // Event handling functions
  1236. //
  1237. XCD_IMPORT  void      XCD_WINAPI  XzSetXceedZipCallback( HXCEEDZIP hZip, LPFNXCEEDZIPCALLBACK lpfnCallback );
  1238. XCD_IMPORT  void      XCD_WINAPI  XzSetXceedZipWindow( HXCEEDZIP hZip, HWND hWnd );
  1239.  
  1240. //
  1241. // Memory allocation functions
  1242. //
  1243. XCD_IMPORT  BYTE*     XCD_WINAPI  XzAlloc( DWORD dwDataSize );
  1244. XCD_IMPORT  void      XCD_WINAPI  XzFree( BYTE* pcBuffer );
  1245.  
  1246.  
  1247. //
  1248. // XceedZip property handling functions
  1249. //
  1250.  
  1251. // Abort property
  1252. XCD_IMPORT  BOOL  XCD_WINAPI  XzGetAbort( HXCEEDZIP hZip );
  1253. XCD_IMPORT  void  XCD_WINAPI  XzSetAbort( HXCEEDZIP hZip, BOOL bValue );
  1254.  
  1255. // Background property
  1256. XCD_IMPORT  BOOL  XCD_WINAPI  XzGetBackgroundProcessing( HXCEEDZIP hZip );
  1257. XCD_IMPORT  void  XCD_WINAPI  XzSetBackgroundProcessing( HXCEEDZIP hZip, BOOL bValue );
  1258.  
  1259. // BasePath property
  1260. XCD_IMPORT  UINT  XCD_WINAPI  XzGetBasePathW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1261. XCD_IMPORT  UINT  XCD_WINAPI  XzGetBasePathA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1262. XCD_IMPORT  void  XCD_WINAPI  XzSetBasePathW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1263. XCD_IMPORT  void  XCD_WINAPI  XzSetBasePathA( HXCEEDZIP hZip, const char* pszValue );
  1264.  
  1265. // CompressionLevel property
  1266. XCD_IMPORT  UINT  XCD_WINAPI  XzGetCompressionLevel( HXCEEDZIP hZip );
  1267. XCD_IMPORT  void  XCD_WINAPI  XzSetCompressionLevel( HXCEEDZIP hZip, UINT uValue );
  1268.  
  1269. // CurrentOperation property
  1270. XCD_IMPORT  UINT  XCD_WINAPI  XzGetCurrentOperation( HXCEEDZIP hZip );
  1271.  
  1272. // EncryptionPassword property
  1273. XCD_IMPORT  UINT  XCD_WINAPI  XzGetEncryptionPasswordW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1274. XCD_IMPORT  UINT  XCD_WINAPI  XzGetEncryptionPasswordA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1275. XCD_IMPORT  void  XCD_WINAPI  XzSetEncryptionPasswordW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1276. XCD_IMPORT  void  XCD_WINAPI  XzSetEncryptionPasswordA( HXCEEDZIP hZip, const char* pwszValue );
  1277.  
  1278. // ExcludedFileAttributes property
  1279. XCD_IMPORT  DWORD XCD_WINAPI  XzGetExcludedFileAttributes( HXCEEDZIP hZip );
  1280. XCD_IMPORT  void  XCD_WINAPI  XzSetExcludedFileAttributes( HXCEEDZIP hZip, DWORD dwValue );
  1281.  
  1282. // ExtraHeaders property
  1283. XCD_IMPORT  UINT  XCD_WINAPI  XzGetExtraHeaders( HXCEEDZIP hZip );
  1284. XCD_IMPORT  void  XCD_WINAPI  XzSetExtraHeaders( HXCEEDZIP hZip, UINT uValue );
  1285.  
  1286. // FilesToExclude property
  1287. XCD_IMPORT  UINT  XCD_WINAPI  XzGetFilesToExcludeW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1288. XCD_IMPORT  UINT  XCD_WINAPI  XzGetFilesToExcludeA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1289. XCD_IMPORT  void  XCD_WINAPI  XzSetFilesToExcludeW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1290. XCD_IMPORT  void  XCD_WINAPI  XzSetFilesToExcludeA( HXCEEDZIP hZip, const char* pszValue );
  1291.  
  1292. // FilesToProcess property
  1293. XCD_IMPORT  UINT  XCD_WINAPI  XzGetFilesToProcessW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1294. XCD_IMPORT  UINT  XCD_WINAPI  XzGetFilesToProcessA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1295. XCD_IMPORT  void  XCD_WINAPI  XzSetFilesToProcessW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1296. XCD_IMPORT  void  XCD_WINAPI  XzSetFilesToProcessA( HXCEEDZIP hZip, const char* pszValue );
  1297.  
  1298. // MaxDateToProcess property
  1299. XCD_IMPORT  void  XCD_WINAPI  XzGetMaxDateToProcess( HXCEEDZIP hZip, LPSYSTEMTIME lpdtBuffer );
  1300. XCD_IMPORT  void  XCD_WINAPI  XzSetMaxDateToProcess( HXCEEDZIP hZip, const LPSYSTEMTIME lpdtValue );
  1301.  
  1302. // MaxSizeToProcess property
  1303. XCD_IMPORT  DWORD XCD_WINAPI  XzGetMaxSizeToProcess( HXCEEDZIP hZip );
  1304. XCD_IMPORT  void  XCD_WINAPI  XzSetMaxSizeToProcess( HXCEEDZIP hZip, DWORD dwValue );
  1305.  
  1306. // MinDateToProcess property
  1307. XCD_IMPORT  void  XCD_WINAPI  XzGetMinDateToProcess( HXCEEDZIP hZip, LPSYSTEMTIME lpdtBuffer );
  1308. XCD_IMPORT  void  XCD_WINAPI  XzSetMinDateToProcess( HXCEEDZIP hZip, const LPSYSTEMTIME lpdtValue );
  1309.  
  1310. // MinSizeToProcess property
  1311. XCD_IMPORT  DWORD XCD_WINAPI  XzGetMinSizeToProcess( HXCEEDZIP hZip );
  1312. XCD_IMPORT  void  XCD_WINAPI  XzSetMinSizeToProcess( HXCEEDZIP hZip, DWORD dwValue );
  1313.  
  1314. // PreservePaths property
  1315. XCD_IMPORT  BOOL  XCD_WINAPI  XzGetPreservePaths( HXCEEDZIP hZip );
  1316. XCD_IMPORT  void  XCD_WINAPI  XzSetPreservePaths( HXCEEDZIP hZip, BOOL bValue );
  1317.  
  1318. // ProcessSubfolders property
  1319. XCD_IMPORT  BOOL  XCD_WINAPI  XzGetProcessSubfolders( HXCEEDZIP hZip );
  1320. XCD_IMPORT  void  XCD_WINAPI  XzSetProcessSubfolders( HXCEEDZIP hZip, BOOL bValue );
  1321.  
  1322. // RequiredFileAttributes property
  1323. XCD_IMPORT  DWORD XCD_WINAPI  XzGetRequiredFileAttributes( HXCEEDZIP hZip );
  1324. XCD_IMPORT  void  XCD_WINAPI  XzSetRequiredFileAttributes( HXCEEDZIP hZip, DWORD dwValue );
  1325.  
  1326. // SfxBinaryModule property
  1327. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxBinaryModuleW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1328. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxBinaryModuleA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1329. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxBinaryModuleW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1330. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxBinaryModuleA( HXCEEDZIP hZip, const char* pszValue );
  1331.  
  1332. // SfxButtons property
  1333. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxButtonsW( HXCEEDZIP hZip, xcdSfxButtons xIndex, WCHAR* pwszBuffer, UINT uMaxLength );
  1334. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxButtonsA( HXCEEDZIP hZip, xcdSfxButtons xIndex, char* pszBuffer, UINT uMaxLength );
  1335. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxButtonsW( HXCEEDZIP hZip, xcdSfxButtons xIndex, const WCHAR* pwszValue );
  1336. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxButtonsA( HXCEEDZIP hZip, xcdSfxButtons xIndex, const char* pszValue );
  1337.  
  1338. // SfxDefaultPassword property
  1339. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxDefaultPasswordW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1340. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxDefaultPasswordA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1341. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxDefaultPasswordW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1342. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxDefaultPasswordA( HXCEEDZIP hZip, const char* pszValue );
  1343.  
  1344. // SfxDefaultUnzipToFolder property
  1345. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxDefaultUnzipToFolderW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1346. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxDefaultUnzipToFolderA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1347. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxDefaultUnzipToFolderW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1348. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxDefaultUnzipToFolderA( HXCEEDZIP hZip, const char* pszValue );
  1349.  
  1350. // SfxExistingFileBehavior property
  1351. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxExistingFileBehavior( HXCEEDZIP hZip );
  1352. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxExistingFileBehavior( HXCEEDZIP hZip, UINT uValue );
  1353.  
  1354. // SfxExtensionsToAssociate property
  1355. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxExtensionsToAssociateW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1356. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxExtensionsToAssociateA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1357. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxExtensionsToAssociateW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1358. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxExtensionsToAssociateA( HXCEEDZIP hZip, const char* pszValue );
  1359.  
  1360. // SfxExecuteAfter property
  1361. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxExecuteAfterW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1362. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxExecuteAfterA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1363. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxExecuteAfterW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1364. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxExecuteAfterA( HXCEEDZIP hZip, const char* pszValue );
  1365.  
  1366. // SfxIconFilename property
  1367. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxIconFilenameW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1368. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxIconFilenameA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1369. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxIconFilenameW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1370. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxIconFilenameA( HXCEEDZIP hZip, const char* pszValue );
  1371.  
  1372. // SfxInstallMode property
  1373. XCD_IMPORT  BOOL  XCD_WINAPI  XzGetSfxInstallMode( HXCEEDZIP hZip );
  1374. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxInstallMode( HXCEEDZIP hZip, BOOL bValue );
  1375.  
  1376. // SfxMessages property
  1377. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxMessagesW( HXCEEDZIP hZip, xcdSfxMessages xIndex, WCHAR* pwszBuffer, UINT uMaxLength );
  1378. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxMessagesA( HXCEEDZIP hZip, xcdSfxMessages xIndex, char* pszBuffer,   UINT uMaxLength );
  1379. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxMessagesW( HXCEEDZIP hZip, xcdSfxMessages xIndex, const WCHAR* pwszValue );
  1380. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxMessagesA( HXCEEDZIP hZip, xcdSfxMessages xIndex, const char* pszValue );
  1381.  
  1382. // SfxProgramGroup property
  1383. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxProgramGroupW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1384. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxProgramGroupA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1385. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxProgramGroupW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1386. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxProgramGroupA( HXCEEDZIP hZip, const char* pszValue );
  1387.  
  1388. // SfxProgramGroupItems property
  1389. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxProgramGroupItemsW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1390. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxProgramGroupItemsA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1391. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxProgramGroupItemsW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1392. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxProgramGroupItemsA( HXCEEDZIP hZip, const char* pszValue );
  1393.  
  1394. // SfxReadmeFile propertyf
  1395. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxReadmeFileW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1396. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxReadmeFileA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1397. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxReadmeFileW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1398. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxReadmeFileA( HXCEEDZIP hZip, const char* pszValue );
  1399.  
  1400. // SfxStrings property
  1401. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxStringsW( HXCEEDZIP hZip, xcdSfxStrings xIndex, WCHAR* pwszBuffer, UINT uMaxLength );
  1402. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxStringsA( HXCEEDZIP hZip, xcdSfxStrings xIndex, char* pszBuffer,   UINT uMaxLength );
  1403. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxStringsW( HXCEEDZIP hZip, xcdSfxStrings xIndex, const WCHAR* pwszValue );
  1404. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxStringsA( HXCEEDZIP hZip, xcdSfxStrings xIndex, const char* pszValue );
  1405.  
  1406. // SkipIfExisting property
  1407. XCD_IMPORT  BOOL  XCD_WINAPI  XzGetSkipIfExisting( HXCEEDZIP hZip );
  1408. XCD_IMPORT  void  XCD_WINAPI  XzSetSkipIfExisting( HXCEEDZIP hZip, BOOL bValue );
  1409.  
  1410. // SkipIfNotExisting property
  1411. XCD_IMPORT  BOOL  XCD_WINAPI  XzGetSkipIfNotExisting( HXCEEDZIP hZip );
  1412. XCD_IMPORT  void  XCD_WINAPI  XzSetSkipIfNotExisting( HXCEEDZIP hZip, BOOL bValue );
  1413.  
  1414. // SkipIfOlderDate property
  1415. XCD_IMPORT  BOOL  XCD_WINAPI  XzGetSkipIfOlderDate( HXCEEDZIP hZip );
  1416. XCD_IMPORT  void  XCD_WINAPI  XzSetSkipIfOlderDate( HXCEEDZIP hZip, BOOL bValue );
  1417.  
  1418. // SkipIfOlderVersion property
  1419. XCD_IMPORT  BOOL  XCD_WINAPI  XzGetSkipIfOlderVersion( HXCEEDZIP hZip );
  1420. XCD_IMPORT  void  XCD_WINAPI  XzSetSkipIfOlderVersion( HXCEEDZIP hZip, BOOL bValue );
  1421.  
  1422. // SpanMultipleDisks property
  1423. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSpanMultipleDisks( HXCEEDZIP hZip );
  1424. XCD_IMPORT  void  XCD_WINAPI  XzSetSpanMultipleDisks( HXCEEDZIP hZip, UINT uValue );
  1425.  
  1426. // SplitSize property
  1427. XCD_IMPORT  DWORD XCD_WINAPI  XzGetSplitSize( HXCEEDZIP hZip );
  1428. XCD_IMPORT  void  XCD_WINAPI  XzSetSplitSize( HXCEEDZIP hZip, DWORD dwValue );
  1429.  
  1430. // TempFolder property
  1431. XCD_IMPORT  UINT  XCD_WINAPI  XzGetTempFolderW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1432. XCD_IMPORT  UINT  XCD_WINAPI  XzGetTempFolderA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1433. XCD_IMPORT  void  XCD_WINAPI  XzSetTempFolderW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1434. XCD_IMPORT  void  XCD_WINAPI  XzSetTempFolderA( HXCEEDZIP hZip, const char* pszValue );
  1435.  
  1436. // UnzipToFolder property
  1437. XCD_IMPORT  UINT  XCD_WINAPI  XzGetUnzipToFolderW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1438. XCD_IMPORT  UINT  XCD_WINAPI  XzGetUnzipToFolderA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1439. XCD_IMPORT  void  XCD_WINAPI  XzSetUnzipToFolderW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1440. XCD_IMPORT  void  XCD_WINAPI  XzSetUnzipToFolderA( HXCEEDZIP hZip, const char* pszValue );
  1441.  
  1442. // UseTempFile property
  1443. XCD_IMPORT  BOOL  XCD_WINAPI  XzGetUseTempFile( HXCEEDZIP hZip );
  1444. XCD_IMPORT  void  XCD_WINAPI  XzSetUseTempFile( HXCEEDZIP hZip, BOOL bValue );
  1445.  
  1446. // ZipFilename property
  1447. XCD_IMPORT  UINT  XCD_WINAPI  XzGetZipFilenameW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1448. XCD_IMPORT  UINT  XCD_WINAPI  XzGetZipFilenameA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1449. XCD_IMPORT  void  XCD_WINAPI  XzSetZipFilenameW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1450. XCD_IMPORT  void  XCD_WINAPI  XzSetZipFilenameA( HXCEEDZIP hZip, const char* pszValue );
  1451.  
  1452. // ZipOpenedFiles property
  1453. XCD_IMPORT  BOOL  XCD_WINAPI  XzGetZipOpenedFiles( HXCEEDZIP hZip );
  1454. XCD_IMPORT  void  XCD_WINAPI  XzSetZipOpenedFiles( HXCEEDZIP hZip, BOOL bValue );
  1455.  
  1456. // SfxFilesToCopy property
  1457. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxFilesToCopyW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1458. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxFilesToCopyA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1459. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxFilesToCopyW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1460. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxFilesToCopyA( HXCEEDZIP hZip, const char* pszValue );
  1461.  
  1462. // SfxFilesToRegister property
  1463. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxFilesToRegisterW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1464. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxFilesToRegisterA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1465. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxFilesToRegisterW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1466. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxFilesToRegisterA( HXCEEDZIP hZip, const char* pszValue );
  1467.  
  1468. // SfxRegistryKeys property
  1469. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxRegistryKeysW( HXCEEDZIP hZip, WCHAR* pwszBuffer, UINT uMaxLength );
  1470. XCD_IMPORT  UINT  XCD_WINAPI  XzGetSfxRegistryKeysA( HXCEEDZIP hZip, char* pszBuffer,   UINT uMaxLength );
  1471. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxRegistryKeysW( HXCEEDZIP hZip, const WCHAR* pwszValue );
  1472. XCD_IMPORT  void  XCD_WINAPI  XzSetSfxRegistryKeysA( HXCEEDZIP hZip, const char* pszValue );
  1473.  
  1474. // DeleteZippedFiles property
  1475. XCD_IMPORT  BOOL  XCD_WINAPI  XzGetDeleteZippedFiles( HXCEEDZIP hZip );
  1476. XCD_IMPORT  void  XCD_WINAPI  XzSetDeleteZippedFiles( HXCEEDZIP hZip, BOOL bValue );
  1477.  
  1478. // FirstDiskFreeSpace property
  1479. XCD_IMPORT  DWORD XCD_WINAPI  XzGetFirstDiskFreeSpace( HXCEEDZIP hZip );
  1480. XCD_IMPORT  void  XCD_WINAPI  XzSetFirstDiskFreeSpace( HXCEEDZIP hZip, DWORD dwValue );
  1481.  
  1482. // MinDiskFreeSpace property
  1483. XCD_IMPORT  DWORD XCD_WINAPI  XzGetMinDiskFreeSpace( HXCEEDZIP hZip );
  1484. XCD_IMPORT  void  XCD_WINAPI  XzSetMinDiskFreeSpace( HXCEEDZIP hZip, DWORD dwValue );
  1485.  
  1486. // EventsToTrigger property
  1487. XCD_IMPORT  DWORD XCD_WINAPI  XzGetEventsToTrigger( HXCEEDZIP hZip );
  1488. XCD_IMPORT  void  XCD_WINAPI  XzSetEventsToTrigger( HXCEEDZIP hZip, DWORD dwValue );
  1489.  
  1490. // CompressionMethod property
  1491. XCD_IMPORT  UINT  XCD_WINAPI  XzGetCompressionMethod( HXCEEDZIP hZip );
  1492. XCD_IMPORT  void  XCD_WINAPI  XzSetCompressionMethod( HXCEEDZIP hZip, UINT uValue );
  1493.  
  1494.  
  1495. //
  1496. // XceedCompression property handling functions
  1497. //
  1498.  
  1499. XCD_IMPORT  UINT  XCD_WINAPI  XcGetEncryptionPasswordW( HXCEEDCMP hComp, WCHAR* pwszBuffer, UINT uMaxLength );
  1500. XCD_IMPORT  UINT  XCD_WINAPI  XcGetEncryptionPasswordA( HXCEEDCMP hComp, char*  pszEncryptionPassword, UINT uMaxLength );
  1501.  
  1502. XCD_IMPORT  void  XCD_WINAPI  XcSetEncryptionPasswordW( HXCEEDCMP hComp, const WCHAR* pwszValue );
  1503. XCD_IMPORT  void  XCD_WINAPI  XcSetEncryptionPasswordA( HXCEEDCMP hComp, const char*  pszValue );
  1504.  
  1505. XCD_IMPORT  int   XCD_WINAPI  XcGetCompressionLevel( HXCEEDCMP hComp );
  1506. XCD_IMPORT  void  XCD_WINAPI  XcSetCompressionLevel( HXCEEDCMP hComp, int nValue );
  1507.  
  1508. XCD_IMPORT  UINT  XCD_WINAPI  XcGetCompressionMethod( HXCEEDCMP hComp );
  1509. XCD_IMPORT  void  XCD_WINAPI  XcSetCompressionMethod( HXCEEDCMP hComp, UINT uValue );
  1510.  
  1511.  
  1512. //
  1513. // Exported API for XceedZip methods
  1514. //
  1515.  
  1516. // AddFilesToProcess method
  1517. XCD_IMPORT  void  XCD_WINAPI  XzAddFilesToProcessW( HXCEEDZIP hZip, const WCHAR* pwszFileMask );
  1518. XCD_IMPORT  void  XCD_WINAPI  XzAddFilesToProcessA( HXCEEDZIP hZip, const char* pszFileMask );
  1519.  
  1520. // AddFilesToExclude method
  1521. XCD_IMPORT  void  XCD_WINAPI  XzAddFilesToExcludeW( HXCEEDZIP hZip, const WCHAR* pwszFileMask );
  1522. XCD_IMPORT  void  XCD_WINAPI  XzAddFilesToExcludeA( HXCEEDZIP hZip, const char* pszFileMask );
  1523.  
  1524. // Convert method
  1525. XCD_IMPORT  int   XCD_WINAPI  XzConvertW( HXCEEDZIP hZip, const WCHAR* pwszDestFilename );
  1526. XCD_IMPORT  int   XCD_WINAPI  XzConvertA( HXCEEDZIP hZip, const char* pszDestFilename );
  1527.  
  1528. // XGetErrorDescription method
  1529. XCD_IMPORT  UINT  XCD_WINAPI  XzGetErrorDescriptionW( HXCEEDZIP hZip, xcdValueType xType, int nCode, WCHAR* pwszBuffer, UINT uMaxLength );
  1530. XCD_IMPORT  UINT  XCD_WINAPI  XzGetErrorDescriptionA( HXCEEDZIP hZip, xcdValueType xType, int nCode, char* pszBuffer,   UINT uMaxLength );
  1531.  
  1532. // XGetZipFileInformation method
  1533. XCD_IMPORT  int   XCD_WINAPI  XzGetZipFileInformation( HXCEEDZIP hZip, LONG* plNBFiles, LONG* plCompressedSize, LONG* plUncompressedSize, SHORT* pnCompressionRatio, BOOL* pbSpanned );
  1534.  
  1535. // ListZipConetnts method
  1536. XCD_IMPORT  int   XCD_WINAPI  XzListZipContents( HXCEEDZIP hZip );
  1537.  
  1538. // PreviewFiles method
  1539. XCD_IMPORT  int   XCD_WINAPI  XzPreviewFiles( HXCEEDZIP hZip, BOOL bCalcCompSize );
  1540.  
  1541. // RemoveFiles method
  1542. XCD_IMPORT  int   XCD_WINAPI  XzRemoveFiles( HXCEEDZIP hZip );
  1543.  
  1544. // SfxAddExtensionToAssociate method
  1545. XCD_IMPORT  void  XCD_WINAPI  XzSfxAddExtensionToAssociateW( HXCEEDZIP hZip, const WCHAR* pwszDescription, const WCHAR* pwszExtension, const WCHAR* pwszApplication );
  1546. XCD_IMPORT  void  XCD_WINAPI  XzSfxAddExtensionToAssociateA( HXCEEDZIP hZip, const char* pszDescription,   const char* pszExtension,   const char* pszApplication );
  1547.  
  1548. // SfxAddProgramGroupItem method
  1549. XCD_IMPORT  void  XCD_WINAPI  XzSfxAddProgramGroupItemW( HXCEEDZIP hZip, const WCHAR* pwszApplication, const WCHAR* pwszDescription );
  1550. XCD_IMPORT  void  XCD_WINAPI  XzSfxAddProgramGroupItemA( HXCEEDZIP hZip, const char* pszApplication,   const char* pszDescription );
  1551.  
  1552. // SfxClearButtons, SfxClearMessages and SfxClearStrings methods
  1553. XCD_IMPORT  void  XCD_WINAPI  XzSfxClearButtons( HXCEEDZIP hZip );
  1554. XCD_IMPORT  void  XCD_WINAPI  XzSfxClearMessages( HXCEEDZIP hZip );
  1555. XCD_IMPORT  void  XCD_WINAPI  XzSfxClearStrings( HXCEEDZIP hZip );
  1556.  
  1557. // SfxLoadConfig method
  1558. XCD_IMPORT  BOOL  XCD_WINAPI  XzSfxLoadConfigW( HXCEEDZIP hZip, const WCHAR* pwszConfigFilename );
  1559. XCD_IMPORT  BOOL  XCD_WINAPI  XzSfxLoadConfigA( HXCEEDZIP hZip, const char* pszConfigFilename );
  1560.  
  1561. // SfxSaveConfig method
  1562. XCD_IMPORT  BOOL  XCD_WINAPI  XzSfxSaveConfigW( HXCEEDZIP hZip, const WCHAR* pwszConfigFilename );
  1563. XCD_IMPORT  BOOL  XCD_WINAPI  XzSfxSaveConfigA( HXCEEDZIP hZip, const char* pszConfigFilename );
  1564.  
  1565. // SfxResetButtons, SfxResetMessages and SfxResetStrings methods
  1566. XCD_IMPORT  void  XCD_WINAPI  XzSfxResetButtons( HXCEEDZIP hZip );
  1567. XCD_IMPORT  void  XCD_WINAPI  XzSfxResetMessages( HXCEEDZIP hZip );
  1568. XCD_IMPORT  void  XCD_WINAPI  XzSfxResetStrings( HXCEEDZIP hZip );
  1569.  
  1570. // TestZipFile method
  1571. XCD_IMPORT  int   XCD_WINAPI  XzTestZipFile( HXCEEDZIP hZip, BOOL bCheckCompressedData );
  1572.  
  1573. // Unzip method
  1574. XCD_IMPORT  int   XCD_WINAPI  XzUnzip( HXCEEDZIP hZip );
  1575.  
  1576. // Zip method
  1577. XCD_IMPORT  int   XCD_WINAPI  XzZip( HXCEEDZIP hZip );
  1578.  
  1579. // SfxAddExecuteAfter method
  1580. XCD_IMPORT  void  XCD_WINAPI  XzSfxAddExecuteAfterW( HXCEEDZIP hZip, const WCHAR* pwszApplication, const WCHAR* pwszParameters );
  1581. XCD_IMPORT  void  XCD_WINAPI  XzSfxAddExecuteAfterA( HXCEEDZIP hZip, const char* pszApplication,   const char* pszParameters );
  1582.  
  1583. // SfxAddFileToCopy method
  1584. XCD_IMPORT  void  XCD_WINAPI  XzSfxAddFileToCopyW( HXCEEDZIP hZip, const WCHAR* pwszSource, const WCHAR* pwszDestination );
  1585. XCD_IMPORT  void  XCD_WINAPI  XzSfxAddFileToCopyA( HXCEEDZIP hZip, const char* pszSource,   const char* pszDestination );
  1586.  
  1587. // SfxAddFileToRegister method
  1588. XCD_IMPORT  void  XCD_WINAPI  XzSfxAddFileToRegisterW( HXCEEDZIP hZip, const WCHAR* pwszFilename );
  1589. XCD_IMPORT  void  XCD_WINAPI  XzSfxAddFileToRegisterA( HXCEEDZIP hZip, const char* pszFilename );
  1590.  
  1591. // SfxAddRegistryKey method
  1592. XCD_IMPORT  void  XCD_WINAPI  XzSfxAddRegistryKeyW( HXCEEDZIP hZip, const WCHAR* pwszKey, const WCHAR* pwszValueName, const WCHAR* pwszValue );
  1593. XCD_IMPORT  void  XCD_WINAPI  XzSfxAddRegistryKeyA( HXCEEDZIP hZip, const char* pszKey,   const char* pszValueName,   const char* pszValue );
  1594.  
  1595. // GetZipContents method
  1596. XCD_IMPORT  int   XCD_WINAPI  XzGetZipContents( HXCEEDZIP hZip, HXCEEDZIPITEMS* phItems );
  1597.  
  1598.  
  1599. //
  1600. // Exported API for XceedCompression methods
  1601. //
  1602.  
  1603. // GetErrorDescription method
  1604. XCD_IMPORT  UINT  XCD_WINAPI  XcGetErrorDescriptionW( HXCEEDCMP hComp, int nCode, WCHAR* pwszBuffer, UINT uMaxLength );
  1605. XCD_IMPORT  UINT  XCD_WINAPI  XcGetErrorDescriptionA( HXCEEDCMP hComp, int nCode, char* pszBuffer,   UINT uMaxLength );
  1606.  
  1607. // Compress method
  1608. XCD_IMPORT  int   XCD_WINAPI  XcCompress( HXCEEDCMP hComp, const BYTE* pcSource, DWORD dwSourceSize, BYTE** ppcCompressed, DWORD* pdwCompressedSize, BOOL bEndOfData );
  1609.  
  1610. // Uncompress method
  1611. XCD_IMPORT  int   XCD_WINAPI  XcUncompress( HXCEEDCMP hComp, const BYTE* pcSource, DWORD dwSourceSize, BYTE** ppcUncompressed, DWORD* pdwUncompressedSize, BOOL bEndOfData );
  1612.  
  1613. // CalculateCrc method
  1614. XCD_IMPORT  long  XCD_WINAPI  XcCalculateCrc( HXCEEDCMP hComp, const BYTE* pcData, DWORD dwDataSize, long lPreviousCrc );
  1615.  
  1616.  
  1617. //
  1618. // Exported API for XceedZipItems collection
  1619. //
  1620.  
  1621. XCD_IMPORT  BOOL  XCD_WINAPI  XziGetFirstItemW( HXCEEDZIPITEMS hItems, xcdListingFileParamsW* pxItem );
  1622. XCD_IMPORT  BOOL  XCD_WINAPI  XziGetFirstItemA( HXCEEDZIPITEMS hItems, xcdListingFileParamsA* pxItem );
  1623.  
  1624. XCD_IMPORT  BOOL  XCD_WINAPI  XziGetNextItemW( HXCEEDZIPITEMS hItems, xcdListingFileParamsW* pxItem );
  1625. XCD_IMPORT  BOOL  XCD_WINAPI  XziGetNextItemA( HXCEEDZIPITEMS hItems, xcdListingFileParamsA* pxItem );
  1626.  
  1627. #endif // _MSC_VER
  1628.  
  1629.  
  1630. ////////////////////////////////////////////////////////////////////////////////
  1631. // Pointer to functions structure, for easy calls without using XCEEDZIP.LIB
  1632. //
  1633.  
  1634. typedef struct _XceedZipFunctions
  1635. {
  1636.   LPFNXCEEDZIPINITDLL                 lpfnXceedZipInitDLL;
  1637.   LPFNXCEEDZIPSHUTDOWNDLL             lpfnXceedZipShutdownDLL;
  1638.   LPFNXZCREATEXCEEDZIPW               lpfnXzCreateXceedZipW;
  1639.   LPFNXZCREATEXCEEDZIPA               lpfnXzCreateXceedZipA;
  1640.   LPFNXZDESTROYXCEEDZIP               lpfnXzDestroyXceedZip;
  1641.   LPFNXCCREATEXCEEDCOMPRESSIONW       lpfnXcCreateXceedCompressionW;
  1642.   LPFNXCCREATEXCEEDCOMPRESSIONA       lpfnXcCreateXceedCompressionA;
  1643.   LPFNXCDESTROYXCEEDCOMPRESSION       lpfnXcDestroyXceedCompression;
  1644.   LPFNXZSETXCEEDZIPCALLBACK           lpfnXzSetXceedZipCallback;
  1645.   LPFNXZSETXCEEDZIPWINDOW             lpfnXzSetXceedZipWindow;
  1646.   LPFNXZALLOC                         lpfnXzAlloc;
  1647.   LPFNXZFREE                          lpfnXzFree;
  1648.   LPFNXZGETABORT                      lpfnXzGetAbort;
  1649.   LPFNXZSETABORT                      lpfnXzSetAbort;
  1650.   LPFNXZGETBACKGROUNDPROCESSING       lpfnXzGetBackgroundProcessing;
  1651.   LPFNXZSETBACKGROUNDPROCESSING       lpfnXzSetBackgroundProcessing;
  1652.   LPFNXZGETBASEPATHW                  lpfnXzGetBasePathW;
  1653.   LPFNXZGETBASEPATHA                  lpfnXzGetBasePathA;
  1654.   LPFNXZSETBASEPATHW                  lpfnXzSetBasePathW;
  1655.   LPFNXZSETBASEPATHA                  lpfnXzSetBasePathA;
  1656.   LPFNXZGETCOMPRESSIONLEVEL           lpfnXzGetCompressionLevel;
  1657.   LPFNXZSETCOMPRESSIONLEVEL           lpfnXzSetCompressionLevel;
  1658.   LPFNXZGETCURRENTOPERATION           lpfnXzGetCurrentOperation;
  1659.   LPFNXZGETENCRYPTIONPASSWORDW        lpfnXzGetEncryptionPasswordW;
  1660.   LPFNXZGETENCRYPTIONPASSWORDA        lpfnXzGetEncryptionPasswordA;
  1661.   LPFNXZSETENCRYPTIONPASSWORDW        lpfnXzSetEncryptionPasswordW;
  1662.   LPFNXZSETENCRYPTIONPASSWORDA        lpfnXzSetEncryptionPasswordA;
  1663.   LPFNXZGETEXCLUDEDFILEATTRIBUTES     lpfnXzGetExcludedFileAttributes;
  1664.   LPFNXZSETEXCLUDEDFILEATTRIBUTES     lpfnXzSetExcludedFileAttributes;
  1665.   LPFNXZGETEXTRAHEADERS               lpfnXzGetExtraHeaders;
  1666.   LPFNXZSETEXTRAHEADERS               lpfnXzSetExtraHeaders;
  1667.   LPFNXZGETFILESTOEXCLUDEW            lpfnXzGetFilesToExcludeW;
  1668.   LPFNXZGETFILESTOEXCLUDEA            lpfnXzGetFilesToExcludeA;
  1669.   LPFNXZSETFILESTOEXCLUDEW            lpfnXzSetFilesToExcludeW;
  1670.   LPFNXZSETFILESTOEXCLUDEA            lpfnXzSetFilesToExcludeA;
  1671.   LPFNXZGETFILESTOPROCESSW            lpfnXzGetFilesToProcessW;
  1672.   LPFNXZGETFILESTOPROCESSA            lpfnXzGetFilesToProcessA;
  1673.   LPFNXZSETFILESTOPROCESSW            lpfnXzSetFilesToProcessW;
  1674.   LPFNXZSETFILESTOPROCESSA            lpfnXzSetFilesToProcessA;
  1675.   LPFNXZGETMAXDATETOPROCESS           lpfnXzGetMaxDateToProcess;
  1676.   LPFNXZSETMAXDATETOPROCESS           lpfnXzSetMaxDateToProcess;
  1677.   LPFNXZGETMAXSIZETOPROCESS           lpfnXzGetMaxSizeToProcess;
  1678.   LPFNXZSETMAXSIZETOPROCESS           lpfnXzSetMaxSizeToProcess;
  1679.   LPFNXZGETMINDATETOPROCESS           lpfnXzGetMinDateToProcess;
  1680.   LPFNXZSETMINDATETOPROCESS           lpfnXzSetMinDateToProcess;
  1681.   LPFNXZGETMINSIZETOPROCESS           lpfnXzGetMinSizeToProcess;
  1682.   LPFNXZSETMINSIZETOPROCESS           lpfnXzSetMinSizeToProcess;
  1683.   LPFNXZGETPRESERVEPATHS              lpfnXzGetPreservePaths;
  1684.   LPFNXZSETPRESERVEPATHS              lpfnXzSetPreservePaths;
  1685.   LPFNXZGETPROCESSSUBFOLDERS          lpfnXzGetProcessSubfolders;
  1686.   LPFNXZSETPROCESSSUBFOLDERS          lpfnXzSetProcessSubfolders;
  1687.   LPFNXZGETREQUIREDFILEATTRIBUTES     lpfnXzGetRequiredFileAttributes;
  1688.   LPFNXZSETREQUIREDFILEATTRIBUTES     lpfnXzSetRequiredFileAttributes;
  1689.   LPFNXZGETSFXBINARYMODULEW           lpfnXzGetSfxBinaryModuleW;
  1690.   LPFNXZGETSFXBINARYMODULEA           lpfnXzGetSfxBinaryModuleA;
  1691.   LPFNXZSETSFXBINARYMODULEW           lpfnXzSetSfxBinaryModuleW;
  1692.   LPFNXZSETSFXBINARYMODULEA           lpfnXzSetSfxBinaryModuleA;
  1693.   LPFNXZGETSFXBUTTONSW                lpfnXzGetSfxButtonsW;
  1694.   LPFNXZGETSFXBUTTONSA                lpfnXzGetSfxButtonsA;
  1695.   LPFNXZSETSFXBUTTONSW                lpfnXzSetSfxButtonsW;
  1696.   LPFNXZSETSFXBUTTONSA                lpfnXzSetSfxButtonsA;
  1697.   LPFNXZGETSFXDEFAULTPASSWORDW        lpfnXzGetSfxDefaultPasswordW;
  1698.   LPFNXZGETSFXDEFAULTPASSWORDA        lpfnXzGetSfxDefaultPasswordA;
  1699.   LPFNXZSETSFXDEFAULTPASSWORDW        lpfnXzSetSfxDefaultPasswordW;
  1700.   LPFNXZSETSFXDEFAULTPASSWORDA        lpfnXzSetSfxDefaultPasswordA;
  1701.   LPFNXZGETSFXDEFAULTUNZIPTOFOLDERW   lpfnXzGetSfxDefaultUnzipToFolderW;
  1702.   LPFNXZGETSFXDEFAULTUNZIPTOFOLDERA   lpfnXzGetSfxDefaultUnzipToFolderA;
  1703.   LPFNXZSETSFXDEFAULTUNZIPTOFOLDERW   lpfnXzSetSfxDefaultUnzipToFolderW;
  1704.   LPFNXZSETSFXDEFAULTUNZIPTOFOLDERA   lpfnXzSetSfxDefaultUnzipToFolderA;
  1705.   LPFNXZGETSFXEXISTINGFILEBEHAVIOR    lpfnXzGetSfxExistingFileBehavior;
  1706.   LPFNXZSETSFXEXISTINGFILEBEHAVIOR    lpfnXzSetSfxExistingFileBehavior;
  1707.   LPFNXZGETSFXEXTENSIONSTOASSOCIATEW  lpfnXzGetSfxExtensionsToAssociateW;
  1708.   LPFNXZGETSFXEXTENSIONSTOASSOCIATEA  lpfnXzGetSfxExtensionsToAssociateA;
  1709.   LPFNXZSETSFXEXTENSIONSTOASSOCIATEW  lpfnXzSetSfxExtensionsToAssociateW;
  1710.   LPFNXZSETSFXEXTENSIONSTOASSOCIATEA  lpfnXzSetSfxExtensionsToAssociateA;
  1711.   LPFNXZGETSFXEXECUTEAFTERW           lpfnXzGetSfxExecuteAfterW;
  1712.   LPFNXZGETSFXEXECUTEAFTERA           lpfnXzGetSfxExecuteAfterA;
  1713.   LPFNXZSETSFXEXECUTEAFTERW           lpfnXzSetSfxExecuteAfterW;
  1714.   LPFNXZSETSFXEXECUTEAFTERA           lpfnXzSetSfxExecuteAfterA;
  1715.   LPFNXZGETSFXICONFILENAMEW           lpfnXzGetSfxIconFilenameW;
  1716.   LPFNXZGETSFXICONFILENAMEA           lpfnXzGetSfxIconFilenameA;
  1717.   LPFNXZSETSFXICONFILENAMEW           lpfnXzSetSfxIconFilenameW;
  1718.   LPFNXZSETSFXICONFILENAMEA           lpfnXzSetSfxIconFilenameA;
  1719.   LPFNXZGETSFXINSTALLMODE             lpfnXzGetSfxInstallMode;
  1720.   LPFNXZSETSFXINSTALLMODE             lpfnXzSetSfxInstallMode;
  1721.   LPFNXZGETSFXMESSAGESW               lpfnXzGetSfxMessagesW;
  1722.   LPFNXZGETSFXMESSAGESA               lpfnXzGetSfxMessagesA;
  1723.   LPFNXZSETSFXMESSAGESW               lpfnXzSetSfxMessagesW;
  1724.   LPFNXZSETSFXMESSAGESA               lpfnXzSetSfxMessagesA;
  1725.   LPFNXZGETSFXPROGRAMGROUPW           lpfnXzGetSfxProgramGroupW;
  1726.   LPFNXZGETSFXPROGRAMGROUPA           lpfnXzGetSfxProgramGroupA;
  1727.   LPFNXZSETSFXPROGRAMGROUPW           lpfnXzSetSfxProgramGroupW;
  1728.   LPFNXZSETSFXPROGRAMGROUPA           lpfnXzSetSfxProgramGroupA;
  1729.   LPFNXZGETSFXPROGRAMGROUPITEMSW      lpfnXzGetSfxProgramGroupItemsW;
  1730.   LPFNXZGETSFXPROGRAMGROUPITEMSA      lpfnXzGetSfxProgramGroupItemsA;
  1731.   LPFNXZSETSFXPROGRAMGROUPITEMSW      lpfnXzSetSfxProgramGroupItemsW;
  1732.   LPFNXZSETSFXPROGRAMGROUPITEMSA      lpfnXzSetSfxProgramGroupItemsA;
  1733.   LPFNXZGETSFXREADMEFILEW             lpfnXzGetSfxReadmeFileW;
  1734.   LPFNXZGETSFXREADMEFILEA             lpfnXzGetSfxReadmeFileA;
  1735.   LPFNXZSETSFXREADMEFILEW             lpfnXzSetSfxReadmeFileW;
  1736.   LPFNXZSETSFXREADMEFILEA             lpfnXzSetSfxReadmeFileA;
  1737.   LPFNXZGETSFXSTRINGSW                lpfnXzGetSfxStringsW;
  1738.   LPFNXZGETSFXSTRINGSA                lpfnXzGetSfxStringsA;
  1739.   LPFNXZSETSFXSTRINGSW                lpfnXzSetSfxStringsW;
  1740.   LPFNXZSETSFXSTRINGSA                lpfnXzSetSfxStringsA;
  1741.   LPFNXZGETSKIPIFEXISTING             lpfnXzGetSkipIfExisting;
  1742.   LPFNXZSETSKIPIFEXISTING             lpfnXzSetSkipIfExisting;
  1743.   LPFNXZGETSKIPIFNOTEXISTING          lpfnXzGetSkipIfNotExisting;
  1744.   LPFNXZSETSKIPIFNOTEXISTING          lpfnXzSetSkipIfNotExisting;
  1745.   LPFNXZGETSKIPIFOLDERDATE            lpfnXzGetSkipIfOlderDate;
  1746.   LPFNXZSETSKIPIFOLDERDATE            lpfnXzSetSkipIfOlderDate;
  1747.   LPFNXZGETSKIPIFOLDERVERSION         lpfnXzGetSkipIfOlderVersion;
  1748.   LPFNXZSETSKIPIFOLDERVERSION         lpfnXzSetSkipIfOlderVersion;
  1749.   LPFNXZGETSPANMULTIPLEDISKS          lpfnXzGetSpanMultipleDisks;
  1750.   LPFNXZSETSPANMULTIPLEDISKS          lpfnXzSetSpanMultipleDisks;
  1751.   LPFNXZGETSPLITSIZE                  lpfnXzGetSplitSize;
  1752.   LPFNXZSETSPLITSIZE                  lpfnXzSetSplitSize;
  1753.   LPFNXZGETTEMPFOLDERW                lpfnXzGetTempFolderW;
  1754.   LPFNXZGETTEMPFOLDERA                lpfnXzGetTempFolderA;
  1755.   LPFNXZSETTEMPFOLDERW                lpfnXzSetTempFolderW;
  1756.   LPFNXZSETTEMPFOLDERA                lpfnXzSetTempFolderA;
  1757.   LPFNXZGETUNZIPTOFOLDERW             lpfnXzGetUnzipToFolderW;
  1758.   LPFNXZGETUNZIPTOFOLDERA             lpfnXzGetUnzipToFolderA;
  1759.   LPFNXZSETUNZIPTOFOLDERW             lpfnXzSetUnzipToFolderW;
  1760.   LPFNXZSETUNZIPTOFOLDERA             lpfnXzSetUnzipToFolderA;
  1761.   LPFNXZGETUSETEMPFILE                lpfnXzGetUseTempFile;
  1762.   LPFNXZSETUSETEMPFILE                lpfnXzSetUseTempFile;
  1763.   LPFNXZGETZIPFILENAMEW               lpfnXzGetZipFilenameW;
  1764.   LPFNXZGETZIPFILENAMEA               lpfnXzGetZipFilenameA;
  1765.   LPFNXZSETZIPFILENAMEW               lpfnXzSetZipFilenameW;
  1766.   LPFNXZSETZIPFILENAMEA               lpfnXzSetZipFilenameA;
  1767.   LPFNXZGETZIPOPENEDFILES             lpfnXzGetZipOpenedFiles;
  1768.   LPFNXZSETZIPOPENEDFILES             lpfnXzSetZipOpenedFiles;
  1769.   LPFNXCGETENCRYPTIONPASSWORDW        lpfnXcGetEncryptionPasswordW;
  1770.   LPFNXCGETENCRYPTIONPASSWORDA        lpfnXcGetEncryptionPasswordA;
  1771.   LPFNXCSETENCRYPTIONPASSWORDW        lpfnXcSetEncryptionPasswordW;
  1772.   LPFNXCSETENCRYPTIONPASSWORDA        lpfnXcSetEncryptionPasswordA;
  1773.   LPFNXCGETCOMPRESSIONLEVEL           lpfnXcGetCompressionLevel;
  1774.   LPFNXCSETCOMPRESSIONLEVEL           lpfnXcSetCompressionLevel;
  1775.   LPFNXZADDFILESTOPROCESSW            lpfnXzAddFilesToProcessW;
  1776.   LPFNXZADDFILESTOPROCESSA            lpfnXzAddFilesToProcessA;
  1777.   LPFNXZADDFILESTOEXCLUDEW            lpfnXzAddFilesToExcludeW;
  1778.   LPFNXZADDFILESTOEXCLUDEA            lpfnXzAddFilesToExcludeA;
  1779.   LPFNXZCONVERTW                      lpfnXzConvertW;
  1780.   LPFNXZCONVERTA                      lpfnXzConvertA;
  1781.   LPFNXZGETERRORDESCRIPTIONW          lpfnXzGetErrorDescriptionW;
  1782.   LPFNXZGETERRORDESCRIPTIONA          lpfnXzGetErrorDescriptionA;
  1783.   LPFNXZGETZIPFILEINFORMATION         lpfnXzGetZipFileInformation;
  1784.   LPFNXZLISTZIPCONTENTS               lpfnXzListZipContents;
  1785.   LPFNXZPREVIEWFILES                  lpfnXzPreviewFiles;
  1786.   LPFNXZREMOVEFILES                   lpfnXzRemoveFiles;
  1787.   LPFNXZSFXADDEXTENSIONTOASSOCIATEW   lpfnXzSfxAddExtensionToAssociateW;
  1788.   LPFNXZSFXADDEXTENSIONTOASSOCIATEA   lpfnXzSfxAddExtensionToAssociateA;
  1789.   LPFNXZSFXADDPROGRAMGROUPITEMW       lpfnXzSfxAddProgramGroupItemW;
  1790.   LPFNXZSFXADDPROGRAMGROUPITEMA       lpfnXzSfxAddProgramGroupItemA;
  1791.   LPFNXZSFXCLEARBUTTONS               lpfnXzSfxClearButtons;
  1792.   LPFNXZSFXCLEARMESSAGES              lpfnXzSfxClearMessages;
  1793.   LPFNXZSFXCLEARSTRINGS               lpfnXzSfxClearStrings;
  1794.   LPFNXZSFXLOADCONFIGW                lpfnXzSfxLoadConfigW;
  1795.   LPFNXZSFXLOADCONFIGA                lpfnXzSfxLoadConfigA;
  1796.   LPFNXZSFXSAVECONFIGW                lpfnXzSfxSaveConfigW;
  1797.   LPFNXZSFXSAVECONFIGA                lpfnXzSfxSaveConfigA;
  1798.   LPFNXZSFXRESETBUTTONS               lpfnXzSfxResetButtons;
  1799.   LPFNXZSFXRESETMESSAGES              lpfnXzSfxResetMessages;
  1800.   LPFNXZSFXRESETSTRINGS               lpfnXzSfxResetStrings;
  1801.   LPFNXZTESTZIPFILE                   lpfnXzTestZipFile;
  1802.   LPFNXZUNZIP                         lpfnXzUnzip;
  1803.   LPFNXZZIP                           lpfnXzZip;
  1804.   LPFNXCGETERRORDESCRIPTIONW          lpfnXcGetErrorDescriptionW;
  1805.   LPFNXCGETERRORDESCRIPTIONA          lpfnXcGetErrorDescriptionA;
  1806.   LPFNXCCOMPRESS                      lpfnXcCompress;
  1807.   LPFNXCUNCOMPRESS                    lpfnXcUncompress;
  1808.   LPFNXCCALCULATECRC                  lpfnXcCalculateCrc;
  1809.   LPFNXZGETSFXFILESTOCOPYW            lpfnXzGetSfxFilesToCopyW;
  1810.   LPFNXZGETSFXFILESTOCOPYA            lpfnXzGetSfxFilesToCopyA;
  1811.   LPFNXZSETSFXFILESTOCOPYW            lpfnXzSetSfxFilesToCopyW;
  1812.   LPFNXZSETSFXFILESTOCOPYA            lpfnXzSetSfxFilesToCopyA;
  1813.   LPFNXZGETSFXFILESTOREGISTERW        lpfnXzGetSfxFilesToRegisterW;
  1814.   LPFNXZGETSFXFILESTOREGISTERA        lpfnXzGetSfxFilesToRegisterA;
  1815.   LPFNXZSETSFXFILESTOREGISTERW        lpfnXzSetSfxFilesToRegisterW;
  1816.   LPFNXZSETSFXFILESTOREGISTERA        lpfnXzSetSfxFilesToRegisterA;
  1817.   LPFNXZGETSFXREGISTRYKEYSW           lpfnXzGetSfxRegistryKeysW;
  1818.   LPFNXZGETSFXREGISTRYKEYSA           lpfnXzGetSfxRegistryKeysA;
  1819.   LPFNXZSETSFXREGISTRYKEYSW           lpfnXzSetSfxRegistryKeysW;
  1820.   LPFNXZSETSFXREGISTRYKEYSA           lpfnXzSetSfxRegistryKeysA;
  1821.   LPFNXZGETDELETEZIPPEDFILES          lpfnXzGetDeleteZippedFiles;
  1822.   LPFNXZSETDELETEZIPPEDFILES          lpfnXzSetDeleteZippedFiles;
  1823.   LPFNXZSFXADDEXECUTEAFTERW           lpfnXzSfxAddExecuteAfterW;
  1824.   LPFNXZSFXADDEXECUTEAFTERA           lpfnXzSfxAddExecuteAfterA;
  1825.   LPFNXZSFXADDFILETOCOPYW             lpfnXzSfxAddFileToCopyW;
  1826.   LPFNXZSFXADDFILETOCOPYA             lpfnXzSfxAddFileToCopyA;
  1827.   LPFNXZSFXADDFILETOREGISTERW         lpfnXzSfxAddFileToRegisterW;
  1828.   LPFNXZSFXADDFILETOREGISTERA         lpfnXzSfxAddFileToRegisterA;
  1829.   LPFNXZSFXADDREGISTRYKEYW            lpfnXzSfxAddRegistryKeyW;
  1830.   LPFNXZSFXADDREGISTRYKEYA            lpfnXzSfxAddRegistryKeyA;
  1831.   LPFNXZGETFIRSTDISKFREESPACE         lpfnXzGetFirstDiskFreeSpace;
  1832.   LPFNXZSETFIRSTDISKFREESPACE         lpfnXzSetFirstDiskFreeSpace;
  1833.   LPFNXZGETMINDISKFREESPACE           lpfnXzGetMinDiskFreeSpace;
  1834.   LPFNXZSETMINDISKFREESPACE           lpfnXzSetMinDiskFreeSpace;
  1835.   LPFNXZGETEVENTSTOTRIGGER            lpfnXzGetEventsToTrigger;
  1836.   LPFNXZSETEVENTSTOTRIGGER            lpfnXzSetEventsToTrigger;
  1837.   LPFNXZIDESTROYXCEEDZIPITEMS         lpfnXziDestroyXceedZipItems;
  1838.   LPFNXZGETZIPCONTENTS                lpfnXzGetZipContents;
  1839.   LPFNXZIGETFIRSTITEMW                lpfnXziGetFirstItemW;
  1840.   LPFNXZIGETFIRSTITEMA                lpfnXziGetFirstItemA;
  1841.   LPFNXZIGETNEXTITEMW                 lpfnXziGetNextItemW;
  1842.   LPFNXZIGETNEXTITEMA                 lpfnXziGetNextItemA;
  1843.   LPFNXZGETCOMPRESSIONMETHOD          lpfnXzGetCompressionMethod;
  1844.   LPFNXZSETCOMPRESSIONMETHOD          lpfnXzSetCompressionMethod;
  1845.   LPFNXCGETCOMPRESSIONMETHOD          lpfnXcGetCompressionMethod;
  1846.   LPFNXCSETCOMPRESSIONMETHOD          lpfnXcSetCompressionMethod;
  1847. } XceedZipFunctions;
  1848.  
  1849.  
  1850. ////////////////////////////////////////////////////////////////////////////////
  1851. // Unicode / Ansi defines
  1852. //
  1853.  
  1854. // Event parameters' structures
  1855. #ifdef UNICODE
  1856. typedef xcdListingFileParamsW               xcdListingFileParams;
  1857. typedef xcdPreviewingFileParamsW            xcdPreviewingFileParams;
  1858. typedef xcdZipPreprocessingFileParamsW      xcdZipPreprocessingFileParams;
  1859. typedef xcdUnzipPreprocessingFileParamsW    xcdUnzipPreprocessingFileParams;
  1860. typedef xcdSkippingFileParamsW              xcdSkippingFileParams;
  1861. typedef xcdRemovingFileParamsW              xcdRemovingFileParams;
  1862. typedef xcdTestingFileParamsW               xcdTestingFileParams;
  1863. typedef xcdFileStatusParamsW                xcdFileStatusParams;
  1864. typedef xcdZipCommentParamsW                xcdZipCommentParams;
  1865. typedef xcdQueryMemoryFileParamsW           xcdQueryMemoryFileParams;
  1866. typedef xcdZippingMemoryFileParamsW         xcdZippingMemoryFileParams;
  1867. typedef xcdUnzippingMemoryFileParamsW       xcdUnzippingMemoryFileParams;
  1868. typedef xcdWarningParamsW                   xcdWarningParams;
  1869. typedef xcdInvalidPasswordParamsW           xcdInvalidPasswordParams;
  1870. typedef xcdReplacingFileParamsW             xcdReplacingFileParams;
  1871. typedef xcdDeletingFileParamsW              xcdDeletingFileParams;
  1872. typedef xcdConvertPreprocessingFileParamsW  xcdxcdConvertPreprocessingFileParams;
  1873. #else
  1874. typedef xcdListingFileParamsA               xcdListingFileParams;
  1875. typedef xcdPreviewingFileParamsA            xcdPreviewingFileParams;
  1876. typedef xcdZipPreprocessingFileParamsA      xcdZipPreprocessingFileParams;
  1877. typedef xcdUnzipPreprocessingFileParamsA    xcdUnzipPreprocessingFileParams;
  1878. typedef xcdSkippingFileParamsA              xcdSkippingFileParams;
  1879. typedef xcdRemovingFileParamsA              xcdRemovingFileParams;
  1880. typedef xcdTestingFileParamsA               xcdTestingFileParams;
  1881. typedef xcdFileStatusParamsA                xcdFileStatusParams;
  1882. typedef xcdZipCommentParamsA                xcdZipCommentParams;
  1883. typedef xcdQueryMemoryFileParamsA           xcdQueryMemoryFileParams;
  1884. typedef xcdZippingMemoryFileParamsA         xcdZippingMemoryFileParams;
  1885. typedef xcdUnzippingMemoryFileParamsA       xcdUnzippingMemoryFileParams;
  1886. typedef xcdWarningParamsA                   xcdWarningParams;
  1887. typedef xcdInvalidPasswordParamsA           xcdInvalidPasswordParams;
  1888. typedef xcdReplacingFileParamsA             xcdReplacingFileParams;
  1889. typedef xcdDeletingFileParamsA              xcdDeletingFileParams;
  1890. typedef xcdConvertPreprocessingFileParamsA  xcdxcdConvertPreprocessingFileParams;
  1891. #endif
  1892.  
  1893. // XceedZip creation
  1894. #ifdef UNICODE
  1895. #define XzCreateXceedZip              XzCreateXceedZipW
  1896. #else
  1897. #define XzCreateXceedZip              XzCreateXceedZipA
  1898. #endif
  1899.  
  1900. // XceedZip properties
  1901. #ifdef UNICODE
  1902. #define XzGetBasePath                 XzGetBasePathW
  1903. #define XzSetBasePath                 XzSetBasePathW
  1904. #define XzGetEncryptionPassword       XzGetEncryptionPasswordW
  1905. #define XzSetEncryptionPassword       XzSetEncryptionPasswordW
  1906. #define XzGetFilesToExclude           XzGetFilesToExcludeW
  1907. #define XzSetFilesToExclude           XzSetFilesToExcludeW
  1908. #define XzGetFilesToProcess           XzGetFilesToProcessW
  1909. #define XzSetFilesToProcess           XzSetFilesToProcessW
  1910. #define XzGetSfxBinaryModule          XzGetSfxBinaryModuleW
  1911. #define XzSetSfxBinaryModule          XzSetSfxBinaryModuleW
  1912. #define XzGetSfxButtons               XzGetSfxButtonsW
  1913. #define XzSetSfxButtons               XzSetSfxButtonsW
  1914. #define XzGetSfxDefaultPassword       XzGetSfxDefaultPasswordW
  1915. #define XzSetSfxDefaultPassword       XzSetSfxDefaultPasswordW
  1916. #define XzGetSfxDefaultUnzipToFolder  XzGetSfxDefaultUnzipToFolderW
  1917. #define XzSetSfxDefaultUnzipToFolder  XzSetSfxDefaultUnzipToFolderW
  1918. #define XzGetSfxExtensionsToAssociate XzGetSfxExtensionsToAssociateW
  1919. #define XzSetSfxExtensionsToAssociate XzSetSfxExtensionsToAssociateW
  1920. #define XzGetSfxExecuteAfter          XzGetSfxExecuteAfterW
  1921. #define XzSetSfxExecuteAfter          XzSetSfxExecuteAfterW
  1922. #define XzGetSfxIconFilename          XzGetSfxIconFilenameW
  1923. #define XzSetSfxIconFilename          XzSetSfxIconFilenameW
  1924. #define XzGetSfxMessages              XzGetSfxMessagesW
  1925. #define XzSetSfxMessages              XzSetSfxMessagesW
  1926. #define XzGetSfxProgramGroup          XzGetSfxProgramGroupW
  1927. #define XzSetSfxProgramGroup          XzSetSfxProgramGroupW
  1928. #define XzGetSfxProgramGroupItems     XzGetSfxProgramGroupItemsW
  1929. #define XzSetSfxProgramGroupItems     XzSetSfxProgramGroupItemsW
  1930. #define XzGetSfxReadmeFile            XzGetSfxReadmeFileW
  1931. #define XzSetSfxReadmeFile            XzSetSfxReadmeFileW
  1932. #define XzGetSfxStrings               XzGetSfxStringsW
  1933. #define XzSetSfxStrings               XzSetSfxStringsW
  1934. #define XzGetTempFolder               XzGetTempFolderW
  1935. #define XzSetTempFolder               XzSetTempFolderW
  1936. #define XzGetUnzipToFolder            XzGetUnzipToFolderW
  1937. #define XzSetUnzipToFolder            XzSetUnzipToFolderW
  1938. #define XzGetZipFilename              XzGetZipFilenameW
  1939. #define XzSetZipFilename              XzSetZipFilenameW
  1940. #define XzGetSfxFilesToCopy           XzGetSfxFilesToCopyW
  1941. #define XzSetSfxFilesToCopy           XzSetSfxFilesToCopyW
  1942. #define XzGetSfxFilesToRegister       XzGetSfxFilesToRegisterW
  1943. #define XzSetSfxFilesToRegister       XzSetSfxFilesToRegisterW
  1944. #define XzGetSfxRegistryKeys          XzGetSfxRegistryKeysW
  1945. #define XzSetSfxRegistryKeys          XzSetSfxRegistryKeysW
  1946. #else
  1947. #define XzGetBasePath                 XzGetBasePathA
  1948. #define XzSetBasePath                 XzSetBasePathA
  1949. #define XzGetEncryptionPassword       XzGetEncryptionPasswordA
  1950. #define XzSetEncryptionPassword       XzSetEncryptionPasswordA
  1951. #define XzGetFilesToExclude           XzGetFilesToExcludeA
  1952. #define XzSetFilesToExclude           XzSetFilesToExcludeA
  1953. #define XzGetFilesToProcess           XzGetFilesToProcessA
  1954. #define XzSetFilesToProcess           XzSetFilesToProcessA
  1955. #define XzGetSfxBinaryModule          XzGetSfxBinaryModuleA
  1956. #define XzSetSfxBinaryModule          XzSetSfxBinaryModuleA
  1957. #define XzGetSfxButtons               XzGetSfxButtonsA
  1958. #define XzSetSfxButtons               XzSetSfxButtonsA
  1959. #define XzGetSfxDefaultPassword       XzGetSfxDefaultPasswordA
  1960. #define XzSetSfxDefaultPassword       XzSetSfxDefaultPasswordA
  1961. #define XzGetSfxDefaultUnzipToFolder  XzGetSfxDefaultUnzipToFolderA
  1962. #define XzSetSfxDefaultUnzipToFolder  XzSetSfxDefaultUnzipToFolderA
  1963. #define XzGetSfxExtensionsToAssociate XzGetSfxExtensionsToAssociateA
  1964. #define XzSetSfxExtensionsToAssociate XzSetSfxExtensionsToAssociateA
  1965. #define XzGetSfxExecuteAfter          XzGetSfxExecuteAfterA
  1966. #define XzSetSfxExecuteAfter          XzSetSfxExecuteAfterA
  1967. #define XzGetSfxIconFilename          XzGetSfxIconFilenameA
  1968. #define XzSetSfxIconFilename          XzSetSfxIconFilenameA
  1969. #define XzGetSfxMessages              XzGetSfxMessagesA
  1970. #define XzSetSfxMessages              XzSetSfxMessagesA
  1971. #define XzGetSfxProgramGroup          XzGetSfxProgramGroupA
  1972. #define XzSetSfxProgramGroup          XzSetSfxProgramGroupA
  1973. #define XzGetSfxProgramGroupItems     XzGetSfxProgramGroupItemsA
  1974. #define XzSetSfxProgramGroupItems     XzSetSfxProgramGroupItemsA
  1975. #define XzGetSfxReadmeFile            XzGetSfxReadmeFileA
  1976. #define XzSetSfxReadmeFile            XzSetSfxReadmeFileA
  1977. #define XzGetSfxStrings               XzGetSfxStringsA
  1978. #define XzSetSfxStrings               XzSetSfxStringsA
  1979. #define XzGetTempFolder               XzGetTempFolderA
  1980. #define XzSetTempFolder               XzSetTempFolderA
  1981. #define XzGetUnzipToFolder            XzGetUnzipToFolderA
  1982. #define XzSetUnzipToFolder            XzSetUnzipToFolderA
  1983. #define XzGetZipFilename              XzGetZipFilenameA
  1984. #define XzSetZipFilename              XzSetZipFilenameA
  1985. #define XzGetSfxFilesToCopy           XzGetSfxFilesToCopyA
  1986. #define XzSetSfxFilesToCopy           XzSetSfxFilesToCopyA
  1987. #define XzGetSfxFilesToRegister       XzGetSfxFilesToRegisterA
  1988. #define XzSetSfxFilesToRegister       XzSetSfxFilesToRegisterA
  1989. #define XzGetSfxRegistryKeys          XzGetSfxRegistryKeysA
  1990. #define XzSetSfxRegistryKeys          XzSetSfxRegistryKeysA
  1991. #endif
  1992.  
  1993. // XceedCompression creation
  1994. #ifdef UNICODE
  1995. #define XcCreateXceedCompression  XcCreateXceedCompressionW
  1996. #else
  1997. #define XcCreateXceedCompression  XcCreateXceedCompressionA
  1998. #endif
  1999.  
  2000. // XceedCompression properties
  2001. #ifdef UNICODE
  2002. #define XcGetEncryptionPassword XcGetEncryptionPasswordW
  2003. #define XcSetEncryptionPassword XcSetEncryptionPasswordW
  2004. #else
  2005. #define XcGetEncryptionPassword XcGetEncryptionPasswordA
  2006. #define XcSetEncryptionPassword XcSetEncryptionPasswordA
  2007. #endif
  2008.  
  2009. // XceedZip methods
  2010. #ifdef UNICODE
  2011. #define XzAddFilesToProcess           XzAddFilesToProcessW
  2012. #define XzAddFilesToExclude           XzAddFilesToExcludeW
  2013. #define XzConvert                     XzConvertW
  2014. #define XzGetErrorDescription         XzGetErrorDescriptionW
  2015. #define XzSfxAddExtensionToAssociate  XzSfxAddExtensionToAssociateW
  2016. #define XzSfxAddProgramGroupItem      XzSfxAddProgramGroupItemW
  2017. #define XzSfxLoadConfig               XzSfxLoadConfigW
  2018. #define XzSfxSaveConfig               XzSfxSaveConfigW
  2019. #define XzSfxAddExecuteAfter          XzSfxAddExecuteAfterW
  2020. #define XzSfxAddFileToCopy            XzSfxAddFileToCopyW
  2021. #define XzSfxAddFileToRegister        XzSfxAddFileToRegisterW
  2022. #define XzSfxAddRegistryKey           XzSfxAddRegistryKeyW
  2023. #else
  2024. #define XzAddFilesToProcess           XzAddFilesToProcessA
  2025. #define XzAddFilesToExclude           XzAddFilesToExcludeA
  2026. #define XzConvert                     XzConvertA
  2027. #define XzGetErrorDescription         XzGetErrorDescriptionA
  2028. #define XzSfxAddExtensionToAssociate  XzSfxAddExtensionToAssociateA
  2029. #define XzSfxAddProgramGroupItem      XzSfxAddProgramGroupItemA
  2030. #define XzSfxLoadConfig               XzSfxLoadConfigA
  2031. #define XzSfxSaveConfig               XzSfxSaveConfigA
  2032. #define XzSfxAddExecuteAfter          XzSfxAddExecuteAfterA
  2033. #define XzSfxAddFileToCopy            XzSfxAddFileToCopyA
  2034. #define XzSfxAddFileToRegister        XzSfxAddFileToRegisterA
  2035. #define XzSfxAddRegistryKey           XzSfxAddRegistryKeyA
  2036. #endif
  2037.  
  2038. // XceedCompression methods
  2039. #ifdef UNICODE
  2040. #define XcGetErrorDescription     XcGetErrorDescriptionW
  2041. #else
  2042. #define XcGetErrorDescription     XcGetErrorDescriptionA
  2043. #endif
  2044.  
  2045. // XceedZipItems methods
  2046. #ifdef UNICODE
  2047. #define XziGetFirstItem           XziGetFirstItemW
  2048. #define XziGetNextItem            XziGetNextItemW
  2049. #else
  2050. #define XziGetFirstItem           XziGetFirstItemA
  2051. #define XziGetNextItem            XziGetNextItemA
  2052. #endif
  2053.  
  2054. ////////////////////////////////////////////////////////////////////////////////
  2055. // Global variables for use when linking with XCEEDZIP.LIB
  2056. // (Visual C++ only)
  2057. //
  2058.  
  2059. #ifdef _MSC_VER
  2060. extern XCD_IMPORT XceedZipFunctions  g_xzFunctions;
  2061. #endif
  2062.  
  2063.  
  2064. #ifdef __cplusplus
  2065. } // extern "C"
  2066. #endif
  2067.  
  2068. #endif // __XCEEDZIPAPI_H__
  2069.