DECLARE SHORT addZIP_IncludeDirectoryEntries IN AZIP32 SHORT @ nInclDir
DECLARE SHORT addZIP_IncludeEmptyDirectoryEntries IN AZIP32 SHORT @ nInclEDir
DECLARE SHORT addZIP_Update IN AZIP32 SHORT @ nUpdate
DECLARE SHORT addZIP_Update IN AZIP32 SHORT @ nUpdate
DECLARE SHORT addZIP IN AZIP32
DECLARE SHORT addZIP_Register IN AZIP32 String @ RegName, Integer @ RegNum
DECLARE SHORT addZIP_Encrypt IN AZIP32 STRING @ sPassw
addZIP_Initialise()
addZIP_SetParentWindowHandle(HWND)
* 如果使用的是本动态链接库的注册版本,则可以添加下面一行
addZIP_Register("RegistrationName", RegistrationNumber)
* 其作用是在压缩文件中使用密码保护
* 如果没有指定压缩文件名,则返回0(没有文件被压缩)
IF Params < 2
RETURN 0
ENDIF
ENDIF
* 如果没有指定被压缩文件名,则响铃并返回0(没有文件被压缩)
IF Params < 3
?? CHR(7)
MESSAGEBOX(’缺少操作参数!’,0, ’AZip 警告!’)
RETURN 0
ENDIF
* 如果指定了文件压缩参数,按照参数进行压缩选择
IF Params > 3
ZIPparams = ALLT(ZIPparams)
PRIVATE LastPos, PASSWORD, nCurPos
LastPos = LEN(ZIPparams) + 1
* 检查是否存在压缩密码
nCurPos = ATC(’S’, ZIPparams)
IF nCurPos > 0
cPassWord = SUBSTR(ZIPparams, nCurPos+1)
addZIP_Encrypt(cPassWord)
ZIPparams = LEFT(ZIPparams, nCurPos -1)
ENDIF
* 检查是否保存目录信息
nCurPos = ATC(’P’, ZIPparams)
IF nCurPos > 0
addZIP_Recurse(1)
addZIP_IncludeDirectoryEntries(1)
ENDIF
* 检查文件压缩的程度
nCurPos = ATC(’E’, ZIPparams)
IF nCurPos > 0
PRIVATE cCompLevel, nCompLevel
cCompLevel = SUBSTR(ZIPparams, nCurPos + 1, 1)
DO CASE
* 最大程度压缩
CASE cCompLevel = ’X’
nCompLevel = 3
* 最小程度压缩
CASE cCompLevel = ’S’ && min compression
nCompLevel = 1
* 没有压缩
CASE cCompLevel = ’0’ && no compression
nCompLevel = 0
* 正常压缩
OTHERWISE && normal/default compression
nCompLevel = 2