SQX Archiver Includefile

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

SQX Archiver Includefile

Beitrag von ts-soft »

Nachdem schon mehrmals nachgefragt wurde :wink:

Code: Alles auswählen

;********************** 
; Author: Thomas  (ts-soft) Schulz
; Date: 29. Januar 2007
; OS: Windows
; Demo: Yes

; Description: Wrapper for "sqx20.dll" and "sqx20u.dll" Packdll
; SDK download: http://www.sqx-archiver.de/index.html
;********************** 
; 
;{ Constants
Enumeration 0         ; Error Codes
  #SQX_ERR_SUCCESS                       ; No error.
  #SQX_ERR_ERROR                         ; Unknown error in the last archive operation.
  #SQX_ERR_FILE_NOT_FOUND                ; The system cannot find the file specified.
  #SQX_ERR_PATH_NOT_FOUND                ; The system cannot find the path specified.
  #SQX_ERR_TOO_MANY_FILES                ; The system cannot open the file.
  #SQX_ERR_ACCESS_DENIED                 ; Access is denied.
  #SQX_ERR_INVALID_HANDLE                ; The file handle is invalid.
  #SQX_ERR_DISK_FULL                     ; The disk is full.
  #SQX_ERR_OUT_OF_MEMORY                 ; Not enough memory is available to complete this operation.
  #SQX_ERR_CANT_ACCESS_TEMP_DIR          ; Cannot access temp folder during a delete or update operation on a solid archive.
  #SQX_ERR_TEMP_DIR_FULL                 ; Not enough space on drive for the temporary folder.
  #SQX_ERR_USER_ABORT                    ; Cancelled by user.
  #SQX_ERR_INVALID_ARC_HANDLE            ; Invalid archive handle.
  #SQX_ERR_CANT_FIND_LANG_DATA           ; Could not find the selected language file for self-extracting archives.
  #SQX_ERR_UNKNOWN_SUBSTREAM             ; The archive contains at least one unknown alternate data stream.
  #SQX_ERR_BAD_SUBSTREAM_CRC             ; Bad alternate stream CRC. Archive is probably corrupted.
  #SQX_ERR_UNKNOWN_METHOD                ; This method of compression is not supported by the archiver.
  #SQX_ERR_FILE_ENCRYPTED                ; Archive is encrypted with a password.
  #SQX_ERR_BAD_CRC                       ; Bad CRC. Archive is probably corrupted.
  #SQX_ERR_CANT_CREATE_FILE              ; Could not create file or folder.
  #SQX_ERR_BAD_FILE_FORMAT               ; Bad archive file format.
  #SQX_ERR_FUNCTION_NOT_SUPPORTED        ; Function is not supported.
  #SQX_ERR_FUNC_NOT_SUPPORTED_BY_ARCHIVE ; Function is not supported for this archive type.
  #SQX_ERR_CANT_CREATE_ARC_DIR           ; Could not create folder in archive. It already exists a folder with this name.
  #SQX_ERR_INVALID_DIR_NAME              ; Could not create folder in archive. The folder name contains invalid characters.
  #SQX_ERR_INVALID_FILE_NAME             ; Could not create file in archive. The file name contains invalid characters.
  #SQX_ERR_TOO_MANY_BROKEN_FBLOCKS       ; The archive file contains too many damaged file blocks and cannot be repaired.
  #SQX_ERR_ARCHIVE_OK_RDATA_NOT          ; It seems that the archive has no errors, but the recovery data does not match the archive. Maybe this archive was edited by a program that could not identify the recovery data.
  #SQX_ERR_RDATA_DAMAGED                 ; The recovery data of the archive file is damaged, too. This archive file cannot be repaired.
  #SQX_ERR_RDATA_NEW_VERSION             ; The archive contains recovery data that cannot be used with this version of our software. The newest versions of our software are always available at http://www.speedproject.de/.
  #SQX_ERR_RDATA_DOES_NOT_MATCH          ; The recovery data does not match the archive. It seems that this archive was edited by a program that could not identify the recovery data.
  #SQX_ERR_CANT_FIND_RDATA               ; It seems that the archive does not contain any recovery data.
  #SQX_ERR_ARCHIVE_IS_LOCKED             ; Cannot modify locked archive.
  #SQX_ERR_CANT_ADD_TO_MV                ; It is not possible to add files to a multi-volume archive.
  #SQX_ERR_CANT_DELETE_FROM_MV           ; It is not possible to delete files from a multi-volume archive.
  #SQX_ERR_NEED_1ST_VOLUME               ; This file is part of a multi-volume archive. The first volume of the archive is needed to open it. Please select the first volume to open the archive.
  #SQX_ERR_MISSING_VOLUME                ; The last volume of the archive could not be found.
  #SQX_ERR_VOLUME_LIMIT_REACHED          ; Cannot create more than 999 volumes.
  #SQX_ERR_SFXSTUB_NOT_INSTALLED         ; This system lacks the support for the SFX type you have selected. Please visit the download section of http://ww.speedproject.de/ to obtain complete support for SFX archives.
  #SQX_ERR_BACKUP_READ_ACCESS_DENIED     ; Read access to alternate data stream was denied. Only the file itself is being compressed.
  #SQX_ERR_BACKUP_WRITE_ACCESS_DENIED    ; Could not write alternate data stream (e.g. file comments).
  #SQX_ERR_ACL_READ_ACCESS_DENIED        ; Could not read security attributes. Only the file itself is being compressed.
  #SQX_ERR_ACL_WRITE_ACCESS_DENIED       ; Could not write security attributes.
  #SQX_ERR_WRONG_ARCHIVER_VERSION        ; This archive contains data created with a higher version of this software. Please download the lastest update of the software from http://www.speedproject.de/.
  #SQX_ERR_CANT_COPY_SOURCE_TO_SOURCE    ; Cannot copy an archive to itself. Please choose a different target name.
  #SQX_ERR_VOLUMES_TOO_SMALL             ; The volume size cannot be smaller than 130 kByte.
  #SQX_ERR_ARCHIVE_VERSION_TOO_HIGH      ; This archive can only be extracted. It is not possible to add files.
  #SQX_ERR_EXT_RDATA_DOES_NOT_MATCH      ; The external recovery data don't seem to belong to the selected archive.
  #SQX_ERR_BAD_PARAMETER                 ; The parameter is incorrect.
  #SQX_ERR_EQUAL_PASSWORDS               ; The passwords for the archive files and archive directory are identical. Please enter different passwords.
  #SQX_ERR_REQUIRES_ENCRYPTION           ; You cannot encrypt the archive directory without encrypting the files. Please enter one password for the archive directory and another password for the files.
  #SQX_ERR_MISSING_HEADER_PASSWORD       ; Please enter a password to encrypt the archive directory.
  #SQX_ERR_MISSING_SQX_PRIVATE_KEY       ; Could not find/access the private key required to encrypt the archive. Please make sure that the software can access all the keys in question.
  #SQX_ERR_MISSING_SQX_AVKEY             ; Could not find the key required to create a digital signature. Please make sure that the software can access the authentication key.
  #SQX_ERR_MISSING_EXTERNAL_AVKEY        ; Could not find/access the external key necessary to sign the archive. Please make sure that the software can access all keys in question.
  #SQX_ERR_INVALID_SQX_AVKEY             ; The key you have selected to create digital signatures is invalid.
  #SQX_ERR_SQX_AVKEY_VERSION             ; This version of the software cannot use the existing key to create digital signatures. Please download the lastest update of the software from http://www.speedproject.de/.
  #SQX_ERR_SQX_AVDATA_VERSION            ; This version of the software cannot process the digital signature embedded within the archive. Please download the lastest update of the software from http://www.speedproject.de/.
  #SQX_ERR_SQX_BROKEN_AVRECORD           ; The archive contains an invalid digital signature. The archive is either damaged or it has been manipulated.
  #SQX_ERR_RIJNDAEL_RSA                  ; Unexpected error in an encryption function. Please contact our product support.
  #SQX_ERR_REQUIRES_NTFS                 ; An option you selected requires NTFS.
  #SQX_ERR_REQUIRES_WINNT                ; An option you selected requires Windows NT.
  #SQX_ERR_REQUIRES_W2K                  ; An option you selected requires Windows 2000.
  #SQX_ERR_REQUIRES_WINXP                ; An option you selected requires Windows XP.
  #SQX_ERR_REQUIRES_WINXP_SP1            ; An option you selected requires Windows XP SP1.
  #SQX_ERR_REQUIRES_WINXP_SP2            ; An option you selected requires Windows XP SP2.
  #SQX_ERR_REQUIRES_LONGHORN             ; An option you selected requires Longhorn.
  #SQX_ERR_NO_RESOURCES_FOUND            ; The selected SFX stub does not contain resources. Can not modify SFX stub.
  #SQX_ERR_UNKNOWN_ICON_FORMAT           ; Could not determine the format of the selected icon file.
  #SQX_ERR_NO_MATCHING_ICON_SIZE         ; The selected SFX stub does not contain icons with valid sizes. Can not modify SFX stub.
  #SQX_ERR_UNKNOWN_EXE_FORMAT            ; The format of the selected SFX stub is unknown.
  #SQX_ERR_REQUIRES_SOURCE_PATH          ; The extended archive test requires the source path.
  #SQX_ERR_FILE_DATA_NOT_EQUAL           ; Extended archive test: The source on hard disk is different from the file in the archive.
  #SQX_ERR_COMMENT_BIGGER_4K             ; You cannot add to the archive comments longer than 4096 chars. Please shorten your comments and try again.
  #SQX_ERR_CANT_CREATE_SFX_FROM_MV       ; Cannot create a self-extracting archive from a multi-volume archive.
EndEnumeration
Enumeration 0         ; SQX_AVENVELOPE
  #SQX_AVENVELOPE_128BIT ; Envelope is calculated with 128 bit (fastest)
  #SQX_AVENVELOPE_256BIT ; Envelope is calculated with 256 bit (fast)
  #SQX_AVENVELOPE_512BIT ; Envelope is calculated with 512 bit (securest)
EndEnumeration
Enumeration 0         ; SQX_CALLBACK
  #SQX_CALLBACK_FILENAME        ; SQX archiver is about to compress, extract, delete or test a file
  ; MEMBERS: pszSourceFileName, pszTargetFileName
  #SQX_CALLBACK_PROGRESS        ; SQX archiver signals the progress of a file beeing compressed, extracted or tested
  ; MEMBERS: iProgress, dwlBlockSize
  #SQX_CALLBACK_REPLACE         ; SQX archiver is about to overwrite either a file on disk (when extracting) or a file in the archive (when compressing)
  ; MEMBERS: pFindDataExist,
  #SQX_CALLBACK_PASSWORD        ; SQX archiver needs a password to decrypt a file
  ; MEMBERS: szCryptKey, szOldCryptKey
  #SQX_CALLBACK_PASSWORD_HEADER ; SQX archiver needs a password to decrypt the archive directory
  ; MEMBERS: szCryptKey, szOldCryptKey
  #SQX_CALLBACK_SKIP            ; SQX archiver cannot open a file because it is locked by another application
  ; MEMBERS: pszSourceFileName
  #SQX_CALLBACK_NEXTDISK        ; SQX archiver needs the next volume when extracting or a new disk when compressing
  ; MEMBERS: dwTotalSize, dwDiskNum, szNextDiskPath
  #SQX_CALLBACK_SIGNAL          ; SQX archiver signals the next command
  ; MEMBERS: dwSignal, dwlBlockSize
EndEnumeration
Enumeration 0         ; SQX_COMPRATE
  #SQX_COMPRATE_STORED    ; No compression
  #SQX_COMPRATE_FAST      ; Fast compression
  #SQX_COMPRATE_NORMAL    ; Normal compression
  #SQX_COMPRATE_HIGH      ; High compression
  #SQX_COMPRATE_MAXIMIUM  ; Maximum compression
  #SQX_COMPRATE_ULTRA     ; Ultra compression
EndEnumeration
Enumeration 0         ; Specialcomp
  #SQX_SPECIALCOMP_DISABLED
  #SQX_SPECIALCOMP_AUTOMATIC
  #SQX_SPECIALCOMP_FORCE
EndEnumeration
Enumeration 3         ; SQX_DICTIONARY
  #SQX_DICTIONARY_32K   ; 32 KB dictionary size
  #SQX_DICTIONARY_64K   ; 64 KB dictionary size
  #SQX_DICTIONARY_128K  ; 128 KB dictionary size
  #SQX_DICTIONARY_256K  ; 256 KB dictionary size
  #SQX_DICTIONARY_512K  ; 512 KB dictionary size
  #SQX_DICTIONARY_1M    ; 1 MB dictionary size
  #SQX_DICTIONARY_2M    ; 2 MB dictionary size
  #SQX_DICTIONARY_4M    ; 4 MB dictionary size
  #SQX_DICTIONARY_8M    ; 8 MB dictionary size
  #SQX_DICTIONARY_16M   ; 16 MB dictionary size
  #SQX_DICTIONARY_32M   ; 32 MB dictionary size
EndEnumeration
Enumeration 0 Step 2  ; SQX_ENCRYPTION
  #SQX_ENCRYPTION_NONE        ; Files are not encrypted
  #SQX_ENCRYPTION_AES_128BIT  ; Files are encrypted with 128 bit AES
  #SQX_ENCRYPTION_AES_256BIT  ; Files are encrypted with 256 bit AES
EndEnumeration
Enumeration 0         ; SQX_FILEFORMAT
  #SQX_FILEFORMAT_10  ; SQX1 file format
  #SQX_FILEFORMAT_20  ; SQX2 file format
EndEnumeration
Enumeration 0         ; SQX_FILENAME
  #SQX_FILENAME_ANSI    ; File names are stored in ANSI. This is the default value
  #SQX_FILENAME_ASCII   ; File names are converted to ASCII
  #SQX_FILENAME_UNICODE ; File names are stored in ANSI and Unicode. This option is only avalaible in the Unicode version of SQX archiver
EndEnumeration
Enumeration 0         ; SQX_HOSTOS
  #SQX_HOSTOS_DOSWIN        ; DOS/Windows
  #SQX_HOSTOS_DOS           ; DOS
  #SQX_HOSTOS_OS2           ; OS/2
  #SQX_HOSTOS_WIN32         ; Win32
  #SQX_HOSTOS_WINNT         ; Windows NT
  #SQX_HOSTOS_UNIX          ; UNIX
  #SQX_HOSTOS_MAC           ; Mac-OS
  #SQX_HOSTOS_WINNT_ALPHA   ; Windows NT AXP
  #SQX_HOSTOS_ATARI         ; Atari
  #SQX_HOSTOS_VAX_VMS       ; VAX VMS
  #SQX_HOSTOS_AMIGA         ; Amiga
  #SQX_HOSTOS_NEXT          ; Next
  #SQX_HOSTOS_LINUX         ; Linux
  #SQX_HOSTOS_CPM           ; CPM
  #SQX_HOSTOS_ZSYS          ; ZSYS
  #SQX_HOSTOS_VMCMS         ; VMCMS
  #SQX_HOSTOS_BEOS          ; BeOS
  #SQX_HOSTOS_UNKNOWN       ; Unknown
  #SQX_HOSTOS_OS2_HPFS      ; OS/2-HPFS
  #SQX_HOSTOS_WIN32_FAT32   ; Win32 (FAT32)
  #SQX_HOSTOS_WINNT_NTFS    ; Windows NT (NTFS)
  #SQX_HOSTOS_WINNTAXP_NTFS ; Windows NT AXP (NTFS)
  #SQX_HOSTOS_MVS           ; OS/390, Z/OS
  #SQX_HOSTOS_VSE           ; VSE
  #SQX_HOSTOS_ARCORN_RISC   ; Acorn Risc
  #SQX_HOSTOS_MVS_ALT       ; MVS
EndEnumeration
Enumeration 0         ; SQX_METHOD
  #SQX_METHOD_STORED  ; Stored (no compression)
  #SQX_METHOD_NORMAL  ; Compressed, normal compression (LZH)
  #SQX_METHOD_GOOD    ; Compressed, good compression (LZH)
  #SQX_METHOD_HIGH    ; Compressed, high compression (LZH)
  #SQX_METHOD_BEST    ; Compressed, best compression (LZH)
  #SQX_METHOD_AUDIO   ; Compressed, audio (WAV, PCM) compression
  #SQX_METHOD_TEXT    ; Compressed, text compression (PPMD)
  #SQX_METHOD_ULTRA   ; Compressed, ultra compression (LZ77 & RC)
EndEnumeration
Enumeration 0         ; SQX_RECOVERYDATA
  #SQX_RECOVERYDATA_NONE  ; No recovery data are added
  #SQX_RECOVERYDATA_1     ; 1% recovery data are added
  #SQX_RECOVERYDATA_2     ; 2% recovery data are added
  #SQX_RECOVERYDATA_3     ; 3% recovery data are added
  #SQX_RECOVERYDATA_4     ; 4% recovery data are added
  #SQX_RECOVERYDATA_5     ; 5% recovery data are added
EndEnumeration
Enumeration 1         ; SQX_SIGNAL
  #SQX_SIGNAL_COMPRESS            ; Total size in bytes of the data to be compressed
  ; Action: Compressing
  #SQX_SIGNAL_UNCOMPRESS          ; Total size in bytes of the data to be extracted
  ; Action: Extracting
  #SQX_SIGNAL_DELETE              ; Number of files beeing to be deleted
  ; Action: Deleting
  #SQX_SIGNAL_TEMP_ARC_COPY       ; Total size of bytes to be copied
  ; Action: Copying temporary archive
  #SQX_SIGNAL_CREATE_AV_SIG       ; Total size of the archive to be signed
  ; Action: Creating digital signature
  #SQX_SIGNAL_TEST_AV_SIG         ; Total size of the archive to be tested
  ; Action: Testing digital signature
  #SQX_SIGNAL_ADD_MV_UNCOMPRESS   ; Size of the current volume
  ; Action: Extracting multivolume
  #SQX_SIGNAL_CREATE_RDATA        ; Total size of the archive
  ; Action: Creating recovery data
  #SQX_SIGNAL_REPAIR_ARCHIVE      ; Total size of the archive
  ; Action: Repairing archive
  #SQX_SIGNAL_STRIP_RDATA         ; Total size of the archive
  ; Action: Stripping recovery data
  #SQX_SIGNAL_TEST_ARCHIVE        ; Total size of the archive
  ; Action: Testing archive
  #SQX_SIGNAL_CREATE_SFX_ARCHIVE  ; Total size of the archive
  ; Action: Creating a sfx from an existing archive
  #SQX_SIGNAL_ADD_MV_TEST         ; Size of the current volume
  ; Action: Testing multivolume
  #SQX_SIGNAL_EX_TEST_ARCHIVE     ; Total size of the archive to be tested
  ; Action: Extended testing
  #SQX_SIGNAL_ADD_MV_EX_TEST      ; Size of the current volume
  ; Action: Extended testing multivolume
EndEnumeration
Enumeration 0         ; SQX_VOLUMESIZE
  #SQX_VOLUMESIZE_NONE    ; No multivolume archive is created
  #SQX_VOLUMESIZE_360     ; A multivolume archive with a volume size of 360 KB is created
  #SQX_VOLUMESIZE_720     ; A multivolume archive with a volume size of 720 KB is created
  #SQX_VOLUMESIZE_1200    ; A multivolume archive with a volume size of 1.20 MB is created
  #SQX_VOLUMESIZE_1400    ; A multivolume archive with a volume size of 1.44 MB is created
  #SQX_VOLUMESIZE_2000    ; A multivolume archive with a volume size of 2 MB is created
  #SQX_VOLUMESIZE_5000    ; A multivolume archive with a volume size of 5 MB is created
  #SQX_VOLUMESIZE_10000   ; A multivolume archive with a volume size of 10 MB is created
  #SQX_VOLUMESIZE_30000   ; A multivolume archive with a volume size of 30 MB is created
  #SQX_VOLUMESIZE_ZIP100  ; A multivolume archive with a volume size of 100 MB is created
  #SQX_VOLUMESIZE_LS120   ; A multivolume archive with a volume size of 120 MB is created
  #SQX_VOLUMESIZE_ZIP250  ; A multivolume archive with a volume size of 250 MB is created
  #SQX_VOLUMESIZE_CDR650  ; A multivolume archive with a volume size of 650 MB is created
  #SQX_VOLUMESIZE_CDR700  ; A multivolume archive with a volume size of 700 MB is created
EndEnumeration
;}
;{ Structures
Structure SQX_AVINFO
; structure is a member of the SQX_ARCINFO structure and contains information about the AV envelope
  fAVInfoPresent.l
  szAV_ID.s{#MAX_PATH}
  ftCreationTime.q
EndStructure
Structure SQX_ARCINFO
; is used to receive information about a certain SQX archive when listing it
  cbSize.l
  dwFileFormat.l
  dwArcerMajorVersion.l
  dwArcerMinorVersion.l
  dwDictionarySize.l
  fRecoveryData.l
  dwEncryption.l
  fSolid.l
  dwHostOS.l
  dwTotalFiles.l
  dwlCompressedSize.q
  dwlUncompressedSize.q
  iRatio.l
  fHeaderEncrypted.l
  fIsMultiVolume.l
  fArchiveComment.l
  fFileComments.l
  avInfo.SQX_AVINFO
EndStructure
Structure SQX_FILETIME
; structure is a member of the SQX_ARCNODE structure and contains extended time stamps
  fBlockPresent.l
  ftCreationTime.q
  ftLastAccessTime.q
  ftLastWriteTime.q
EndStructure
Structure SQX_ARCNODE
; structure is used to pass information about file properties to the caller when listing an archive. The caller should ignore this node if fTagged is set to FALSE
  pszFileName.s
  dwFileNameLen.l
  pszExtraName.s
  dwExtraNameLen.l
  dwFileNameType.l
  dwlSize.q
  dwlSizeOrig.q
  dwDosFileTime.l
  dwAttributes.l
  dwArcerVersion.l
  dwFileCRC.l
  dwHostOS.l
  dwMethod.l
  dwCommentLen.l
  pszComment.s
  fEncrypted.l
  fTagged.l
  dwMappedMethod.l
  dwExtendedError.l
  win32FileTime.SQX_FILETIME
EndStructure
Structure SQX_CALLBACKINFO
; structure is by SQX archiver to signal the caller that a certain command is executed or that a certain action needs user interaction, for example when a file is going to be overwritten or when SQX archiver needs a password to decrypt files
  dwCallbackType.l
  pszSourceFileName.s
  pszTargetFileName.s
  iProgress.l
  *pFindDataExist.WIN32_FIND_DATA
  *pFindDataReplace.WIN32_FIND_DATA
  szCryptKey.s{#MAX_PATH}
  szOldCryptKey.s{#MAX_PATH}
  szCryptFileName.s{#MAX_PATH}
  dwTotalSize.l
  dwDiskNum.l
  szNextDiskPath.s{#MAX_PATH}
  dwSignal.l
  dwlBlockSize.q
EndStructure
Structure SQX_FORCECOMP
; structure is a member of the SQX_COMPRESSOPTIONS structure. It is used to control the core compression settings
  dwCompRate.l
  fSolidFlag.l
  dwDictionarySize.l
  dwExeCompression.l
  dwTextCompression.l
  dwTextMemory.l
  dwTextOrder.l
  dwMultimediaCompression.l
  dwMultimediaChannels.l
  dwAudioCompression.l
  dwAudioChannels.l
  dwAudioChannelsWidth.l
  dwRgbCompression.l
  dwUltraMatchLink.l
EndStructure
Structure SQX_VERSIONINFO
; structure is a member of the SQX_SFXCOMMAND structure and contains optional information about version information for the self-extracting ar
  szLegalCopyright.s{40}
  szCompanyName.s{40}
  szFileDescription.s{40}
  szFileVersion.s{40}
  szProductName.s{40}
  szProductVersion.s{40}
EndStructure
Structure SQX_SFXCOMMAND
; structure is a member of the SQX_COMPRESSOPTIONS structure. It is used to control the settings of the SFX stubs provided with the SQX SDK
  fCreateSfx.l
  dwType.l
  dwSystem.l
  szHintTitle.s{256}
  szHintMsg.s{4096}
  dwHintBtn.l
  szInfoAboutMsg.s{256}
  szNormalFolder.s{#MAX_PATH}
  szNormalCmd.s{#MAX_PATH}
  fNormalOverwriteWOPrompt.l
  fNormalAutoExtract.l
  szInstallMsg.s{256}
  szInstallCmd.s{#MAX_PATH}
  szInstallWaitFor.s{#MAX_PATH}
  szIconFile.s{#MAX_PATH}
  szLanguageFile.s{#MAX_PATH}
  versionInfo.SQX_VERSIONINFO;
EndStructure
Structure SQX_COMPRESSOPTIONS
; structure is used to control several settings of SQX archiver when adding files to archives
  cbSize.l
  dwFileFormat.l
  compOptions.SQX_FORCECOMP
  sfxCommand.SQX_SFXCOMMAND
  dwRecoveryData.l
  fExternalRecoveryData.l
  pszMainComment.s
  dwEncryption.l
  fEncryptHeaders.l
  fAVSignature.l
  fAVSignatureExternal.l
  dwAVEnvelope.l
  szSignatureFile.s{#MAX_PATH}
  szPassword.s{#MAX_PATH}
  szPasswordHeader.s{#MAX_PATH}
  fRetainFolderStructure.l
  fRetainDrivePart.l
  szRelativePath.s{#MAX_PATH}
  szInputPath.s{#MAX_PATH}
  dwFileNames.l
  fStoreWin32FileTime.l
  fStoreACL.l
  fStoreStreams.l
  fAutoSaveComments.l
  fExtendedTest.l
  szTempDir.s{#MAX_PATH}
  dwlVolumeSize.q
  fAutoVolumeSize.l
  fCreateAlwaysNewArchive.l
  fResetArchiveAttribute.l
  dwLogType.l
EndStructure
Structure SQX_EXTRACTOPTIONS
; structure is used to control several settings of SQX archiver when extracting files from archives
  cbSize.l
  szPassword.s{#MAX_PATH}
  szPasswordHeader.s{#MAX_PATH}
  szTempDir.s{#MAX_PATH}
  szRelativePath.s{#MAX_PATH}
  szOutputPath.s{#MAX_PATH}
  fResetArchiveAttribute.l
  fOverwriteAlways.l
  fKeepBrokenFiles.l
  fCreateFolders.l
  fRestoreACLs.l
  fRestoreStreams.l
  fRestoreUnicodeNames.l
  fRestoreWin32FileTimes.l
  fRestoreDirectoryTimeStamps.l
  fAutoRestoreComments.l
  fSetZoneID.l
EndStructure
Structure SQX_ARCLISTNODE
; structure is used to pass information about file properties to the caller when listing an archive
  *pNext.SQX_ARCLISTNODE;
  *pArcNode.SQX_ARCNODE;
EndStructure
Structure SQX_ARCLIST
;  structure is used to pass information about file properties to the caller when listing an archive structure is used to pass information about file properties to the caller when listing an archive
  dwItemCount.l
  *pHead.SQX_ARCLISTNODE;
  *pTail.SQX_ARCLISTNODE;
EndStructure
;}
;{ Prototypes
Prototype.l SqxInitArchive(pszArchiveName.s, Callback.l, *pParam, phArchiver.l)
Prototype.l SqxDoneArchive(hArchive.l)
Prototype.l SqxInitFileList(hArchive.l)
Prototype.l SqxAppendFileList(hArchive.l, hFileMaskList.l, pszFileName.s)
Prototype.l SqxDoneFileList(hArchive.l, hFileMaskList.l)
Prototype.l SqxInitArcFileList(hArchive.l)
Prototype.l SqxDoneArcFileList(hArchive.l, *pList)
Prototype.l SqxListFiles(hArchive.l, hFileMaskList.l, *pArcFileList.l, pArchiveInfo.l)
Prototype.l SqxCompressFiles(hArchive.l, *pfnCallback, *pParam, hFileMaskList.l, *pCompressOptions)
Prototype.l SqxExtractFiles(hArchive.l, *pfnCallback, *pParam, hFileMaskList.l, *pExtractOptions)
Prototype.l SqxDeleteFiles(hArchive.l, *pfnCallback, *pParam, hFileMaskList.l)
Prototype.l SqxTestArchive(hArchive.l, *pfnCallback, *pParam)
Prototype.l SqxRepairArchive(hArchive.l, pszRepairedFile.s, *pGoodFileList, *pBadFileList)
Prototype.l SqxAddArchiveComment(hArchive.l, pszMainComment.s)
Prototype.l SqxGetArchiveComment(hArchive.l, pszMainComment.s, cchMainComment.l)
Prototype.l SqxAddFileComments(hArchive.l, hFileMaskList.l, pszComment.s)
Prototype.l SqxCreateFolder(hArchive.l,pszFolder.s)
;}
; Initfunction
Procedure Sqx_Init(DLLName.s = "")
  Protected Lib.l
  If DLLName = ""
    CompilerIf #PB_Compiler_Unicode
      DLLName = "sqx20u.dll"
    CompilerElse
      DLLName = "sqx20.dll"
    CompilerEndIf
  EndIf

  Lib = OpenLibrary(#PB_Any, DLLName)
  If Lib <> 0
    Global SqxInitArchive.SqxInitArchive             = GetFunction(Lib, "SqxInitArchive")
    Global SqxDoneArchive.SqxDoneArchive             = GetFunction(Lib, "SqxDoneArchive")
    Global SqxInitFileList.SqxInitFileList           = GetFunction(Lib, "SqxInitFileList")
    Global SqxAppendFileList.SqxAppendFileList       = GetFunction(Lib, "SqxAppendFileList")
    Global SqxDoneFileList.SqxDoneFileList           = GetFunction(Lib, "SqxDoneFileList")
    Global SqxInitArcFileList.SqxInitArcFileList     = GetFunction(Lib, "SqxInitArcFileList")
    Global SqxDoneArcFileList.SqxDoneArcFileList     = GetFunction(Lib, "SqxDoneArcFileList")
    Global SqxListFiles.SqxListFiles                 = GetFunction(Lib, "SqxListFiles")
    Global SqxCompressFiles.SqxCompressFiles         = GetFunction(Lib, "SqxCompressFiles")
    Global SqxExtractFiles.SqxExtractFiles           = GetFunction(Lib, "SqxExtractFiles")
    Global SqxDeleteFiles.SqxDeleteFiles             = GetFunction(Lib, "SqxDeleteFiles")
    Global SqxTestArchive.SqxTestArchive             = GetFunction(Lib, "SqxTestArchive")
    Global SqxRepairArchive.SqxRepairArchive         = GetFunction(Lib, "SqxRepairArchive")
    Global SqxAddArchiveComment.SqxAddArchiveComment = GetFunction(Lib, "SqxAddArchiveComment")
    Global SqxGetArchiveComment.SqxGetArchiveComment = GetFunction(Lib, "SqxGetArchiveComment")
    Global SqxAddFileComments.SqxAddFileComments     = GetFunction(Lib, "SqxAddFileComments")
    Global SqxCreateFolder.SqxCreateFolder           = GetFunction(Lib, "SqxCreateFolder")
  EndIf

  ProcedureReturn Lib
EndProcedure
Wer Fehler findet, bitte melden!
Zuletzt geändert von ts-soft am 29.01.2007 10:42, insgesamt 2-mal geändert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Und hier noch ein kurzes Beispiel:

Code: Alles auswählen

XIncludeFile "SQX_Include.pbi"

Define.l hArchive, hFileMaskList, error
Define.SQX_COMPRESSOPTIONS compressOptions

If Sqx_Init()
  error = SqxInitArchive("C:\test.sqx", 0, 0, @hArchive.l)
  If Not Error
    hFileMaskList = SqxInitArcFileList(hArchive)
    If hFileMaskList
      SqxAppendFileList(hArchive, hFileMaskList, "Gadget.pb")
      SqxAppendFileList(hArchive, hFileMaskList, "GadgetAdvanced.pb")
      SqxAppendFileList(hArchive, hFileMaskList, "GadgetSplitter.pb")

      ;Compress options
      compressOptions\cbSize = SizeOf(SQX_COMPRESSOPTIONS)
      ; Create SQX2 archive
      compressOptions\dwFileFormat = #SQX_FILEFORMAT_20
      ; Core compression options
      compressOptions\compOptions\dwCompRate = #SQX_COMPRATE_MAXIMIUM
      compressOptions\compOptions\dwDictionarySize = #SQX_DICTIONARY_4M
      compressOptions\compOptions\fSolidFlag = #True
      ; Extended compression options
      compressOptions\compOptions\dwExeCompression = #SQX_SPECIALCOMP_AUTOMATIC
      compressOptions\compOptions\dwRgbCompression = #SQX_SPECIALCOMP_AUTOMATIC
      compressOptions\compOptions\dwTextCompression = #SQX_SPECIALCOMP_AUTOMATIC
      compressOptions\compOptions\dwAudioCompression = #SQX_SPECIALCOMP_AUTOMATIC
      compressOptions\compOptions\dwMultimediaCompression = #SQX_SPECIALCOMP_AUTOMATIC
      ; Additional options
      compressOptions\fRetainFolderStructure = #True
      ; Source path for the files to be compressed
      compressOptions\szInputPath = #PB_Compiler_Home + "Examples\Sources\"

      error = SqxCompressFiles(hArchive, 0, 0, hFileMaskList, @compressOptions)
      If Not error
        SqxDoneArcFileList(hArchive, hFileMaskList)
      Else
        Debug error
      EndIf
    EndIf
    SqxDoneArchive(hArchive)
  Else
    Debug error
  EndIf
EndIf
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
DataMiner
Beiträge: 220
Registriert: 10.10.2004 18:56

Beitrag von DataMiner »

Code: Alles auswählen

If Not error 
        SqxDoneArcFileList(hArchive, hFileMaskList) 
      Else 
An der Stelle bekomme ich die nette Meldung: Line 36 - Invalid memory access.
__________________________________________
Weniger glauben - mehr wissen!
------------------------------------------------------
Proud beneficial owner of SpiderBasic, PureBasic 3.x, 4.x, 5.x and PureVisionXP
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

DataMiner hat geschrieben:Invalid memory access.
habe ich schon mit ts-soft bekaspert. Da fehlt wahrscheinlich ein Callback.
Für das Dekomprimieren hat Inf0Byt3 im englischen Forum bereits eine
Lösung gepostet.

http://www.purebasic.fr/english/viewtopic.php?t=25634

Für Komprimieren allerdings kenne ich keine Lösung des Problems.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
DataMiner
Beiträge: 220
Registriert: 10.10.2004 18:56

Beitrag von DataMiner »

Danke für die schnelle Antwort.
:allright:
__________________________________________
Weniger glauben - mehr wissen!
------------------------------------------------------
Proud beneficial owner of SpiderBasic, PureBasic 3.x, 4.x, 5.x and PureVisionXP
Benutzeravatar
DataMiner
Beiträge: 220
Registriert: 10.10.2004 18:56

Beitrag von DataMiner »

******* EDIT 04.05.2007 *******
Code geändert. Es muß eine Reihenfolge eingehalten werden, sonst werden die Parameter ignoriert:
1. Compress-Options
2. Add Files
3. Compress Files
****************************

Gut. Ich hätte da ein paar kleine Änderungen ...
1. Erweiterung der "SQX_Include.pbi":

Code: Alles auswählen

Enumeration 0         ; callback return value for SQX_CALLBACK_FILENAME and SQX_CALLBACK_PROGRESS
  #SQX_PROGRESS_CANCEL   ; The current operation will be cancelled.
  #SQX_PROGRESS_OK   ; Going on with the current operation.
EndEnumeration
Enumeration 0        ; callback return value for SQX_CALLBACK_REPLACE
  #SQX_REPLACE_OVERWRITE   ; The specified file will be overwritten.
  #SQX_REPLACE_SKIP   ; The specified file will not be overwritten.
  #SQX_REPLACE_CANCEL   ; The current operation will be cancelled.
EndEnumeration
Enumeration 0        ; callback return value for SQX_CALLBACK_PASSWORD and SQX_CALLBACK_PASSWORD_HEADER
  #SQX_PASSWORD_CANCEL   ; The current operation will be cancelled.
  #SQX_PASSWORD_OK   ; Going on with the new password.
EndEnumeration
Enumeration 1        ; callback return value for SQX_CALLBACK_SKIP
  #SQX_SKIPFILE_SKIP   ; The specified file will be skipped.
  #SQX_SKIPFILE_CANCEL   ; The current operation will be cancelled.
EndEnumeration
Enumeration 0        ; callback return value for SQX_CALLBACK_NEXTDISK
  #SQX_NEXTDISK_CANCEL   ; The current operation will be cancelled.
  #SQX_NEXTDISK_OK   ; Going on with the new folder to the next volume.
EndEnumeration
Dim errorstr$(74)
Restore errorstr
For i=0 To 74: Read errorstr$(i):Next

DataSection
errorstr:
Data.s "No error.","Unknown error in the last archive operation.","The system cannot find the file specified.","The system cannot find the path specified.","The system cannot open the file.","Access is denied.","The file handle is invalid.","The disk is full.","Not enough memory is available to complete this operation.","Cannot access temp folder during a delete or update operation on a solid archive.","Not enough space on drive for the temporary folder.","Cancelled by user.","Invalid archive handle.","Could not find the selected language file for self-extracting archives.","The archive contains at least one unknown alternate data stream.","Bad alternate stream CRC. Archive is probably corrupted.","This method of compression is not supported by the archiver.","Archive is encrypted with a password.","Bad CRC. Archive is probably corrupted.","Could not create file or folder.","Bad archive file format.","Function is not supported.","Function is not supported for this archive type.","Could not create folder in archive. It already exists a folder with this name.","Could not create folder in archive. The folder name contains invalid characters.","Could Not create file in archive. The file name contains invalid characters.","The archive file contains too many damaged file blocks And cannot be repaired.","It seems that The archive has no errors, but The recovery Data does Not match The archive. Maybe this archive was edited by a program that Could Not identify The recovery Data.","The recovery Data of The archive file is damaged, too. this archive file cannot be repaired.","The archive contains recovery Data that cannot be used With this Version of our software.","The recovery Data does Not match The archive. It seems that this archive was edited by a program that Could Not identify The recovery Data.","It seems that The archive does Not contain any recovery Data.","Cannot modify locked archive.","It is Not possible To add files To a multi-volume archive.","It is Not possible To delete files from a multi-volume archive.","This file is part of a multi-volume archive. The first volume of The archive is needed To open It. Please Select The first volume To open The archive.","The last volume of The archive Could Not be found.","cannot create more than 999 volumes.","this system lacks The support For The SFX Type you have selected.","Read access To alternate Data Stream was denied. Only The file itself is being compressed.","Could Not write alternate Data stream (e.g. file comments).","Could Not Read security Attributes. Only The file itself is being compressed.","Could Not write security Attributes.","this archive contains Data created With a higher Version of this software.","cannot copy an archive To itself. Please choose a different target name.","The volume Size cannot be smaller than 130 kByte.","this archive can Only be extracted. It is Not possible To add files.","The external recovery Data don't seem to belong to the selected archive.","The parameter is incorrect.","The passwords for the archive files and archive directory are identical. Please enter different passwords.","You cannot encrypt the archive directory without encrypting the files. Please enter one password for the archive directory and another password for the files.","Please enter a password to encrypt the archive directory.","Could not find/access the private key required to encrypt the archive. Please make sure that the software can access all the keys in question.","Could not find the key required to create a digital signature. Please make sure that the software can access the authentication key.","Could not find/access the external key necessary to sign the archive. Please make sure that the software can access all keys in question.","The key you have selected To create digital signatures is invalid.","This Version of The software cannot use The existing key To create digital signatures.","This Version of The software cannot process The digital Signature embedded within The archive.","The archive contains an invalid digital Signature. The archive is either damaged Or it has been manipulated.","Unexpected error in an encryption function. Please contact our product support.","an option you selected requires NTFS.","an option you selected requires Windows NT.","an option you selected requires Windows 2000.","an option you selected requires Windows XP.","an option you selected requires Windows XP SP1.","an option you selected requires Windows XP SP2.","an option you selected requires Longhorn.","The selected SFX stub does Not contain resources. Can Not modify SFX stub.","Could Not determine The format of The selected icon file.","The selected SFX stub does Not contain icons With valid sizes. Can Not modify SFX stub.","The format of The selected SFX stub is unknown.","The extended archive test requires The source Path.","extended archive test: The source on hard disk is different from The file in The archive.","you cannot add To The archive comments longer than 4096 chars. Please shorten your comments And try again.","cannot create a self-extracting archive from a multi-volume archive."
EndDataSection
2. Callback erweitern und anstelle von SqxInitArcFileList(hArchive) SqxInitFileList(hArchive) benutzen:

Code: Alles auswählen

XIncludeFile "SQX_Include.pbi"
Define.l hArchive, hFileMaskList, error
Define.SQX_COMPRESSOPTIONS compressOptions
Define.SQX_EXTRACTOPTIONS decompressOptions

Procedure SqxCallback(pParam.l,*pCallbackInfo.SQX_CALLBACKINFO)
  Protected ReturnVal.l
  Select *pCallbackInfo\dwCallbackType
    Case #SQX_CALLBACK_FILENAME
      Debug "SQX archiver is about to compress, extract, delete or test a file."
      Debug *pCallbackInfo\pszTargetFileName
      ReturnVal = #SQX_PROGRESS_OK ; or #SQX_PROGRESS_CANCEL
    Case #SQX_CALLBACK_PROGRESS
      Debug "SQX archiver signals the progress of a file beeing compressed, extracted or tested."
      Debug *pCallbackInfo\iProgress
      Debug *pCallbackInfo\dwlBlockSize
      ReturnVal = #SQX_PROGRESS_OK ; or #SQX_PROGRESS_CANCEL
    Case #SQX_CALLBACK_REPLACE
      Debug "SQX archiver is about to overwrite either a file on disk (when extracting) or a file in the archive (when compressing)."
      ;Debug *pCallbackInfo\*pFindDataExist
      ;Debug *pCallbackInfo\*pFindDataReplace
      ReturnVal = #SQX_REPLACE_OVERWRITE; or #SQX_REPLACE_SKIP or #SQX_REPLACE_CANCEL
    Case #SQX_CALLBACK_PASSWORD
      Debug "SQX archiver needs a password to decrypt a file."
      Debug *pCallbackInfo\szCryptKey
      Debug *pCallbackInfo\szOldCryptKey
      ReturnVal = #SQX_PASSWORD_CANCEL; or #SQX_PASSWORD_OK
    Case #SQX_CALLBACK_PASSWORD_HEADER
      Debug "SQX archiver needs a password to decrypt the archive directory."
      Debug *pCallbackInfo\szCryptKey
      Debug *pCallbackInfo\szOldCryptKey
      ReturnVal = #SQX_PASSWORD_CANCEL; or #SQX_PASSWORD_OK
    Case #SQX_CALLBACK_SKIP
      Debug "SQX archiver cannot open a file because it is locked by another application."
      Debug *pCallbackInfo\pszSourceFileName
      ReturnVal = #SQX_SKIPFILE_SKIP; or #SQX_SKIPFILE_CANCEL
    Case #SQX_CALLBACK_NEXTDISK
      Debug "SQX archiver needs the next volume when extracting or a new disk when compressing."
      Debug *pCallbackInfo\dwTotalSize
      Debug *pCallbackInfo\dwDiskNum
      Debug *pCallbackInfo\szNextDiskPath
      ReturnVal = #SQX_NEXTDISK_OK ; or #SQX_NEXTDISK_CANCEL
    Case #SQX_CALLBACK_SIGNAL
      Debug "SQX archiver signals the next command."
      Select *pCallbackInfo\dwSignal
        Case #SQX_SIGNAL_COMPRESS
          Debug "Compressing"
        Case #SQX_SIGNAL_UNCOMPRESS
          Debug "Extracting"
        Case #SQX_SIGNAL_DELETE
          Debug "Deleting"
        Case #SQX_SIGNAL_TEMP_ARC_COPY
          Debug "Copying temporary archive"
        Case #SQX_SIGNAL_CREATE_AV_SIG
          Debug "Creating digital signature"
        Case #SQX_SIGNAL_TEST_AV_SIG
          Debug "Testing digital signature"
        Case #SQX_SIGNAL_ADD_MV_UNCOMPRESS
          Debug "Extracting multivolume"
        Case #SQX_SIGNAL_CREATE_RDATA
          Debug "Creating recovery data"
        Case #SQX_SIGNAL_REPAIR_ARCHIVE
          Debug "Repairing archive"
        Case #SQX_SIGNAL_STRIP_RDATA
          Debug "Stripping recovery data"
        Case #SQX_SIGNAL_TEST_ARCHIVE
          Debug "Testing archive"
        Case #SQX_SIGNAL_CREATE_SFX_ARCHIVE
          Debug "Creating a sfx from an existing archive"
        Case #SQX_SIGNAL_ADD_MV_TEST
          Debug "Testing multivolume"
        Case #SQX_SIGNAL_EX_TEST_ARCHIVE
          Debug "Extended testing"
        Case #SQX_SIGNAL_ADD_MV_EX_TEST
          Debug "Extended testing multivolume"
      EndSelect
      Debug *pCallbackInfo\dwlBlockSize
  EndSelect
  
  ProcedureReturn ReturnVal
  
EndProcedure
If Sqx_Init()
  ;- CREATE ARCHIVE
  error = SqxInitArchive("C:\temp\mysqx.sqx", @SqxCallback(), 0, @hArchive.l) ; <--- CHANGE!
  If Not error
    
    hFileMaskList = SqxInitFileList(hArchive)
    
    If hFileMaskList
      ;- OPTIONS FIRST!
      ;Compress options
      compressOptions\cbSize = SizeOf(SQX_COMPRESSOPTIONS)
      ; Create SQX2 archive
      compressOptions\dwFileFormat = #SQX_FILEFORMAT_20
      ; Multivolume option
      compressOptions\dwlVolumeSize = #SQX_VOLUMESIZE_NONE
      ; recovery data options
      compressOptions\dwRecoveryData = #SQX_RECOVERYDATA_1
      compressOptions\fExternalRecoveryData = #False
      ; comment options
      compressOptions\pszMainComment = "SQX-Test"
      ; encryption options
      compressOptions\dwEncryption = #SQX_ENCRYPTION_NONE
      compressOptions\fEncryptHeaders = #False
      compressOptions\szPassword = "PureBasic"
      compressOptions\szPasswordHeader = "feel the PURE power"
      decompressOptions\szPassword = "PureBasic"
      decompressOptions\szPasswordHeader = "feel the Pure power"
      ; Core compression options
      compressOptions\compOptions\dwCompRate = #SQX_COMPRATE_NORMAL
      compressOptions\compOptions\dwDictionarySize = #SQX_DICTIONARY_32M
      compressOptions\compOptions\fSolidFlag = #True
      ; Extended compression options
      compressOptions\compOptions\dwExeCompression = #SQX_SPECIALCOMP_AUTOMATIC
      compressOptions\compOptions\dwRgbCompression = #SQX_SPECIALCOMP_AUTOMATIC
      compressOptions\compOptions\dwTextCompression = #SQX_SPECIALCOMP_AUTOMATIC
      compressOptions\compOptions\dwAudioCompression = #SQX_SPECIALCOMP_AUTOMATIC
      compressOptions\compOptions\dwMultimediaCompression = #SQX_SPECIALCOMP_AUTOMATIC
      ; Additional options
      compressOptions\fRetainFolderStructure = #True
      ; Source path for the files to be compressed. A null-terminated string that specifies a folder you want to remove from all file names beeing compressed. If you set szInputPath, you must remove the input path!
      ;compressOptions\szInputPath = "C:\"
      ;- ADD FILES TO LIST
      SqxAppendFileList(hArchive, hFileMaskList, "C:\Videos\Video 1.mpg") ; <--- CHANGE!
      ; ...
      ; or use a LL
      ;
      ;- COMPRESS FILES
      error = SqxCompressFiles(hArchive, @SqxCallback(), 0, hFileMaskList, @compressOptions)
      ;- RELEASE LIST
      SqxDoneFileList(hArchive, hFileMaskList)
      ;- RELEASE ARCHIV
      SqxDoneArchive(hArchive)
    Else
      Debug errorstr$(error)
    EndIf
  Else
    Debug errorstr$(error)
  EndIf
Else
  Debug errorstr$(error)
EndIf
Zuletzt geändert von DataMiner am 06.05.2007 16:25, insgesamt 1-mal geändert.
__________________________________________
Weniger glauben - mehr wissen!
------------------------------------------------------
Proud beneficial owner of SpiderBasic, PureBasic 3.x, 4.x, 5.x and PureVisionXP
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

:allright: danke für Deine Hilfe
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten