吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2484|回复: 4
收起左侧

[C&C++ 转载] 带进度下载文件

[复制链接]
htpidk 发表于 2020-5-25 12:30
本帖最后由 htpidk 于 2020-5-25 12:46 编辑

URLDownloadToFile这个函数以前最后一个参数一般都是传NULL,今天在网上看到可以传一个类似于COM对象的指针从而实现进度百分比,挺有意思的,参考网上代码,花了点时间改了下。

[C++] 纯文本查看 复制代码
#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.52pojie.cn/Tools/Packers/VMProtect_Professional_v2.13.8.rar"),_T("C:\\Users\\69020100204967\\Desktop\\pe.zip"),0,&ceshi);
        system("pause");
        return 0;
}


捕获.PNG [

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ppxiaobing 发表于 2020-5-25 13:28
可以  收藏一下。
玖公子 发表于 2020-5-25 13:47
厉害,我以为最后一个参数必须传0(NULL),还有这用处

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
万里绿枫叶 + 1 + 1 用心讨论,共获提升!

查看全部评分

15053902070 发表于 2020-5-25 14:32
夏橙M兮 发表于 2021-7-10 16:26
看不动系列。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 14:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表