// CkZipW.h: interface for the CkZipW class. // ////////////////////////////////////////////////////////////////////// // This header is generated for Chilkat 11.3.0 #ifndef _CkZipW_H #define _CkZipW_H #include "chilkatDefs.h" #include "CkString.h" #include "CkClassWithCallbacksW.h" class CkBinDataW; class CkStringBuilderW; class CkZipEntryW; class CkByteData; class CkTaskW; class CkStringArrayW; class CkZipProgressW; #if !defined(__sun__) && !defined(__sun) #pragma pack (push, 8) #endif // CLASS: CkZipW class CK_VISIBLE_PUBLIC CkZipW : public CkClassWithCallbacksW { private: bool m_cbOwned; private: // Don't allow assignment or copying these objects. CkZipW(const CkZipW &); CkZipW &operator=(const CkZipW &); public: CkZipW(void); virtual ~CkZipW(void); static CkZipW *createNew(void); CkZipW(bool bCallbackOwned); static CkZipW *createNew(bool bCallbackOwned); void CK_VISIBLE_PRIVATE inject(void *impl); // May be called when finished with the object to free/dispose of any // internal resources held by the object. void dispose(void); CkZipProgressW *get_EventCallbackObject(void) const; void put_EventCallbackObject(CkZipProgressW *progress); // BEGIN PUBLIC INTERFACE // ---------------------- // Properties // ---------------------- // When set to true, causes the currently running method to abort. Methods that // always finish quickly (i.e.have no length file operations or network // communications) are not affected. If no method is running, then this property is // automatically reset to false when the next method is called. When the abort // occurs, this property is reset to false. Both synchronous and asynchronous // method calls can be aborted. (A synchronous method call could be aborted by // setting this property from a separate thread.) bool get_AbortCurrent(void); // When set to true, causes the currently running method to abort. Methods that // always finish quickly (i.e.have no length file operations or network // communications) are not affected. If no method is running, then this property is // automatically reset to false when the next method is called. When the abort // occurs, this property is reset to false. Both synchronous and asynchronous // method calls can be aborted. (A synchronous method call could be aborted by // setting this property from a separate thread.) void put_AbortCurrent(bool newVal); // When files are added to a Zip archive, they are appended from this directory. // For example, to add all the files under c:/abc/123/myAppDir, this property could // be set to c:/abc/123 , and myAppDir/* would be passed to AppendFiles. The path // that is saved in the .zip would be myAppDir/ . (The value of the AppendFromDir // property does not become part of the file path saved in the .zip.) void get_AppendFromDir(CkString &str); // When files are added to a Zip archive, they are appended from this directory. // For example, to add all the files under c:/abc/123/myAppDir, this property could // be set to c:/abc/123 , and myAppDir/* would be passed to AppendFiles. The path // that is saved in the .zip would be myAppDir/ . (The value of the AppendFromDir // property does not become part of the file path saved in the .zip.) const wchar_t *appendFromDir(void); // When files are added to a Zip archive, they are appended from this directory. // For example, to add all the files under c:/abc/123/myAppDir, this property could // be set to c:/abc/123 , and myAppDir/* would be passed to AppendFiles. The path // that is saved in the .zip would be myAppDir/ . (The value of the AppendFromDir // property does not become part of the file path saved in the .zip.) void put_AppendFromDir(const wchar_t *newVal); // (Relevant only when running on a Microsoft Windows operating system.) Optional // when creating Windows-based self-extracting EXEs. This is the name of an // executable contained within the to-be-created EXE that will automatically be run // after extraction. (This is typically something like setup.exe ) void get_AutoRun(CkString &str); // (Relevant only when running on a Microsoft Windows operating system.) Optional // when creating Windows-based self-extracting EXEs. This is the name of an // executable contained within the to-be-created EXE that will automatically be run // after extraction. (This is typically something like setup.exe ) const wchar_t *autoRun(void); // (Relevant only when running on a Microsoft Windows operating system.) Optional // when creating Windows-based self-extracting EXEs. This is the name of an // executable contained within the to-be-created EXE that will automatically be run // after extraction. (This is typically something like setup.exe ) void put_AutoRun(const wchar_t *newVal); // (Relevant only when running on a Microsoft Windows operating system.) Command // line parameters that get passed to the AutoRun executable. void get_AutoRunParams(CkString &str); // (Relevant only when running on a Microsoft Windows operating system.) Command // line parameters that get passed to the AutoRun executable. const wchar_t *autoRunParams(void); // (Relevant only when running on a Microsoft Windows operating system.) Command // line parameters that get passed to the AutoRun executable. void put_AutoRunParams(const wchar_t *newVal); // (Relevant only when running on a Microsoft Windows operating system.) This // option applies to creating Windows-based self-extracting EXEs. If true, the // to-be-created EXE will automatically select and create a temporary directory for // unzipping. This property is often used in conjunction with the AutoRun property // to create a self-extracting EXE that automatically unzips to a temp directory // and runs a setup.exe without interaction with the user. // // Note: To create a self-extracting EXE with no user-interaction, set the // following properties to these values: // // ExeSilentProgress = false // ExeNoInterface = true // ExeFinishNotifier = false // // The default AutoTemp value is false. // bool get_AutoTemp(void); // (Relevant only when running on a Microsoft Windows operating system.) This // option applies to creating Windows-based self-extracting EXEs. If true, the // to-be-created EXE will automatically select and create a temporary directory for // unzipping. This property is often used in conjunction with the AutoRun property // to create a self-extracting EXE that automatically unzips to a temp directory // and runs a setup.exe without interaction with the user. // // Note: To create a self-extracting EXE with no user-interaction, set the // following properties to these values: // // ExeSilentProgress = false // ExeNoInterface = true // ExeFinishNotifier = false // // The default AutoTemp value is false. // void put_AutoTemp(bool newVal); // If true then all methods that get or search for zip entries by name will use // case-sensitive filename matching. If false then filename matching will be case // insensitive. Methods affected by this property include GetEntryByName, // UnzipMatching, FirstMatchingEntry, etc. // // The default value is false. // bool get_CaseSensitive(void); // If true then all methods that get or search for zip entries by name will use // case-sensitive filename matching. If false then filename matching will be case // insensitive. Methods affected by this property include GetEntryByName, // UnzipMatching, FirstMatchingEntry, etc. // // The default value is false. // void put_CaseSensitive(bool newVal); // Set this to true to clear the FILE_ATTRIBUTE_ARCHIVE file attribute of each // file (in the local filesystem) during a zipping operation. // // The default value is false. // // Note: The archive attribute or bit, is a Windows file attribute that when is // set, it indicates that the file has changed since the last backup operation. // When this property is true, Chilkat Zip will clear the archive attribute of // each local file after it has been successfully added to the zip. // bool get_ClearArchiveAttribute(void); // Set this to true to clear the FILE_ATTRIBUTE_ARCHIVE file attribute of each // file (in the local filesystem) during a zipping operation. // // The default value is false. // // Note: The archive attribute or bit, is a Windows file attribute that when is // set, it indicates that the file has changed since the last backup operation. // When this property is true, Chilkat Zip will clear the archive attribute of // each local file after it has been successfully added to the zip. // void put_ClearArchiveAttribute(bool newVal); // If true, the read-only attribute is automatically cleared when unzipping. The // default value of this property is false, which leaves the read-only attribute // unchanged when unzipping. bool get_ClearReadOnlyAttr(void); // If true, the read-only attribute is automatically cleared when unzipping. The // default value of this property is false, which leaves the read-only attribute // unchanged when unzipping. void put_ClearReadOnlyAttr(bool newVal); // The global Zip file comment. void get_Comment(CkString &str); // The global Zip file comment. const wchar_t *comment(void); // The global Zip file comment. void put_Comment(const wchar_t *newVal); // When opening a password-protected or AES encrypted Zip, this is the password to // be used for decryption. Encrypted Zips may be opened without setting a password, // but the contents cannot be unzipped without setting this password. // // Note:The SetPassword method has the effect of setting both this property as well // as the EncryptPassword property. The SetPassword method should no longer be // used. It has been replaced by the DecryptPassword and EncryptPassword properties // to make it possible to open an encrypted zip and re-write it with a new // password. // void get_DecryptPassword(CkString &str); // When opening a password-protected or AES encrypted Zip, this is the password to // be used for decryption. Encrypted Zips may be opened without setting a password, // but the contents cannot be unzipped without setting this password. // // Note:The SetPassword method has the effect of setting both this property as well // as the EncryptPassword property. The SetPassword method should no longer be // used. It has been replaced by the DecryptPassword and EncryptPassword properties // to make it possible to open an encrypted zip and re-write it with a new // password. // const wchar_t *decryptPassword(void); // When opening a password-protected or AES encrypted Zip, this is the password to // be used for decryption. Encrypted Zips may be opened without setting a password, // but the contents cannot be unzipped without setting this password. // // Note:The SetPassword method has the effect of setting both this property as well // as the EncryptPassword property. The SetPassword method should no longer be // used. It has been replaced by the DecryptPassword and EncryptPassword properties // to make it possible to open an encrypted zip and re-write it with a new // password. // void put_DecryptPassword(const wchar_t *newVal); // If true, discards all file path information when zipping. The default value is // false. bool get_DiscardPaths(void); // If true, discards all file path information when zipping. The default value is // false. void put_DiscardPaths(bool newVal); // Indicate whether the Zip is to be strong encrypted or not. Valid values are 0 // (not encrypted) or 4 (AES encrypted). When this property is set to the value 4, // WinZip AES compatible encrypted zip archives are produced. // // Note: Prior to Chilkat v9.4.1, other possible values for this property were: 1 // (blowfish), 2 (twofish), and 3 (rijndael). These settings originally provided a // way to produce strong encrypted zips prior to when the AES encrypted Zip // standard existed. Using these legacy values (1, 2, or 3) produced encrypted zips // that only applications using Chilkat could read. Chilkat no longer supports // these custom modes of encryption. If using an older version of Chilkat with one // of these deprecated encryption modes, make sure to decrypt using the old Chilkat // version and re-encrypt using mode 4 (WinZip compatible AES encryption) prior to // updating to the new Chilkat version. // // Important:The Encryption and PasswordProtect properties are mutually exclusive. // PasswordProtect corresponds to the older Zip 2.0 encryption, commonly referred // to as a password-protected zip. If the PasswordProtect is set to true, the // Encryption property should be set to 0. If the Encryption property is set to a // non-zero value, then PasswordProtect should be set to false. A zip cannot be // both password-protected and strong-encrypted. // int get_Encryption(void); // Indicate whether the Zip is to be strong encrypted or not. Valid values are 0 // (not encrypted) or 4 (AES encrypted). When this property is set to the value 4, // WinZip AES compatible encrypted zip archives are produced. // // Note: Prior to Chilkat v9.4.1, other possible values for this property were: 1 // (blowfish), 2 (twofish), and 3 (rijndael). These settings originally provided a // way to produce strong encrypted zips prior to when the AES encrypted Zip // standard existed. Using these legacy values (1, 2, or 3) produced encrypted zips // that only applications using Chilkat could read. Chilkat no longer supports // these custom modes of encryption. If using an older version of Chilkat with one // of these deprecated encryption modes, make sure to decrypt using the old Chilkat // version and re-encrypt using mode 4 (WinZip compatible AES encryption) prior to // updating to the new Chilkat version. // // Important:The Encryption and PasswordProtect properties are mutually exclusive. // PasswordProtect corresponds to the older Zip 2.0 encryption, commonly referred // to as a password-protected zip. If the PasswordProtect is set to true, the // Encryption property should be set to 0. If the Encryption property is set to a // non-zero value, then PasswordProtect should be set to false. A zip cannot be // both password-protected and strong-encrypted. // void put_Encryption(int newVal); // The encryption key length if AES, Blowfish, Twofish, or WinZip-compatible AES // encryption is used. This value must be 128, 192, or 256. The default value is // 128. int get_EncryptKeyLength(void); // The encryption key length if AES, Blowfish, Twofish, or WinZip-compatible AES // encryption is used. This value must be 128, 192, or 256. The default value is // 128. void put_EncryptKeyLength(int newVal); // The password used when writing a password-protected or strong-encrytped Zip. // // Note:The SetPassword method has the effect of setting both this property as well // as the DecryptPassword property. The SetPassword method should no longer be // used. It has been replaced by the DecryptPassword and EncryptPassword properties // to make it possible to open an encrypted zip and re-write it with a new // password. // void get_EncryptPassword(CkString &str); // The password used when writing a password-protected or strong-encrytped Zip. // // Note:The SetPassword method has the effect of setting both this property as well // as the DecryptPassword property. The SetPassword method should no longer be // used. It has been replaced by the DecryptPassword and EncryptPassword properties // to make it possible to open an encrypted zip and re-write it with a new // password. // const wchar_t *encryptPassword(void); // The password used when writing a password-protected or strong-encrytped Zip. // // Note:The SetPassword method has the effect of setting both this property as well // as the DecryptPassword property. The SetPassword method should no longer be // used. It has been replaced by the DecryptPassword and EncryptPassword properties // to make it possible to open an encrypted zip and re-write it with a new // password. // void put_EncryptPassword(const wchar_t *newVal); // (Relevant only when running on a Microsoft Windows operating system.) Specifies // the default unzip directory path to appear in the user-interface dialog box when // the Windows-based self-extracting EXE is run. void get_ExeDefaultDir(CkString &str); // (Relevant only when running on a Microsoft Windows operating system.) Specifies // the default unzip directory path to appear in the user-interface dialog box when // the Windows-based self-extracting EXE is run. const wchar_t *exeDefaultDir(void); // (Relevant only when running on a Microsoft Windows operating system.) Specifies // the default unzip directory path to appear in the user-interface dialog box when // the Windows-based self-extracting EXE is run. void put_ExeDefaultDir(const wchar_t *newVal); // (Relevant only when running on a Microsoft Windows operating system.) If set to // true, a Finished dialog box is displayed when the self-extracting EXE is // finished extracting. The caption, title, and button text of the finish notifier // dialog may be customized by calling SetExeConfigParam. The default value is // false. bool get_ExeFinishNotifier(void); // (Relevant only when running on a Microsoft Windows operating system.) If set to // true, a Finished dialog box is displayed when the self-extracting EXE is // finished extracting. The caption, title, and button text of the finish notifier // dialog may be customized by calling SetExeConfigParam. The default value is // false. void put_ExeFinishNotifier(bool newVal); // (Relevant only when running on a Microsoft Windows operating system.) Applies to // creating self-extracting EXEs. This property can be set to a pre-existing icon // filename (.ico) that will be embedded within the to-be-created EXE and set as // its default icon. // // Note: This property is only possible for 32-bit applications. (Meaning that the // application that is creating the self-extracting EXE must be a 32-bit // application if an ExeIconFile is to be used.) // void get_ExeIconFile(CkString &str); // (Relevant only when running on a Microsoft Windows operating system.) Applies to // creating self-extracting EXEs. This property can be set to a pre-existing icon // filename (.ico) that will be embedded within the to-be-created EXE and set as // its default icon. // // Note: This property is only possible for 32-bit applications. (Meaning that the // application that is creating the self-extracting EXE must be a 32-bit // application if an ExeIconFile is to be used.) // const wchar_t *exeIconFile(void); // (Relevant only when running on a Microsoft Windows operating system.) Applies to // creating self-extracting EXEs. This property can be set to a pre-existing icon // filename (.ico) that will be embedded within the to-be-created EXE and set as // its default icon. // // Note: This property is only possible for 32-bit applications. (Meaning that the // application that is creating the self-extracting EXE must be a 32-bit // application if an ExeIconFile is to be used.) // void put_ExeIconFile(const wchar_t *newVal); // (Relevant only when running on a Microsoft Windows operating system.) Applies to // creating Windows-based self-extracting EXEs. When set to true, the // to-be-created EXE will run without a user-interface. The default value is // false. // // Note: The ExeSilentProgress property needs to be set to true for the extract // to be truly silent. // // Important: If the AutoTemp property = true and there is no AutoRun EXE, and // there is no ExeUnzipDir set, then the self-extracting EXE will always display a // dialog to get the unzip directory. The reason is that it makes no sense to // silently unzip to an auto-selected (and unknown) temp directory without anything // happening afterwards. // // Important: If the self-extracting EXE is encrypted, a password dialog will be // displayed. The password dialog may be suppressed if the password is provided on // the command line via the -pwd command-line option. // bool get_ExeNoInterface(void); // (Relevant only when running on a Microsoft Windows operating system.) Applies to // creating Windows-based self-extracting EXEs. When set to true, the // to-be-created EXE will run without a user-interface. The default value is // false. // // Note: The ExeSilentProgress property needs to be set to true for the extract // to be truly silent. // // Important: If the AutoTemp property = true and there is no AutoRun EXE, and // there is no ExeUnzipDir set, then the self-extracting EXE will always display a // dialog to get the unzip directory. The reason is that it makes no sense to // silently unzip to an auto-selected (and unknown) temp directory without anything // happening afterwards. // // Important: If the self-extracting EXE is encrypted, a password dialog will be // displayed. The password dialog may be suppressed if the password is provided on // the command line via the -pwd command-line option. // void put_ExeNoInterface(bool newVal); // (Relevant only when running on a Microsoft Windows operating system.) Determines // whether a progress dialog is displayed when the self-extracting EXE is run. If // ExeNoInterface = false (i.e. there is a main dialog with the ability to select // the unzip directory), then the progress dialog is (by default) shown as a // progress bar within the main dialog -- and this property has no effect. If // ExeNoInterface = true, then a progress-only dialog is displayed if // ExeSilentProgress = false. The default value of ExeSilentProgress is true. bool get_ExeSilentProgress(void); // (Relevant only when running on a Microsoft Windows operating system.) Determines // whether a progress dialog is displayed when the self-extracting EXE is run. If // ExeNoInterface = false (i.e. there is a main dialog with the ability to select // the unzip directory), then the progress dialog is (by default) shown as a // progress bar within the main dialog -- and this property has no effect. If // ExeNoInterface = true, then a progress-only dialog is displayed if // ExeSilentProgress = false. The default value of ExeSilentProgress is true. void put_ExeSilentProgress(bool newVal); // (Relevant only when running on a Microsoft Windows operating system.) Applies to // creating Windows-based self-extracting EXEs. Sets the title of the main // user-interface dialog that appears when the self-extracting EXE runs. void get_ExeTitle(CkString &str); // (Relevant only when running on a Microsoft Windows operating system.) Applies to // creating Windows-based self-extracting EXEs. Sets the title of the main // user-interface dialog that appears when the self-extracting EXE runs. const wchar_t *exeTitle(void); // (Relevant only when running on a Microsoft Windows operating system.) Applies to // creating Windows-based self-extracting EXEs. Sets the title of the main // user-interface dialog that appears when the self-extracting EXE runs. void put_ExeTitle(const wchar_t *newVal); // (Relevant only when running on a Microsoft Windows operating system.) Applies to // creating MS Windows-based self-extracting EXEs. Sets the unzipping caption of // the main user-interface dialog that appears when the self-extracting EXE runs. void get_ExeUnzipCaption(CkString &str); // (Relevant only when running on a Microsoft Windows operating system.) Applies to // creating MS Windows-based self-extracting EXEs. Sets the unzipping caption of // the main user-interface dialog that appears when the self-extracting EXE runs. const wchar_t *exeUnzipCaption(void); // (Relevant only when running on a Microsoft Windows operating system.) Applies to // creating MS Windows-based self-extracting EXEs. Sets the unzipping caption of // the main user-interface dialog that appears when the self-extracting EXE runs. void put_ExeUnzipCaption(const wchar_t *newVal); // (Relevant only when running on a Microsoft Windows operating system.) Applies to // creating MS Windows self-extracting EXEs. Stores a pre-defined unzip directory // within the self-extracting EXE so that it automatically unzips to this directory // without user-intervention. // // Environment variables may be included if surrounded by percent characters. For // example: %TEMP%. Environment variables are expanded (i.e. resolved) when the // self-extracting EXE runs. // // Note: UNC paths, such as \\servername\path, are not supported. // // Note: To create a self-extracting EXE with no user-interaction, set the // following properties to these values:ExeSilentProgress = false // ExeNoInterface = true // ExeFinishNotifier = false // void get_ExeUnzipDir(CkString &str); // (Relevant only when running on a Microsoft Windows operating system.) Applies to // creating MS Windows self-extracting EXEs. Stores a pre-defined unzip directory // within the self-extracting EXE so that it automatically unzips to this directory // without user-intervention. // // Environment variables may be included if surrounded by percent characters. For // example: %TEMP%. Environment variables are expanded (i.e. resolved) when the // self-extracting EXE runs. // // Note: UNC paths, such as \\servername\path, are not supported. // // Note: To create a self-extracting EXE with no user-interaction, set the // following properties to these values:ExeSilentProgress = false // ExeNoInterface = true // ExeFinishNotifier = false // const wchar_t *exeUnzipDir(void); // (Relevant only when running on a Microsoft Windows operating system.) Applies to // creating MS Windows self-extracting EXEs. Stores a pre-defined unzip directory // within the self-extracting EXE so that it automatically unzips to this directory // without user-intervention. // // Environment variables may be included if surrounded by percent characters. For // example: %TEMP%. Environment variables are expanded (i.e. resolved) when the // self-extracting EXE runs. // // Note: UNC paths, such as \\servername\path, are not supported. // // Note: To create a self-extracting EXE with no user-interaction, set the // following properties to these values:ExeSilentProgress = false // ExeNoInterface = true // ExeFinishNotifier = false // void put_ExeUnzipDir(const wchar_t *newVal); // (Relevant only when running on a Microsoft Windows operating system.) If true, // the self-extracting EXE will wait for the AutoRun EXE to complete before it // exits. If false, the self-extracting EXE dialog (or process if running // silently with no user-interface), is allowed to exit prior to the completion of // the AutoRun EXE. The default value is true. bool get_ExeWaitForSetup(void); // (Relevant only when running on a Microsoft Windows operating system.) If true, // the self-extracting EXE will wait for the AutoRun EXE to complete before it // exits. If false, the self-extracting EXE dialog (or process if running // silently with no user-interface), is allowed to exit prior to the completion of // the AutoRun EXE. The default value is true. void put_ExeWaitForSetup(bool newVal); // (Relevant only when running on a Microsoft Windows operating system.) Allows for // an XML config document to be used to specify all possible options for // self-extracting EXEs. This property is a string containing the XML config // document. // // The XML should have this format:_LT_SfxConfig_GT_ // _LT_ErrPwdTitle_GT_Title for incorrect password dialog_LT_/ErrPwdTitle_GT_ // _LT_ErrPwdCaption_GT_Caption for incorrect password dialog_LT_/ErrPwdCaption_GT_ // _LT_FinOkBtn_GT_Text on finish notifier button_LT_/FinOkBtn_GT_ // _LT_PwdOkBtn_GT_Text on password challenge dialog's _QUOTE_OK_QUOTE_ button._LT_/PwdOkBtn_GT_ // _LT_PwdCancelBtn_GT_Text on password challenge dialog's Cancel button._LT_/PwdCancelBtn_GT_ // _LT_ErrInvalidPassword_GT_Incorrect password error message._LT_/ErrInvalidPassword_GT_ // _LT_MainUnzipBtn_GT_Text on main dialog's unzip button_LT_/MainUnzipBtn_GT_ // _LT_MainCloseBtn_GT_Text on main dialog's quit/exit button_LT_/MainCloseBtn_GT_ // _LT_MainBrowseBtn_GT_Text on main dialog's browse-for-directory button._LT_/MainBrowseBtn_GT_ // _LT_MainUnzipLabel_GT_Caption displayed in main dialog._LT_/MainUnzipLabel_GT_ // _LT_AutoTemp_GT__QUOTE_1|0 (Maps to the AutoTemp property)_QUOTE__LT_/AutoTemp_GT_ // _LT_Cleanup_GT__QUOTE_1|0 (Deletes extracted files after the SetupExe is run.)_QUOTE__LT_/Cleanup_GT_ // _LT_Debug_GT__QUOTE_1|0 (If 1, the EXE will not extract any files.)_QUOTE__LT_/Debug_GT_ // _LT_Verbose_GT__QUOTE_1|0 (If 1, then verbose information is sent to the log.)_QUOTE__LT_/Verbose_GT_ // _LT_ShowFin_GT__QUOTE_1|0_QUOTE_ Maps to ExeFinishNotifier property._LT_/ShowFin_GT_ // _LT_ShowMain_GT__QUOTE_1|0_QUOTE_ Maps to ExeNoInterface property._LT_/ShowMain_GT_ // _LT_ShowProgress_GT__QUOTE_1|0_QUOTE_ Maps to ExeSilentProgress property._LT_/ShowProgress_GT_ // _LT_WaitForSetup_GT__QUOTE_1|0_QUOTE_ Maps to ExeWaitForSetup property._LT_/WaitForSetup_GT_ // _LT_Encryption_GT__QUOTE_1|0_QUOTE_ 1=Yes, 0=No_LT_/Encryption_GT_ // _LT_KeyLength_GT_128|192|256_LT_/KeyLength_GT_ // _LT_SetupExe_GT_EXE to run after extracting. (Maps to AutoRun property)_LT_/SetupExe_GT_ // _LT_UnzipDir_GT_Pre-defined unzip directory. (Maps to ExeUnzipDir property, // UNC paths, such as \\servername\path, are not supported.)_GT_ // _LT_DefaultDir_GT_Default unzip directory to appear in the main dialog. // (Maps to ExeDefaultDir property)_LT_/DefaultDir_GT_ // _LT_IconFile_GT_Icon file to be used (Maps to ExeIconFile property)_LT_/IconFile_GT_ // _LT_Url_GT_Maps to ExeSourceUrl property._LT_/Url_GT_ // _LT_MainTitle_GT_Maps to ExeTitle property._LT_/MainTitle_GT_ // _LT_MainCaption_GT_Maps to ExeUnzipCaption property._LT_/MainCaption_GT_ // _LT_FinTitle_GT_Title for the finish notifier dialog._LT_/FinTitle_GT_ // _LT_FinCaption_GT_Caption for the finish notifier dialog._LT_/FinTitle_GT_ // _LT_ProgressTitle_GT_Title for the progress dialog._LT_/ProgressTitle_GT_ // _LT_ProgressCaption_GT_Caption for the progress dialog._LT_/ProgressCaption_GT_ // _LT_PwTitle_GT_Title for the password challenge dialog._LT_/PwTitle_GT_ // _LT_PwCaption_GT_Caption for the password challenge dialog._LT_/PwCaption_GT_ // _LT_/SfxConfig_GT_ // // // A self-extracting EXE can be run from the command line with the -log // {logFilePath} option to create a log with information for debugging. // void get_ExeXmlConfig(CkString &str); // (Relevant only when running on a Microsoft Windows operating system.) Allows for // an XML config document to be used to specify all possible options for // self-extracting EXEs. This property is a string containing the XML config // document. // // The XML should have this format:_LT_SfxConfig_GT_ // _LT_ErrPwdTitle_GT_Title for incorrect password dialog_LT_/ErrPwdTitle_GT_ // _LT_ErrPwdCaption_GT_Caption for incorrect password dialog_LT_/ErrPwdCaption_GT_ // _LT_FinOkBtn_GT_Text on finish notifier button_LT_/FinOkBtn_GT_ // _LT_PwdOkBtn_GT_Text on password challenge dialog's _QUOTE_OK_QUOTE_ button._LT_/PwdOkBtn_GT_ // _LT_PwdCancelBtn_GT_Text on password challenge dialog's Cancel button._LT_/PwdCancelBtn_GT_ // _LT_ErrInvalidPassword_GT_Incorrect password error message._LT_/ErrInvalidPassword_GT_ // _LT_MainUnzipBtn_GT_Text on main dialog's unzip button_LT_/MainUnzipBtn_GT_ // _LT_MainCloseBtn_GT_Text on main dialog's quit/exit button_LT_/MainCloseBtn_GT_ // _LT_MainBrowseBtn_GT_Text on main dialog's browse-for-directory button._LT_/MainBrowseBtn_GT_ // _LT_MainUnzipLabel_GT_Caption displayed in main dialog._LT_/MainUnzipLabel_GT_ // _LT_AutoTemp_GT__QUOTE_1|0 (Maps to the AutoTemp property)_QUOTE__LT_/AutoTemp_GT_ // _LT_Cleanup_GT__QUOTE_1|0 (Deletes extracted files after the SetupExe is run.)_QUOTE__LT_/Cleanup_GT_ // _LT_Debug_GT__QUOTE_1|0 (If 1, the EXE will not extract any files.)_QUOTE__LT_/Debug_GT_ // _LT_Verbose_GT__QUOTE_1|0 (If 1, then verbose information is sent to the log.)_QUOTE__LT_/Verbose_GT_ // _LT_ShowFin_GT__QUOTE_1|0_QUOTE_ Maps to ExeFinishNotifier property._LT_/ShowFin_GT_ // _LT_ShowMain_GT__QUOTE_1|0_QUOTE_ Maps to ExeNoInterface property._LT_/ShowMain_GT_ // _LT_ShowProgress_GT__QUOTE_1|0_QUOTE_ Maps to ExeSilentProgress property._LT_/ShowProgress_GT_ // _LT_WaitForSetup_GT__QUOTE_1|0_QUOTE_ Maps to ExeWaitForSetup property._LT_/WaitForSetup_GT_ // _LT_Encryption_GT__QUOTE_1|0_QUOTE_ 1=Yes, 0=No_LT_/Encryption_GT_ // _LT_KeyLength_GT_128|192|256_LT_/KeyLength_GT_ // _LT_SetupExe_GT_EXE to run after extracting. (Maps to AutoRun property)_LT_/SetupExe_GT_ // _LT_UnzipDir_GT_Pre-defined unzip directory. (Maps to ExeUnzipDir property, // UNC paths, such as \\servername\path, are not supported.)_GT_ // _LT_DefaultDir_GT_Default unzip directory to appear in the main dialog. // (Maps to ExeDefaultDir property)_LT_/DefaultDir_GT_ // _LT_IconFile_GT_Icon file to be used (Maps to ExeIconFile property)_LT_/IconFile_GT_ // _LT_Url_GT_Maps to ExeSourceUrl property._LT_/Url_GT_ // _LT_MainTitle_GT_Maps to ExeTitle property._LT_/MainTitle_GT_ // _LT_MainCaption_GT_Maps to ExeUnzipCaption property._LT_/MainCaption_GT_ // _LT_FinTitle_GT_Title for the finish notifier dialog._LT_/FinTitle_GT_ // _LT_FinCaption_GT_Caption for the finish notifier dialog._LT_/FinTitle_GT_ // _LT_ProgressTitle_GT_Title for the progress dialog._LT_/ProgressTitle_GT_ // _LT_ProgressCaption_GT_Caption for the progress dialog._LT_/ProgressCaption_GT_ // _LT_PwTitle_GT_Title for the password challenge dialog._LT_/PwTitle_GT_ // _LT_PwCaption_GT_Caption for the password challenge dialog._LT_/PwCaption_GT_ // _LT_/SfxConfig_GT_ // // // A self-extracting EXE can be run from the command line with the -log // {logFilePath} option to create a log with information for debugging. // const wchar_t *exeXmlConfig(void); // (Relevant only when running on a Microsoft Windows operating system.) Allows for // an XML config document to be used to specify all possible options for // self-extracting EXEs. This property is a string containing the XML config // document. // // The XML should have this format:_LT_SfxConfig_GT_ // _LT_ErrPwdTitle_GT_Title for incorrect password dialog_LT_/ErrPwdTitle_GT_ // _LT_ErrPwdCaption_GT_Caption for incorrect password dialog_LT_/ErrPwdCaption_GT_ // _LT_FinOkBtn_GT_Text on finish notifier button_LT_/FinOkBtn_GT_ // _LT_PwdOkBtn_GT_Text on password challenge dialog's _QUOTE_OK_QUOTE_ button._LT_/PwdOkBtn_GT_ // _LT_PwdCancelBtn_GT_Text on password challenge dialog's Cancel button._LT_/PwdCancelBtn_GT_ // _LT_ErrInvalidPassword_GT_Incorrect password error message._LT_/ErrInvalidPassword_GT_ // _LT_MainUnzipBtn_GT_Text on main dialog's unzip button_LT_/MainUnzipBtn_GT_ // _LT_MainCloseBtn_GT_Text on main dialog's quit/exit button_LT_/MainCloseBtn_GT_ // _LT_MainBrowseBtn_GT_Text on main dialog's browse-for-directory button._LT_/MainBrowseBtn_GT_ // _LT_MainUnzipLabel_GT_Caption displayed in main dialog._LT_/MainUnzipLabel_GT_ // _LT_AutoTemp_GT__QUOTE_1|0 (Maps to the AutoTemp property)_QUOTE__LT_/AutoTemp_GT_ // _LT_Cleanup_GT__QUOTE_1|0 (Deletes extracted files after the SetupExe is run.)_QUOTE__LT_/Cleanup_GT_ // _LT_Debug_GT__QUOTE_1|0 (If 1, the EXE will not extract any files.)_QUOTE__LT_/Debug_GT_ // _LT_Verbose_GT__QUOTE_1|0 (If 1, then verbose information is sent to the log.)_QUOTE__LT_/Verbose_GT_ // _LT_ShowFin_GT__QUOTE_1|0_QUOTE_ Maps to ExeFinishNotifier property._LT_/ShowFin_GT_ // _LT_ShowMain_GT__QUOTE_1|0_QUOTE_ Maps to ExeNoInterface property._LT_/ShowMain_GT_ // _LT_ShowProgress_GT__QUOTE_1|0_QUOTE_ Maps to ExeSilentProgress property._LT_/ShowProgress_GT_ // _LT_WaitForSetup_GT__QUOTE_1|0_QUOTE_ Maps to ExeWaitForSetup property._LT_/WaitForSetup_GT_ // _LT_Encryption_GT__QUOTE_1|0_QUOTE_ 1=Yes, 0=No_LT_/Encryption_GT_ // _LT_KeyLength_GT_128|192|256_LT_/KeyLength_GT_ // _LT_SetupExe_GT_EXE to run after extracting. (Maps to AutoRun property)_LT_/SetupExe_GT_ // _LT_UnzipDir_GT_Pre-defined unzip directory. (Maps to ExeUnzipDir property, // UNC paths, such as \\servername\path, are not supported.)_GT_ // _LT_DefaultDir_GT_Default unzip directory to appear in the main dialog. // (Maps to ExeDefaultDir property)_LT_/DefaultDir_GT_ // _LT_IconFile_GT_Icon file to be used (Maps to ExeIconFile property)_LT_/IconFile_GT_ // _LT_Url_GT_Maps to ExeSourceUrl property._LT_/Url_GT_ // _LT_MainTitle_GT_Maps to ExeTitle property._LT_/MainTitle_GT_ // _LT_MainCaption_GT_Maps to ExeUnzipCaption property._LT_/MainCaption_GT_ // _LT_FinTitle_GT_Title for the finish notifier dialog._LT_/FinTitle_GT_ // _LT_FinCaption_GT_Caption for the finish notifier dialog._LT_/FinTitle_GT_ // _LT_ProgressTitle_GT_Title for the progress dialog._LT_/ProgressTitle_GT_ // _LT_ProgressCaption_GT_Caption for the progress dialog._LT_/ProgressCaption_GT_ // _LT_PwTitle_GT_Title for the password challenge dialog._LT_/PwTitle_GT_ // _LT_PwCaption_GT_Caption for the password challenge dialog._LT_/PwCaption_GT_ // _LT_/SfxConfig_GT_ // // // A self-extracting EXE can be run from the command line with the -log // {logFilePath} option to create a log with information for debugging. // void put_ExeXmlConfig(const wchar_t *newVal); // The number of files (excluding directories) contained within the Zip. int get_FileCount(void); // The path (absolute or relative) of the Zip archive. This is the path of the file // that is created or overwritten when the zip is saved. void get_FileName(CkString &str); // The path (absolute or relative) of the Zip archive. This is the path of the file // that is created or overwritten when the zip is saved. const wchar_t *fileName(void); // The path (absolute or relative) of the Zip archive. This is the path of the file // that is created or overwritten when the zip is saved. void put_FileName(const wchar_t *newVal); // true if the opened zip contained file format errors (that were not severe // enough to prevent the zip from being opened and parsed). bool get_HasZipFormatErrors(void); // The interval in milliseconds between each AbortCheck event callback, which // enables an application to abort certain method calls before they complete. By // default, HeartbeatMs is set to 0 , meaning no AbortCheck event callbacks will // trigger. // // References: // 1: #AbortCheck int get_HeartbeatMs(void); // The interval in milliseconds between each AbortCheck event callback, which // enables an application to abort certain method calls before they complete. By // default, HeartbeatMs is set to 0 , meaning no AbortCheck event callbacks will // trigger. // // References: // 1: #AbortCheck void put_HeartbeatMs(int newVal); // If true, then files that cannot be read due to access denied (i.e. a file // permission error) will be ignored and the call to WriteZip, WriteZipAndClose, // WriteExe, etc. will return a success status. If false, then the access denied // filesystem errors are not ignored and any occurrence will cause the zip writing // to fail. The default value is true. bool get_IgnoreAccessDenied(void); // If true, then files that cannot be read due to access denied (i.e. a file // permission error) will be ignored and the call to WriteZip, WriteZipAndClose, // WriteExe, etc. will return a success status. If false, then the access denied // filesystem errors are not ignored and any occurrence will cause the zip writing // to fail. The default value is true. void put_IgnoreAccessDenied(bool newVal); // The maximum last-modified date/time of a file to process for either adding to a // .zip, or unzipping. This property uses the timestamp date/time string format. // Here are some examples: // * YYYY-MM-DD (e.g., 2024-07-31) // * YYYY-MM-DDTHH:MM:SS±HH:MM (e.g., 2024-07-31T12:34:56+02:00) // * 2024-07-31T12:34:56Z (the Z denotes Zulu time, or UTC) // // This property defaults to the empty string, which means there is no maximum. // void get_MaxDate(CkString &str); // The maximum last-modified date/time of a file to process for either adding to a // .zip, or unzipping. This property uses the timestamp date/time string format. // Here are some examples: // * YYYY-MM-DD (e.g., 2024-07-31) // * YYYY-MM-DDTHH:MM:SS±HH:MM (e.g., 2024-07-31T12:34:56+02:00) // * 2024-07-31T12:34:56Z (the Z denotes Zulu time, or UTC) // // This property defaults to the empty string, which means there is no maximum. // const wchar_t *maxDate(void); // The maximum last-modified date/time of a file to process for either adding to a // .zip, or unzipping. This property uses the timestamp date/time string format. // Here are some examples: // * YYYY-MM-DD (e.g., 2024-07-31) // * YYYY-MM-DDTHH:MM:SS±HH:MM (e.g., 2024-07-31T12:34:56+02:00) // * 2024-07-31T12:34:56Z (the Z denotes Zulu time, or UTC) // // This property defaults to the empty string, which means there is no maximum. // void put_MaxDate(const wchar_t *newVal); // An application can set this property to prevent unzipping any files larger than // a max size uncompressed. The default value of this property is 0, which means // any size file can be unzipped. unsigned long get_MaxUncompressSize(void); // An application can set this property to prevent unzipping any files larger than // a max size uncompressed. The default value of this property is 0, which means // any size file can be unzipped. void put_MaxUncompressSize(unsigned long newVal); // The minimum last-modified date/time of a file to process for either adding to a // .zip, or unzipping. This property uses the timestamp date/time string format. // Here are some examples: // * YYYY-MM-DD (e.g., 2024-07-31) // * YYYY-MM-DDTHH:MM:SS±HH:MM (e.g., 2024-07-31T12:34:56+02:00) // * 2024-07-31T12:34:56Z (the Z denotes Zulu time, or UTC) // // This property defaults to the empty string, which means there is no minimum. // void get_MinDate(CkString &str); // The minimum last-modified date/time of a file to process for either adding to a // .zip, or unzipping. This property uses the timestamp date/time string format. // Here are some examples: // * YYYY-MM-DD (e.g., 2024-07-31) // * YYYY-MM-DDTHH:MM:SS±HH:MM (e.g., 2024-07-31T12:34:56+02:00) // * 2024-07-31T12:34:56Z (the Z denotes Zulu time, or UTC) // // This property defaults to the empty string, which means there is no minimum. // const wchar_t *minDate(void); // The minimum last-modified date/time of a file to process for either adding to a // .zip, or unzipping. This property uses the timestamp date/time string format. // Here are some examples: // * YYYY-MM-DD (e.g., 2024-07-31) // * YYYY-MM-DDTHH:MM:SS±HH:MM (e.g., 2024-07-31T12:34:56+02:00) // * 2024-07-31T12:34:56Z (the Z denotes Zulu time, or UTC) // // This property defaults to the empty string, which means there is no minimum. // void put_MinDate(const wchar_t *newVal); // The number of entries in the Zip, including both files and directories. int get_NumEntries(void); // Sets the OEM code page to be used for Unicode filenames. This property defaults // to the OEM code page of the computer. int get_OemCodePage(void); // Sets the OEM code page to be used for Unicode filenames. This property defaults // to the OEM code page of the computer. void put_OemCodePage(int newVal); // Determines whether existing files are overwritten during unzipping. The default // is true, which means that already-existing files will be overwritten. Set this // property = false to prevent existing files from being overwritten when // unzipping. bool get_OverwriteExisting(void); // Determines whether existing files are overwritten during unzipping. The default // is true, which means that already-existing files will be overwritten. Set this // property = false to prevent existing files from being overwritten when // unzipping. void put_OverwriteExisting(bool newVal); // true if the Zip should be password-protected using older Zip 2.0 encryption, // commonly referred to as password-protection . // // This property is set when a zip archive is opened by any of the Open* methods, // such as OpenZip, OpenFromMemory, etc. // bool get_PasswordProtect(void); // true if the Zip should be password-protected using older Zip 2.0 encryption, // commonly referred to as password-protection . // // This property is set when a zip archive is opened by any of the Open* methods, // such as OpenZip, OpenFromMemory, etc. // void put_PasswordProtect(bool newVal); // A prefix that is added to each filename when zipping. One might set the // PathPrefix to subdir/ so that files are unzipped to a specified subdirectory // when unzipping. void get_PathPrefix(CkString &str); // A prefix that is added to each filename when zipping. One might set the // PathPrefix to subdir/ so that files are unzipped to a specified subdirectory // when unzipping. const wchar_t *pathPrefix(void); // A prefix that is added to each filename when zipping. One might set the // PathPrefix to subdir/ so that files are unzipped to a specified subdirectory // when unzipping. void put_PathPrefix(const wchar_t *newVal); // This property is only valid in programming environment and languages that allow // for event callbacks. // // Sets the value to be defined as 100% complete for the purpose of PercentDone // event callbacks. The defaut value of 100 means that at most 100 event // PercentDone callbacks will occur in a method that (1) is event enabled and (2) // is such that it is possible to measure progress as a percentage completed. This // property may be set to larger numbers to get more fine-grained PercentDone // callbacks. For example, setting this property equal to 1000 will provide // callbacks with .1 percent granularity. For example, a value of 453 would // indicate 45.3% competed. This property is clamped to a minimum value of 10, and // a maximum value of 100000. // int get_PercentDoneScale(void); // This property is only valid in programming environment and languages that allow // for event callbacks. // // Sets the value to be defined as 100% complete for the purpose of PercentDone // event callbacks. The defaut value of 100 means that at most 100 event // PercentDone callbacks will occur in a method that (1) is event enabled and (2) // is such that it is possible to measure progress as a percentage completed. This // property may be set to larger numbers to get more fine-grained PercentDone // callbacks. For example, setting this property equal to 1000 will provide // callbacks with .1 percent granularity. For example, a value of 453 would // indicate 45.3% competed. This property is clamped to a minimum value of 10, and // a maximum value of 100000. // void put_PercentDoneScale(int newVal); // For older password-protected Zip archives (Zip 2.0 encryption), specifies the // charset used for the binary representation of the decrypt password. The default // value is ansi . Other possible choices are cp850, cp437, or any of the code // pages listed at the link below. void get_PwdProtCharset(CkString &str); // For older password-protected Zip archives (Zip 2.0 encryption), specifies the // charset used for the binary representation of the decrypt password. The default // value is ansi . Other possible choices are cp850, cp437, or any of the code // pages listed at the link below. const wchar_t *pwdProtCharset(void); // For older password-protected Zip archives (Zip 2.0 encryption), specifies the // charset used for the binary representation of the decrypt password. The default // value is ansi . Other possible choices are cp850, cp437, or any of the code // pages listed at the link below. void put_PwdProtCharset(const wchar_t *newVal); // The temporary directory to use when unzipping files or writing a .zip (see the // note below). When running in ASP or ASP.NET, the default value of TempDir is set // to the directory where the .zip is being written. Set this property to override // the default. // // Note: When writing a .zip, a temp file is only used if overwriting an existing // .zip. The reason is to prevent losing the existing .zip if something fails when // writing the new .zip. If the new .zip is successfully written, then the existing // .zip is replaced with the new .zip. // void get_TempDir(CkString &str); // The temporary directory to use when unzipping files or writing a .zip (see the // note below). When running in ASP or ASP.NET, the default value of TempDir is set // to the directory where the .zip is being written. Set this property to override // the default. // // Note: When writing a .zip, a temp file is only used if overwriting an existing // .zip. The reason is to prevent losing the existing .zip if something fails when // writing the new .zip. If the new .zip is successfully written, then the existing // .zip is replaced with the new .zip. // const wchar_t *tempDir(void); // The temporary directory to use when unzipping files or writing a .zip (see the // note below). When running in ASP or ASP.NET, the default value of TempDir is set // to the directory where the .zip is being written. Set this property to override // the default. // // Note: When writing a .zip, a temp file is only used if overwriting an existing // .zip. The reason is to prevent losing the existing .zip if something fails when // writing the new .zip. If the new .zip is successfully written, then the existing // .zip is replaced with the new .zip. // void put_TempDir(const wchar_t *newVal); // This is a catch-all property to be used for uncommon needs. This property // defaults to the empty string, and should typically remain empty. // // Currently, the only possible option is ForceZip64 . // * ForceZip64 - Force the zip to be written with the Zip64 file format, even // if not necessary. // void get_UncommonOptions(CkString &str); // This is a catch-all property to be used for uncommon needs. This property // defaults to the empty string, and should typically remain empty. // // Currently, the only possible option is ForceZip64 . // * ForceZip64 - Force the zip to be written with the Zip64 file format, even // if not necessary. // const wchar_t *uncommonOptions(void); // This is a catch-all property to be used for uncommon needs. This property // defaults to the empty string, and should typically remain empty. // // Currently, the only possible option is ForceZip64 . // * ForceZip64 - Force the zip to be written with the Zip64 file format, even // if not necessary. // void put_UncommonOptions(const wchar_t *newVal); // Starting in v9.4.1, Chilkat Zip will automatically unzip ZIPX files using any of // the following compression methods: BZIP2, PPMd, LZMA, and Deflate64 ( Deflate64 // is a trademark of PKWare, Inc.) // // This property, however, controls whether or not a ZipX is automatically produced // where the best compression algorithm for each file is automatically chosen based // on file type. This property is for writing zip archives. It does not apply to // when unzipping ZIPX archives, Chilkat Zip automatically handles the various // compression algorithms when unzipping. // bool get_Zipx(void); // Starting in v9.4.1, Chilkat Zip will automatically unzip ZIPX files using any of // the following compression methods: BZIP2, PPMd, LZMA, and Deflate64 ( Deflate64 // is a trademark of PKWare, Inc.) // // This property, however, controls whether or not a ZipX is automatically produced // where the best compression algorithm for each file is automatically chosen based // on file type. This property is for writing zip archives. It does not apply to // when unzipping ZIPX archives, Chilkat Zip automatically handles the various // compression algorithms when unzipping. // void put_Zipx(bool newVal); // The default compression algorithm to be used when creating ZIPX archives. The // default value is deflate . Other possible values are ppmd , lzma , bzip2 and // deflate64 . When writing a ZIPX archive, if the file extension does not indicate // an obvious choice for the appropriate compression algorithm, then the // ZipxDefaultAlg is used. void get_ZipxDefaultAlg(CkString &str); // The default compression algorithm to be used when creating ZIPX archives. The // default value is deflate . Other possible values are ppmd , lzma , bzip2 and // deflate64 . When writing a ZIPX archive, if the file extension does not indicate // an obvious choice for the appropriate compression algorithm, then the // ZipxDefaultAlg is used. const wchar_t *zipxDefaultAlg(void); // The default compression algorithm to be used when creating ZIPX archives. The // default value is deflate . Other possible values are ppmd , lzma , bzip2 and // deflate64 . When writing a ZIPX archive, if the file extension does not indicate // an obvious choice for the appropriate compression algorithm, then the // ZipxDefaultAlg is used. void put_ZipxDefaultAlg(const wchar_t *newVal); // ---------------------- // Methods // ---------------------- // Appends the contents of bd as a new entry to this object. bool AddBd(const wchar_t *pathInZip, CkBinDataW &bd); // Adds an empty file or directory entry to this object. If isDir is true, then an // empty directory entry is added. Otherwise an empty file entry is added. bool AddEmpty(bool isDir, const wchar_t *pathInZip); // Adds binary data as a new entry to this object. pathInZip specifies the entry's path // within the zip. data contains the data encoded using the method specified by // encoding, such as base64 or hex. bool AddEncoded(const wchar_t *pathInZip, const wchar_t *encoding, const wchar_t *data); // Adds a file or directory to the object. If localPath is an absolute file path and // saveExtraPath is true, localPath is converted to a relative file path for the zip entry. // Otherwise, only the filename is stored. If localPath is a relative file path, it is // stored as-is in the zip, regardless of saveExtraPath. bool AddFile(const wchar_t *localPath, bool saveExtraPath); // Attempting to compress already-compressed data is usually a waste of CPU cycles // with little or no benefit. In fact, it is possible that attempting to compress // already-compressed data results in a slightly increased size. The Zip file // format allows for files to be stored rather than compressed. This allows the // file data to be streamed directly into a .zip without compression. // // An instance of the Zip object has an internal list of no compress extensions. A // filename with a no compress extension is stored rather than compressed. // Additional no compress extensions may be added by calling this method (once per // file extension). You should pass the file extension, such as .xyz in fileExtension. // // no compress extensions may be removed by calling RemoveNoCompressExtension. // // The default no compress extensions are: .zip, .gif, .jpg, .gz, .rar, .jar, .tgz, // .bz2, .z, .rpm, .msi, .png // void AddNoCompressExtension(const wchar_t *fileExtension); // The content of sb is added as a new entry to this object, using its byte // representation based on the specified charset. bool AddSb(const wchar_t *pathInZip, CkStringBuilderW &sb, const wchar_t *charset); // Adds a new text entry to this object, using its byte representation based on the // specified charset. bool AddString(const wchar_t *pathInZip, const wchar_t *content, const wchar_t *charset); // This method is deprecated. Applications should instead call AddBd . // // Appends the contents of byteData as a new entry to this zip object. The zip entry // object containing the data is returned. // // The caller is responsible for deleting the object returned by this method. CkZipEntryW *AppendBd(const wchar_t *pathInZip, CkBinDataW &byteData); // This method is deprecated. Applications should instead call AddData . // // Appends in-memory data as a new entry to a Zip object. The ZipEntry object // containing the data is returned. // // Note: This method only updates the zip object. To update (rewrite) a zip file, // either the WriteZip or WriteZipAndClose method would need to be called. // // The caller is responsible for deleting the object returned by this method. CkZipEntryW *AppendData(const wchar_t *fileName, CkByteData &inData); // This method is deprecated. Applications should instead call AddEncoded . // // Appends in-memory data as a new entry to a Zip object. The filename is the filename // of the entry as it will appear within the zip. The encoding is the encoding of the // data, such as base64 , hex , etc. The full list of encodings is listed at the // web page linked below. // // Returns the zip entry object. // // Note: This method only updates the zip object. To update (rewrite) a zip file, // either the WriteZip or WriteZipAndClose method would need to be called. // // The caller is responsible for deleting the object returned by this method. CkZipEntryW *AppendDataEncoded(const wchar_t *filename, const wchar_t *encoding, const wchar_t *data); // Appends one or more files to the Zip object. The filePattern can use the * // wildcard character for 0 or more of any characterSet recurse equal to True to // recursively add all subdirectories, or False to only add files in the current // directory. // // Note: This method only updates the zip object. To update (rewrite) a zip file, // either the WriteZip or WriteZipAndClose method would need to be called. // bool AppendFiles(const wchar_t *filePattern, bool recurse); // Creates an asynchronous task to call the AppendFiles method with the arguments // provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *AppendFilesAsync(const wchar_t *filePattern, bool recurse); // Appends one or more files to the Zip object. The filePattern can use the * to mean 0 or // more of any character. The recurse controls whether directories are recursively // traversed. Set recurse equal to true to append files and subdirectories in the // directory tree. Set recurse equal to false to add files only from the indicated // directory. // // The saveExtraPath only applies when the filePattern is an absolute path pattern, such as // C:/temp/abc/*.txt . If saveExtraPath is true, then the absolute path will be included // in the zip entry filenames as relative paths. For example, temp/abc/xyz.txt . // // The archiveOnly, includeHidden, and includeSystem flags only apply when on the Windows operating system. // If archiveOnly is true, then only files that have the archive bit set will be // included in the zip. If includeHidden is false, then hidden files are not included. If // includeSystem is false, then files having the System attribute are not included. // // Note: This method does not write the zip archive. It simply adds references to // the files that will be included in the .zip when the WriteZip or // WriteZipAndClose methods are eventually called. Files and/or data may be added // to the zip object by calling any combination of the Append* methods before // finally writing the zip via one of the Write* methods. // bool AppendFilesEx(const wchar_t *filePattern, bool recurse, bool saveExtraPath, bool archiveOnly, bool includeHidden, bool includeSystem); // Creates an asynchronous task to call the AppendFilesEx method with the arguments // provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *AppendFilesExAsync(const wchar_t *filePattern, bool recurse, bool saveExtraPath, bool archiveOnly, bool includeHidden, bool includeSystem); // This method is deprecated. Applications should instead call AddEmpty . // // Appends a new and empty entry to the Zip object and returns the ZipEntry object. // Data can be appended to the entry by calling ZipEntry.AppendData. // // Important: To append an already-existing file, call the AppendOneFileOrDir // method. The AppendNew method inserts a new and empty file entry within the Zip // object. The purpose of AppendNew is to either create an empty file within the // Zip, or to create a new file entry which can then be filled with data by calling // the entry's AppendData method. // // Note: This method only updates the zip object. To update (rewrite) a zip file, // either the WriteZip or WriteZipAndClose method would need to be called. // // The caller is responsible for deleting the object returned by this method. CkZipEntryW *AppendNew(const wchar_t *fileName); // This method is deprecated. Applications should instead call AddEmpty . // // Adds an entry to the zip so that when it unzips, a new directory (with no files) // is created. The directory does not need to exist on the local filesystem when // calling this method. The dirName is simply a string that is used as the directory // path for the entry added to the zip. The zip entry object is returned. // // Note: This method only updates the zip object. To update (rewrite) a zip file, // either the WriteZip or WriteZipAndClose method would need to be called. // // The caller is responsible for deleting the object returned by this method. CkZipEntryW *AppendNewDir(const wchar_t *dirName); // This method is deprecated. Applications should instead call AddFile . // // Adds a file or directory to the object. If fileOrDirPath is an absolute file path and // saveExtraPath is true, fileOrDirPath is converted to a relative file path for the zip entry. // Otherwise, only the filename is stored. If fileOrDirPath is a relative file path, it is // stored as-is in the zip, regardless of saveExtraPath. // bool AppendOneFileOrDir(const wchar_t *fileOrDirPath, bool saveExtraPath); // Creates an asynchronous task to call the AppendOneFileOrDir method with the // arguments provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *AppendOneFileOrDirAsync(const wchar_t *fileOrDirPath, bool saveExtraPath); // This method is deprecated. Applications should instead call AddSb . // // Same as AppendString, but append the contents of of the sb, and allow the // charset to be specified. The contents of sb is converted to charset before being // added to the zip. The pathInZip is the path of the file that will be stored within // the zip. // // Note: This method only updates the zip object. To update (rewrite) a zip file, // either the WriteZip or WriteZipAndClose method would need to be called. // bool AppendSb(const wchar_t *pathInZip, CkStringBuilderW &sb, const wchar_t *charset); // This method is deprecated. Applications should instead call AddString . // // Adds an in-memory string to the Zip object. The textData argument is converted to // the ANSI charset before being added to the Zip. If the Zip were written to disk // by calling WriteZip, and later unzipped, the entry would unzip to an ANSI text // file. // // Note: This method only updates the zip object. To update (rewrite) a zip file, // either the WriteZip or WriteZipAndClose method would need to be called. // // The caller is responsible for deleting the object returned by this method. CkZipEntryW *AppendString(const wchar_t *internalZipFilepath, const wchar_t *textData); // This method is deprecated. Applications should instead call AddString . // // Same as AppendString, but allows the charset to be specified. The textData is // converted to charset before being added to the zip. The internalZipFilepath is the path of the // file that will be stored within the zip. // // Note: This method only updates the zip object. To update (rewrite) a zip file, // either the WriteZip or WriteZipAndClose method would need to be called. // // The caller is responsible for deleting the object returned by this method. CkZipEntryW *AppendString2(const wchar_t *internalZipFilepath, const wchar_t *textData, const wchar_t *charset); // Adds the contents of another existing Zip file to this Zip object. bool AppendZip(const wchar_t *zipFileName); // Closes an open Zip file. This is identical to calling NewZip. (NewZip closes the // current Zip file, if open, and initializes the Zip object to be empty. Zip files // are only created when WriteZip is called.) void CloseZip(void); // Removes a Zip entry from the calling Zip object. bool DeleteEntry(CkZipEntryW &entry); // Returns the entry at index in entry. The 1st entry is at index 0. bool EntryAt(int index, CkZipEntryW &entry); // Finds and returns the entry with the given id. (Each entry within the zip // object has a unique EntryID .) bool EntryById(int id, CkZipEntryW &entry); // Returns in entry the first entry that matches pattern, where pattern may include * as a // wildcard character matching any sequence of zero or more characters. The match // is made against the full file path stored in the zip. bool EntryMatching(const wchar_t *pattern, CkZipEntryW &entry); // Returns in entry the entry where the file path stored within the zip equals pathInZip. bool EntryOf(const wchar_t *pathInZip, CkZipEntryW &entry); // Adds a directory name to be excluded when AppendFiles is called to add an entire // directory tree. All directories having a name equal to an excluded directory // will not be included when AppendFiles (or AppendFileEx) is called. Multiple // directories can be excluded by calling ExcludeDir multiple times. The name // comparison is case-insensitive. void ExcludeDir(const wchar_t *dirName); // Extracts files from a Chilkat produced self-extracting EXE into the specified // directory. Subdirectories are automatically created as needed. If the // self-extracting EXE is encrypted, be sure to set the DecryptPassword property // prior to calling this method. bool ExtractExe(const wchar_t *exePath, const wchar_t *dirPath); // Creates an asynchronous task to call the ExtractExe method with the arguments // provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *ExtractExeAsync(const wchar_t *exePath, const wchar_t *dirPath); // This method is deprecated. Applications should instead call EntryAt . // // Return the first entry in the Zip. Call ZipEntry.NextEntry to iterate over the // entries in a Zip until a NULL is returned. // // The caller is responsible for deleting the object returned by this method. CkZipEntryW *FirstEntry(void); // This method is deprecated. Applications should instead call EntryMatching . // // Returns the first entry having a filename matching a pattern. The * characters // matches 0 or more of any character. The full filename, including path, is used // when matching against the pattern. A NULL is returned if nothing matches. // // The caller is responsible for deleting the object returned by this method. CkZipEntryW *FirstMatchingEntry(const wchar_t *pattern); // Return the contents of the Zip file directory in an XML formatted string bool GetDirectoryAsXML(CkString &outXml); // Return the contents of the Zip file directory in an XML formatted string const wchar_t *getDirectoryAsXML(void); // Return the contents of the Zip file directory in an XML formatted string const wchar_t *directoryAsXML(void); // This method is deprecated. Applications should instead call EntryById . // // Finds and returns the entry with the given entryID. (Each entry within the zip // object has a unique EntryID .) // // The caller is responsible for deleting the object returned by this method. CkZipEntryW *GetEntryByID(int entryID); // This method is deprecated. Applications should instead call EntryAt . // // Retrieves a ZipEntry by index. The first entry is at index 0. This will return // directory entries as well as files. // // The caller is responsible for deleting the object returned by this method. CkZipEntryW *GetEntryByIndex(int index); // This method is deprecated. Applications should instead call EntryOf . // // Returns the entry where the file path stored within the zip equals entryName. // // The caller is responsible for deleting the object returned by this method. CkZipEntryW *GetEntryByName(const wchar_t *entryName); // This method is deprecated and will removed in a future version of Chilkat. // // Returns the current collection of exclusion patterns that have been set by // SetExclusions. // // The caller is responsible for deleting the object returned by this method. CkStringArrayW *GetExclusions(void); // (Relevant only when running on a Microsoft Windows operating system.) Gets the // value of an EXE config param as described in the ExeXmlConfig property. bool GetExeConfigParam(const wchar_t *name, CkString &outStr); // (Relevant only when running on a Microsoft Windows operating system.) Gets the // value of an EXE config param as described in the ExeXmlConfig property. const wchar_t *getExeConfigParam(const wchar_t *name); // (Relevant only when running on a Microsoft Windows operating system.) Gets the // value of an EXE config param as described in the ExeXmlConfig property. const wchar_t *exeConfigParam(const wchar_t *name); // Returns the size of the file contained within the Zip that has the largest // uncompressed size. The size is returned in string form because it could be // larger than what can be held in a 32-bit unsigned integer, and we leave it to // the application to convert the string to an integer number. (If necessary. // Perhaps your application is only interested in the order of magnitude, which can // be known by the length of the string.) bool GetMaxUncompressedSize(CkString &outStr); // Returns the size of the file contained within the Zip that has the largest // uncompressed size. The size is returned in string form because it could be // larger than what can be held in a 32-bit unsigned integer, and we leave it to // the application to convert the string to an integer number. (If necessary. // Perhaps your application is only interested in the order of magnitude, which can // be known by the length of the string.) const wchar_t *getMaxUncompressedSize(void); // Returns the size of the file contained within the Zip that has the largest // uncompressed size. The size is returned in string form because it could be // larger than what can be held in a 32-bit unsigned integer, and we leave it to // the application to convert the string to an integer number. (If necessary. // Perhaps your application is only interested in the order of magnitude, which can // be known by the length of the string.) const wchar_t *maxUncompressedSize(void); // Returns true if the fileExtension is contained in the set of no compress extensions, // otherwise returns false. (See the documentation for the AddNoCompressExtension // method.) The fileExtension may be passed with or without the . . For example, both .jpg // and jpg are acceptable. bool IsNoCompressExtension(const wchar_t *fileExtension); // Return True if a Zip file is password protected bool IsPasswordProtected(const wchar_t *zipFilename); // Loads the caller of the task's async method. bool LoadTaskCaller(CkTaskW &task); // Clears and initializes the contents of the Zip object. If a Zip file was open, // it is closed and all entries are removed from the object. The FileName property // is set to the zipFilePath argument. bool NewZip(const wchar_t *zipFilePath); // Open a Zip contained in binData. // // When a zip is opened, the PasswordProtect and Encryption properties will be // appropriately set. If the zip is password protected (i.e. uses older Zip 2.0 // encrypion), then the PasswordProtect property will be set to true. If the zip // is strong encrypted, the Encryption property will be set to a value 1 through 4, // where 4 indicates WinZip compatible AES encryption. // bool OpenBd(CkBinDataW &binData); // (Relevant only when running on a Microsoft Windows operating system.) Opens a // Zip embedded in an MS Windows EXE bool OpenEmbedded(const wchar_t *exeFilename, const wchar_t *resourceName); // Same as OpenFromMemory. // // When a zip is opened, the PasswordProtect and Encryption properties will be // appropriately set. If the zip is password protected (i.e. uses older Zip 2.0 // encrypion), then the PasswordProtect property will be set to true. If the zip // is strong encrypted, the Encryption property will be set to a value 1 through 4, // where 4 indicates WinZip compatible AES encryption. // bool OpenFromByteData(CkByteData &byteData); // Open a Zip that is completely in-memory. This allows for Zip files to be opened // from non-filesystem sources, such as a database. // // When a zip is opened, the PasswordProtect and Encryption properties will be // appropriately set. If the zip is password protected (i.e. uses older Zip 2.0 // encrypion), then the PasswordProtect property will be set to true. If the zip // is strong encrypted, the Encryption property will be set to a value 1 through 4, // where 4 indicates WinZip compatible AES encryption. // bool OpenFromMemory(CkByteData &inData); // Opens a Zip archive. Encrypted and password-protected zips may be opened without // providing the password, but their contents may not be unzipped unless the // correct password is provided via the DecryptPassword proprety, or the // SetPassword method. // // When a zip is opened, the PasswordProtect and Encryption properties will be // appropriately set. If the zip is password protected (i.e. uses older Zip 2.0 // encrypion), then the PasswordProtect property will be set to true. If the zip // is strong encrypted, the Encryption property will be set to a value 1 through 4, // where 4 indicates WinZip compatible AES encryption. // bool OpenZip(const wchar_t *zipPath); // Creates an asynchronous task to call the OpenZip method with the arguments // provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *OpenZipAsync(const wchar_t *zipPath); // Efficiently appends additional files to an existing zip archive. QuickAppend // leaves all entries in the existing .zip untouched. It operates by appending new // files and updating the internal central directory of the zip archive. bool QuickAppend(const wchar_t *ZipFileName); // Creates an asynchronous task to call the QuickAppend method with the arguments // provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *QuickAppendAsync(const wchar_t *ZipFileName); // Removes a file extension from the zip object's internal list of no compress // extensions. (For more information, see AddNoCompressExtension.) void RemoveNoCompressExtension(const wchar_t *fileExtension); // Sets the compression level for all file and data entries. The compression level // for a mapped entry (i.e. an entry that is contained within an opened .zip, // cannot be changed.) The default compression level is 6. A compression level of 0 // is equivalent to no compression. The maximum compression level is 9. // // The zip.SetCompressionLevel method must be called after appending the files // (i.e. after the calls to AppendFile*, AppendData, or AppendOneFileOrDir). // // A single call to SetCompressionLevel will set the compression level for all // existing file and data entries. // void SetCompressionLevel(int level); // Specify a collection of exclusion patterns to be used when adding files to a // Zip. Each pattern in the collection can use the * wildcard character, where * // indicates 0 or more occurrences of any character. void SetExclusions(CkStringArrayW &excludePatterns); // Sets a self-extractor property that is embedded in the resultant EXE created by // the WriteExe or WriteExe2 methods. The paramName is one of the XML tags listed in the // ExeXmlConfig property. // // For example, to specify the text for the self-extractor's main dialog unzip // button, paramName would be MainUnzipBtn . // void SetExeConfigParam(const wchar_t *paramName, const wchar_t *paramValue); // Set the password for an encrypted or password-protected Zip. // // Note: The SetPassword method has the effect of setting both the EncryptPassword // property as well as the DecryptPassword property. The SetPassword method should // no longer be used. It has been replaced by the DecryptPassword and // EncryptPassword properties to make it possible to open an encrypted zip and // re-write it with a new password. // void SetPassword(const wchar_t *password); // Unzips and returns the number of files unzipped, or -1 if a failure occurs. // Subdirectories are automatically created during the unzipping process. int Unzip(const wchar_t *dirPath); // Creates an asynchronous task to call the Unzip method with the arguments // provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *UnzipAsync(const wchar_t *dirPath); // Unzips and returns the number of files unzipped, or -1 if a failure occurs. All // files in the Zip are unzipped into the specfied dirPath regardless of the // directory path information contained in the Zip. This has the effect of // collapsing all files into a single directory. If several files in the Zip have // the same name, the files unzipped last will overwrite the files already // unzipped. int UnzipInto(const wchar_t *dirPath); // Creates an asynchronous task to call the UnzipInto method with the arguments // provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *UnzipIntoAsync(const wchar_t *dirPath); // Same as Unzip, but only unzips files matching a pattern. If no wildcard // characters ('*') are used, then only files that exactly match the pattern will // be unzipped. The * characters matches 0 or more of any character. int UnzipMatching(const wchar_t *dirPath, const wchar_t *pattern, bool verbose); // Creates an asynchronous task to call the UnzipMatching method with the arguments // provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *UnzipMatchingAsync(const wchar_t *dirPath, const wchar_t *pattern, bool verbose); // Unzips matching files into a single directory, ignoring all path information // stored in the Zip. int UnzipMatchingInto(const wchar_t *dirPath, const wchar_t *pattern, bool verbose); // Creates an asynchronous task to call the UnzipMatchingInto method with the // arguments provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *UnzipMatchingIntoAsync(const wchar_t *dirPath, const wchar_t *pattern, bool verbose); // Same as Unzip, but only files that don't already exist on disk, or have later // file modification dates are unzipped. int UnzipNewer(const wchar_t *dirPath); // Creates an asynchronous task to call the UnzipNewer method with the arguments // provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *UnzipNewerAsync(const wchar_t *dirPath); // Tests the current DecryptPassword setting against the currently opened zip. // Returns true if the password is valid, otherwise returns false. bool VerifyPassword(void); // Same as WriteZip, but instead of writing the Zip to a file, it writes to binData. // Zips that are written to binData can be opened by calling OpenBd. Note: Both // WriteBd and OpenBd are added in Chilkat v9.5.0.66 bool WriteBd(CkBinDataW &binData); // Creates an asynchronous task to call the WriteBd method with the arguments // provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *WriteBdAsync(CkBinDataW &binData); // (Relevant only when running on a Microsoft Windows operating system.) Writes an // MS-Windows self-extracting executable. There are no limitations on the total // size, individual file size, or number of files that can be added to a // self-extracting EXE. // // If the resultant EXE will automatically accept these command-line arguments when // run: // // -log logFileName // // Creates a log file that lists the settings embedded within the EXE and logs the // errors, warnings, and other information about the self-extraction. // // -unzipDir unzipDirectoryPath // // Unzips to this directory path without user intervention. (UNC paths, such as // \\servername\path, are not supported.) // // -pwd password // // Specifies the password for an encrypted EXE // // -ap autoRunParams // // Specifies the command line parameters to be passed to the AutoRun executable // (embedded within the EXE). // bool WriteExe(const wchar_t *exeFilename); // Creates an asynchronous task to call the WriteExe method with the arguments // provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *WriteExeAsync(const wchar_t *exeFilename); // (Relevant only when running on a Microsoft Windows operating system.) Writes a // self-extracting MS-Windows EXE with no limitations on total file size and no // limitations on the size of any one file contained within. The 1st argument is // the pre-existing EXE housing that is to be used. Essentially, the // self-extracting EXE is a concatenation of the EXE housing and the // compressed/encrypted data. The 2nd argument is the name of the EXE to create or // overwrite. A housing for use with WriteExe2 can be found here: // https://www.chilkatsoft.com/d2/SaExtract.zip bool WriteExe2(const wchar_t *exePath, const wchar_t *destExePath, bool bAesEncrypt, int keyLength, const wchar_t *password); // Creates an asynchronous task to call the WriteExe2 method with the arguments // provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *WriteExe2Async(const wchar_t *exePath, const wchar_t *destExePath, bool bAesEncrypt, int keyLength, const wchar_t *password); // (Relevant only when running on a Microsoft Windows operating system.) Same as // WriteExe, but instead of writing a file, the MS-Windows EXE is written to // memory. bool WriteExeToMemory(CkByteData &outBytes); // Creates an asynchronous task to call the WriteExeToMemory method with the // arguments provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *WriteExeToMemoryAsync(void); // Same as WriteZip, but instead of writing the Zip to a file, it writes to memory. // Zips that are written to memory can also be opened from memory by calling // OpenFromMemory. bool WriteToMemory(CkByteData &outData); // Creates an asynchronous task to call the WriteToMemory method with the arguments // provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *WriteToMemoryAsync(void); // Saves the Zip to a file and implictly re-opens it so further operations can // continue. Use WriteZipAndClose to write and close the Zip. There is no // limitation on the size of files that may be contained within a .zip, the total // number of files in a .zip, or the total size of a .zip. If necessary, WriteZip // will use the ZIP64 file format extensions when 4GB or file count limitations of // the old zip file format are exceeded. bool WriteZip(void); // Creates an asynchronous task to call the WriteZip method with the arguments // provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *WriteZipAsync(void); // Saves the Zip to a file and closes it. On return, the Zip object will be in the // state as if NewZip had been called. There is no limitation on the size of files // that may be contained within a .zip, the total number of files in a .zip, or the // total size of a .zip. If necessary, WriteZip will use the ZIP64 file format // extensions when 4GB or file count limitations of the old zip file format are // exceeded. bool WriteZipAndClose(void); // Creates an asynchronous task to call the WriteZipAndClose method with the // arguments provided. // The caller is responsible for deleting the object returned by this method. CkTaskW *WriteZipAndCloseAsync(void); // END PUBLIC INTERFACE }; #if !defined(__sun__) && !defined(__sun) #pragma pack (pop) #endif #endif