精易论坛
标题:
带进度下载文件
[打印本页]
作者:
同学麻烦让让
时间:
2021-5-15 13:55
标题:
带进度下载文件
在某网站也发布过,转到这里
URLDownloadToFile这个函数以前最后一个参数一般都是传NULL,今天在网上看到可以传一个类似于COM对象的指针从而实现进度百分比,挺有意思的,参考网上代码,花了点时间改了下。
#include "stdafx.h"
class xiazai:public IBindStatusCallback{
public:
xiazai(){};
virtual ~xiazai(){};
virtual ULONG __stdcall AddRef(){return E_NOTIMPL;};
virtual HRESULT __stdcall QueryInterface(REFIID riid,void **ppvObject){return E_NOTIMPL;};
virtual ULONG __stdcall Release(){return E_NOTIMPL;};
virtual HRESULT __stdcall GetBindInfo(DWORD *grfBINDF,BINDINFO *pbindinfo){return E_NOTIMPL;};
virtual HRESULT __stdcall GetPriority(long *pnPriority){return E_NOTIMPL;};
virtual HRESULT __stdcall OnDataAvailable(DWORD grfBSCF,DWORD dwSize,FORMATETC *pformatetc,STGMEDIUM *pstgmed){return E_NOTIMPL;};
virtual HRESULT __stdcall OnLowResource(DWORD reserved){return E_NOTIMPL;};
virtual HRESULT __stdcall OnObjectAvailable(REFIID riid,IUnknown *punk){return E_NOTIMPL;};
virtual HRESULT __stdcall OnProgress(unsigned long ulProgress,unsigned long ulProgressMax,unsigned long ulStatusCode,LPCWSTR szStatusText);
virtual HRESULT __stdcall OnStartBinding(DWORD dwReserved,IBinding *pib){return E_NOTIMPL;};
virtual HRESULT __stdcall OnStopBinding(HRESULT hresult,LPCWSTR szError){return E_NOTIMPL;};
};
HRESULT __stdcall xiazai::OnProgress(unsigned long ulProgress,unsigned long ulProgressMax,unsigned long ulStatusCode,LPCWSTR szStatusText){
if(ulProgress>0){
system("cls");
cout<<_T("文件总大小:")<<_T("\t")<<ulProgressMax<<_T("个字节")<<endl;
cout<<_T("当前下载:")<<_T("\t")<<ulProgress*100.0/ulProgressMax<<_T("%")<<endl;
//如果是UNICODE,需改成wcout
}
return S_OK;
}
int _tmain(int argc, _TCHAR* argv[])
{
xiazai ceshi;
URLDownloadToFile(NULL,_T("https://down.xxx.cn/Tools/Packers/VMProtect_Professional_v2.13.8.rar"),_T("C:\\Users\\69020100204967\\Desktop\\pe.zip"),0,&ceshi);
system("pause");
return 0;
}
作者:
喵帕斯和艾希
时间:
2021-5-15 14:22
作者:
Loserecall
时间:
2021-5-15 15:02
表示新手看不懂....
作者:
kuaizioffice
时间:
2021-12-21 13:04
作者:
qwqnoob666
时间:
2022-4-3 20:23
66666666666666666666666666666666666666666666666666666666666
作者:
4444b6666
时间:
2022-6-3 15:40
支持开源~!感谢分享
作者:
cpzjj
时间:
2022-7-24 07:33
你是来炫耀的还是来分享的
作者:
同学麻烦让让
时间:
2022-7-24 10:15
cpzjj 发表于 2022-7-24 07:33
你是来炫耀的还是来分享的
你是来装逼的还是来找骂的
欢迎光临 精易论坛 (https://125.confly.eu.org/)
Powered by Discuz! X3.4