一个使用URLDownloadToFile函数和IBindStatusCallback接口编写的文件下载类,类名称为URLDownFile。在复制以下代码之前,朋友们需要先先下载Edanmo编写的一个名为olelib.tlb的类型库文件,类的具体代码如下:

Option Explicit

Implements IBindStatusCallback
Public Event OnProgress(ByVal lMax As Long, ByVal lProgress As Long, ByVal lStatusCode As BINDSTATUS)

Public Function DownloadFile(ByVal strURL As String, ByVal strFileName As String) As Boolean
    Dim lResult As Long
    lResult = olelib.URLDownloadToFile(Nothing, strURL, strFileName, 0, Me)
    DownloadFile = (lResult = 0)
End Function
Private Sub IBindStatusCallback_OnProgress(ByVal lProgress As Long, ByVal lMax As Long, ByVal lStatusCode As BINDSTATUS, ByVal szStatusText As Long)
    On Error Resume Next
    If lMax > 0 Then
        RaiseEvent OnProgress(lMax, lProgress, lStatusCode)
    End If
End Sub
Private Sub IBindStatusCallback_OnStartBinding(ByVal dwReserved As Long, ByVal pib As IBinding)
End Sub
Private Sub IBindStatusCallback_OnStopBinding(ByVal hresult As Long, ByVal szError As Long)
End Sub
Private Sub IBindStatusCallback_GetBindInfo(grfBINDF As olelib.BINDF, pbindinfo As BINDINFO)
End Sub
Private Function IBindStatusCallback_GetPriority() As Long
End Function
Private Sub IBindStatusCallback_OnDataAvailable(ByVal grfBSCF As BSCF, ByVal dwSize As Long, pformatetc As FORMATETC, pStgmed As STGMEDIUM)
End Sub
Private Sub IBindStatusCallback_OnLowResource(ByVal reserved As Long)
End Sub
Private Sub IBindStatusCallback_OnObjectAvailable(riid As UUID, ByVal pUnk As IUnknown)
End Sub

调用方法,如果要得到进度事件,则可以在Form或Class里写以下语句:

Dim WithEvents objUrlDownFile As URLDownFile
Private Sub Form_Load()
    Set objUrlDownFile = New URLDownFile
    objUrlDownFile.DownloadFile "http://img8.ph.126.net/9qc6wHM5AbOol44iBNIINw==/1297036692700510608.jpg", "c:/temp2.jpg"
End Sub

Private Sub objUrlDownFile_OnProgress(ByVal lMax As Long, ByVal lProgress As Long, ByVal lStatusCode As olelib.BINDSTATUS)
    Debug.Print lMax, lProgress, lStatusCode
End Sub

如果只是想实现文件下载,则可以使用以下语句:

Sub main()
    Dim objUrlDownFile As New URLDownFile
    objUrlDownFile.DownloadFile "http://img8.ph.126.net/9qc6wHM5AbOol44iBNIINw==/1297036692700510608.jpg", "c:/temp2.jpg"
End Sub
摘自:一个使用URLDownloadToFile实现文件下载的类

相关文章参考:

※VB FTP操作类(可上传、下载、创建文件夹等等)

※VB 写下载者代码

※【引用】URLDownloadToFile_VB下载文件!

※vb一个使用URLDownloadToFile实现文件下载的类※

※VB 迅雷下载地址解密函数※

更多精彩>>>

vb一个使用URLDownloadToFile实现文件下载的类相关推荐

  1. php下载apk文件源码下载,PHP_php下载文件源代码(强制任意文件格式下载),一个简单的php文件下载源代码 - phpStudy...

    php下载文件源代码(强制任意文件格式下载) 一个简单的php文件下载源代码,虽不支持断点续传等,但是可以满足一些常用的需求了.php下载文件其实用一个a标签就能实现,比如 magento-1.8.1 ...

  2. java downloadfile_FileDownload.java:文件下载工具类

    FileDownload.java:文件下载工具类 2017-04-25·Mr.Xia 4489 次浏览 文件下载功能的工具类 JavaWeb工具类目录 [http://baike.xsoftlab. ...

  3. 一个阴历阳历互相转化的类(c#源码)

    最近郁闷地发现网上现有的相当一部分万年历上干支纪年的算法都是错误的.因为干支纪年是针对阴历而言的,而生肖属相又跟地支对应,所以元旦和春节之间那段时间在干支纪年法中应该归上一年,以阳历2007年2月9日 ...

  4. Python中的元编程:一个关于修饰器和元类的简单教程

    作者 | Saurabh Kukade 译者 | 刘畅 出品 | AI科技大本营(ID:rgznai100) 最近,作者遇到一个非常有趣的概念,它就是用 Python 进行元编程.我想在本文中分享我对 ...

  5. 一个java的DES加解密类转换成C#

    原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util;import java.security.*; //im ...

  6. 一个好用的ODBC数据库类CMYODBC

    一个好用的ODBC数据库类CMYODBC 一.引言 感觉MFC的CRecordset类不是很好用,因为我们要想使用的话必须为每个查询从CRecordset类派生出一个新类,或者进行动态数据交换.在VC ...

  7. java图片缩放工具类,一个JAVA图形缩放处置工具类

    一个JAVA图形缩放处理工具类 调用的例子 import java.io.FileOutputStream; import java.io.IOException; import javax.imag ...

  8. 编写代码,实现一个栈(Stack)的类。

    编写代码,实现一个栈(Stack)的类. 栈是只能在一端插入和删除数据的序列.它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被 ...

  9. 基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil

    基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil,把日常能用到的各种CRUD都进行了简化封装,让普通程序员只需关注业务即可,因为非常简单,故直接贴源代码,大家若需使用可以直 ...

最新文章

  1. IBM会话设置和覆盖规则
  2. selector与layer-list 单边框效果
  3. DbHelper数据操作类,DbProviderFactories
  4. python 字典 get(),items(),iteritems()方法
  5. mixin network_基于Mixin Network的Go语言比特币开发教程 : 用 Mixin Messenger 机器人接受和发送比特币...
  6. redhat9.0配置apache 出现乱码
  7. deepin20系统选择手动安装盘_深度系统Deepin 20最新正式版发布:全面升级
  8. wpf程序启动时停止工作,事件管理器报错kernelbase.dll
  9. 浏览器自动打开html怎么办,浏览器自动弹出网页怎么处理?开机自动弹出垃圾网页如何解决?...
  10. 关于JlinkV8在SEGGSE-JLINK驱动V6.0以上版本连接调试不了的解决方法
  11. jenkins k8s 动态增减 jenkins-salve (2) 实现 slave 节点动态构建
  12. 【不正经科普】一文读懂“区块链”
  13. 高通WLAN框架学习(27)-- Types of regulatory 和WCNSS_qcom_cfg.ini配置参数
  14. html文档主体的根标签,HTML详细介绍(基础标签篇)
  15. opencv python 调用网络摄像头 (局域网)
  16. 项目感受|总结|献给怀揣着梦想来到兄弟连学习的兄弟姐妹们
  17. 新代系统反向间隙参数_新代SYNTECCNC系统维修
  18. 安装itunes时提示不能删除旧版本的apple应用程序支持
  19. Activity详解—— Activity基本用法
  20. NLP.TM[38] | 对话系统经典:检索式对话

热门文章

  1. 让 Cloud Native 飞,Pick 干货,看这里、看这里!
  2. 10193 条票房数据告诉你《流浪地球》领跑的电影档战果如何?
  3. 除了写代码,程序员还能做哪些副业呢?
  4. 当动物保护用上AI……
  5. Python 之父谈放弃 Python:我对核心成员们失望至极!
  6. 一文带你了解人工智能最新进展:AI从业者如何选择技术路线?
  7. SpringBoot项目瘦身指南,大厂如何面试看出你的水平
  8. c语言中区别一般变量,C语言中,为了区别一般的变量,符号常量必须用
  9. RocketMQ如何应对每天1500亿条的数据处理
  10. shell脚本文件中ll提示找不到命令