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

 1  ' 一个使用URLDownloadToFile函数和IBindStatusCallback接口编写的文件下载类,类名称为URLDownFile。在复制以下代码之前,朋友们需要先先下载Edanmo编写的一个名为olelib.tlb的类型库文件,类的具体代码如下:
 2 
 3  Option   Explicit    
 4 
 5  Implements IBindStatusCallback   
 6  Public  Event OnProgress(ByVal lMax  As   Long , ByVal lProgress  As   Long , ByVal lStatusCode  As  BINDSTATUS)   
 7 
 8  Public   Function  DownloadFile(ByVal strURL  As   String , ByVal strFileName  As   String As   Boolean  
 9       Dim  lResult  As   Long  
10      lResult  =  olelib.URLDownloadToFile( Nothing , strURL, strFileName,  0 , Me)   
11      DownloadFile  =  (lResult  =   0 )   
12  End Function  
13  Private   Sub  IBindStatusCallback_OnProgress(ByVal lProgress  As   Long , ByVal lMax  As   Long , ByVal lStatusCode  As  BINDSTATUS, ByVal szStatusText  As   Long )   
14       On   Error   Resume   Next  
15       If  lMax  >   0   Then  
16          RaiseEvent OnProgress(lMax, lProgress, lStatusCode)   
17       End   If  
18  End Sub  
19  Private   Sub  IBindStatusCallback_OnStartBinding(ByVal dwReserved  As   Long , ByVal pib  As  IBinding)   
20  End Sub  
21  Private   Sub  IBindStatusCallback_OnStopBinding(ByVal hresult  As   Long , ByVal szError  As   Long )   
22  End Sub  
23  Private   Sub  IBindStatusCallback_GetBindInfo(grfBINDF  As  olelib.BINDF, pbindinfo  As  BINDINFO)   
24  End Sub  
25  Private   Function  IBindStatusCallback_GetPriority()  As   Long  
26  End Function  
27  Private   Sub  IBindStatusCallback_OnDataAvailable(ByVal grfBSCF  As  BSCF, ByVal dwSize  As   Long , pformatetc  As  FORMATETC, pStgmed  As  STGMEDIUM)   
28  End Sub  
29  Private   Sub  IBindStatusCallback_OnLowResource(ByVal reserved  As   Long )   
30  End Sub  
31  Private   Sub  IBindStatusCallback_OnObjectAvailable(riid  As  UUID, ByVal pUnk  As  IUnknown)  
32 
33 
34  调用方法,如果要得到进度事件,则可以在Form或Class里写以下语句:
35 
36  Dim  WithEvents objUrlDownFile  As  URLDownFile   
37  Private   Sub  Form_Load()   
38       Set  objUrlDownFile  =   New  URLDownFile   
39      objUrlDownFile.DownloadFile  " http://soft31.cn/softimages/soft1.gif " " c:\temp2.jpg "  
40  End Sub  
41 
42  Private   Sub  objUrlDownFile_OnProgress(ByVal lMax  As   Long , ByVal lProgress  As   Long , ByVal lStatusCode  As  olelib.BINDSTATUS)   
43      Debug.Print lMax, lProgress, lStatusCode   
44  End Sub  
45 
46 
47  如果只是想实现文件下载,则可以使用以下语句:
48 
49  Sub  main()    
50       Dim  objUrlDownFile  As   New  URLDownFile    
51       objUrlDownFile.DownloadFile  " http://soft31.cn/softimages/soft1.gif " " c:\temp2.jpg "    
52  End Sub    

 

转载于:https://www.cnblogs.com/xxaxx/archive/2009/12/29/1635332.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值