Https多任务下载器例子

易语言 2020-08-17 17:43:40

Https多任务下载器例子

.子程序 HTTPS_下载文件, 整数型, 公开, 返回下载指针,0为失败
.参数 文件网址, 文本型, , URL
.参数 保存路径, 文本型, , 下载进度通过全局变量调用
.参数 下载完毕回调指针, 整数型, 可空, [参数一 整数型 URL文本指针][参数二 整数型 为0=下载成功]

' 删除文件 (取特定目录 (#临时文件目录))
网页_清除Cookie (文件网址)
删除临时文件 (#接口常量.IE临时文件)
返回 (下载 (文件网址, 保存路径, 下载完毕回调指针))

.子程序 HTTPS_暂停, 整数型, 公开, 同一个指针可以被暂停多次,如果暂停多次,就要暂停多次
.参数 下载指针, 整数型

返回 (线程_挂起 (下载指针))

.子程序 下载, 整数型, , 返回下载线程指针,0为失败
.参数 URL地址, 文本型
.参数 保存路径, 文本型
.参数 下载完毕回调指针, 整数型, 可空, [参数一 整数型 URL文本指针][参数二 整数型 为0=下载成功]
.局部变量 线程ID, 整数型

线程_启动多参_整数型 (&内部_下载, 取指针地址_文本型 (URL地址), 取指针地址_文本型 (保存路径), 下载完毕回调指针, , , 线程ID)

删除文件 (取特定目录 (#临时文件目录))
回调参数.QueryInterface = &QueryInterface
回调参数.AddRef = &AddRef
回调参数.Release = &Release
回调参数.OnStartBinding = &OnStartBinding
回调参数.GetPriority = &GetPriority
回调参数.OnLowResource = &OnLowResource
回调参数.OnProgress = &OnProgress
回调参数.OnStopBinding = &OnStopBinding
回调参数.GetBindInfo = &GetBindInfo
回调参数.OnDataAvailable = &OnDataAvailable
回调参数.OnObjectAvailable = &OnObjectAvailable
funcPtr = _取指针IBindStatusCallback (回调参数)
this = _取指针整数 (funcPtr)
URL地址_文本 = 指针_到文本 (URL地址)
保存路径_文本 = 指针_到文本 (保存路径)
下载_返回 = URLDownloadToFileA (0, URL地址_文本, 保存路径_文本, 0, this) ' 0=成功
.如果真 (下载完毕回调指针 ≠ 0)
程序_Call (下载完毕回调指针, 取指针地址_文本型 (URL地址_文本), 下载_返回)