当前位置: 首页 > news >正文

2017常用的网站新网站优化怎么做

2017常用的网站,新网站优化怎么做,中型企业查询系统,id wordpressURLDownloadToFile是urlmon.dll提供的网络操作API#xff0c;可以用于从指定的URL下载文件到本地#xff0c;在C中通过类很容易实现下载进度的获取#xff0c;今天需要在C语言中使用到这个函数#xff0c;这里记录一下使用方法。该函数的定义如下所示。HRESULT URLDownload…URLDownloadToFile是urlmon.dll提供的网络操作API可以用于从指定的URL下载文件到本地在C中通过类很容易实现下载进度的获取今天需要在C语言中使用到这个函数这里记录一下使用方法。该函数的定义如下所示。HRESULT URLDownloadToFile(LPUNKNOWN pCaller,LPCTSTR szURL,LPCTSTR szFileName,_Reserved_ DWORD dwReserved,LPBINDSTATUSCALLBACK lpfnCB);参数pCaller跟ActiveX和COM有关如有兴趣参考参数szURL为下载地址地址的协议必须要是IE浏览器所支持的参数szFileName为文件最终的保存路径例如C:/a.txt参数dwReserved保留始终为0参数lpfnCB是一个IBindStatusCallback指针。在urlmon.h头文件的定义中C语言风格的接口定义如下typedef struct IBindStatusCallbackVtbl{BEGIN_INTERFACEHRESULT ( STDMETHODCALLTYPE *QueryInterface )(__RPC__in IBindStatusCallback * This,/* [in] */ __RPC__in REFIID riid,/* [annotation][iid_is][out] */_COM_Outptr_ void **ppvObject);ULONG ( STDMETHODCALLTYPE *AddRef )(__RPC__in IBindStatusCallback * This);ULONG ( STDMETHODCALLTYPE *Release )(__RPC__in IBindStatusCallback * This);HRESULT ( STDMETHODCALLTYPE *OnStartBinding )(__RPC__in IBindStatusCallback * This,/* [in] */ DWORD dwReserved,/* [in] */ __RPC__in_opt IBinding *pib);HRESULT ( STDMETHODCALLTYPE *GetPriority )(__RPC__in IBindStatusCallback * This,/* [out] */ __RPC__out LONG *pnPriority);HRESULT ( STDMETHODCALLTYPE *OnLowResource )(__RPC__in IBindStatusCallback * This,/* [in] */ DWORD reserved);HRESULT ( STDMETHODCALLTYPE *OnProgress )(__RPC__in IBindStatusCallback * This,/* [in] */ ULONG ulProgress,/* [in] */ ULONG ulProgressMax,/* [in] */ ULONG ulStatusCode,/* [unique][in] */ __RPC__in_opt LPCWSTR szStatusText);HRESULT ( STDMETHODCALLTYPE *OnStopBinding )(__RPC__in IBindStatusCallback * This,/* [in] */ HRESULT hresult,/* [unique][in] */ __RPC__in_opt LPCWSTR szError);/* [local] */ HRESULT ( STDMETHODCALLTYPE *GetBindInfo )(IBindStatusCallback * This,/* [out] */ DWORD *grfBINDF,/* [unique][out][in] */ BINDINFO *pbindinfo);/* [local] */ HRESULT ( STDMETHODCALLTYPE *OnDataAvailable )(IBindStatusCallback * This,/* [in] */ DWORD grfBSCF,/* [in] */ DWORD dwSize,/* [in] */ FORMATETC *pformatetc,/* [in] */ STGMEDIUM *pstgmed);HRESULT ( STDMETHODCALLTYPE *OnObjectAvailable )(__RPC__in IBindStatusCallback * This,/* [in] */ __RPC__in REFIID riid,/* [iid_is][in] */ __RPC__in_opt IUnknown *punk);END_INTERFACE} IBindStatusCallbackVtbl;interface IBindStatusCallback{CONST_VTBL struct IBindStatusCallbackVtbl *lpVtbl;};这里的interface在C语言中的定义为struct IBindStatusCallback回调实际上就是一个结构体结构体只有一个字段IBindStatusCallbackVtbl *指针你需要做的就是对这个结构体内的IBindStatusCallbackVtbl 指针进行实例化。IBindStatusCallbackVtbl 结构中包含了一系列的函数指针也就是用于URLDownloadToFile下载时的回调函数。若要实现下载进度的获取只需要在OnProgress回调中处理即可。控制台示例代码#define _CRT_SECURE_NO_WARNINGS#include #include #include #pragma comment(lib,urlmon)HRESULT (STDMETHODCALLTYPE QueryInterface)(IBindStatusCallback* This,/* [in] */ REFIID riid,/* [iid_is][out] */ void** ppvObject){return E_NOTIMPL;}ULONG (STDMETHODCALLTYPE AddRef)(IBindStatusCallback* This){return E_NOTIMPL;}ULONG (STDMETHODCALLTYPE Release)(IBindStatusCallback* This){return E_NOTIMPL;}HRESULT (STDMETHODCALLTYPE OnStartBinding)(IBindStatusCallback* This,/* [in] */ DWORD dwReserved,/* [in] */ IBinding* pib){return E_NOTIMPL;}HRESULT (STDMETHODCALLTYPE GetPriority)(IBindStatusCallback* This,/* [out] */ LONG* pnPriority){return E_NOTIMPL;}HRESULT (STDMETHODCALLTYPE OnLowResource)(IBindStatusCallback* This,/* [in] */ DWORD reserved){return E_NOTIMPL;}HRESULT (STDMETHODCALLTYPE OnProgress)(IBindStatusCallback* This,/* [in] */ ULONG ulProgress,/* [in] */ ULONG ulProgressMax,/* [in] */ ULONG ulStatusCode,/* [in] */ LPCWSTR szStatusText){if (ulProgress 0) {return S_OK;}printf(%d / %d bytes , %.2f%%\n,ulProgress, ulProgressMax,100*(double)ulProgress/(double)ulProgressMax);return S_OK;}HRESULT (STDMETHODCALLTYPE OnStopBinding)(IBindStatusCallback* This,/* [in] */ HRESULT hresult,/* [unique][in] */ LPCWSTR szError){return E_NOTIMPL;}HRESULT (STDMETHODCALLTYPE GetBindInfo)(IBindStatusCallback* This,/* [out] */ DWORD* grfBINDF,/* [unique][out][in] */ BINDINFO* pbindinfo){return E_NOTIMPL;}HRESULT (STDMETHODCALLTYPE OnDataAvailable)(IBindStatusCallback* This,/* [in] */ DWORD grfBSCF,/* [in] */ DWORD dwSize,/* [in] */ FORMATETC* pformatetc,/* [in] */ STGMEDIUM* pstgmed){return E_NOTIMPL;}HRESULT (STDMETHODCALLTYPE OnObjectAvailable)(IBindStatusCallback* This,/* [in] */ REFIID riid,/* [iid_is][in] */ IUnknown* punk){return E_NOTIMPL;}int main(int argc,char * argv[]) {char path[MAX_PATH];char downloadURL[] https://down.qq.com/qqweb/PCQQ/PCQQ_EXE/PCQQ2020.exe;IBindStatusCallback callBack;IBindStatusCallbackVtbl vtbl;vtbl.QueryInterface QueryInterface;vtbl.AddRef AddRef;vtbl.Release Release;vtbl.OnStartBinding OnStartBinding;vtbl.GetPriority GetPriority;vtbl.OnLowResource OnLowResource;vtbl.OnProgress OnProgress;//进度回调操作vtbl.OnStopBinding OnStopBinding;vtbl.GetBindInfo GetBindInfo;vtbl.OnDataAvailable OnDataAvailable;vtbl.OnObjectAvailable OnObjectAvailable;callBack.lpVtbl vtbl;GetTempPath(sizeof(path),path);strcat(path, tmpqq.exe);printf(保存位置: %s\n, path);URLDownloadToFile(NULL,downloadURL, path,0,callBack);return 0;}扫码领个红包作为打赏吧~~(余额宝支付时可抵现)赏喜欢 (2)or分享 (0)
http://www.pierceye.com/news/47717/

相关文章:

  • 做网站个人外贸网站建设哪里好
  • 阿里巴巴外贸网站论坛制作网站的列子
  • 天津建设银行网站如何修改英文WordPress主题首页
  • 网站后台管理是什么21dove谁做的的网站
  • 网站建设最新签约全球十大网站访问量排名
  • 中国建设执业资格注册管理中心网站关键词权重如何打造
  • 厦门 网站建设 网站开发中信建设有限责任公司财务总监
  • 网站建设项目章程窝窝在线观看
  • 可信网站 认证规则宝塔怎么创建网站
  • 网站自助建站外贸开发产品网站建设
  • 织梦网站模板制作wordpress一键安装脚本
  • 网站开发 入门教程邯郸超速云_网站建设
  • 做外包软件的网站老五wordpress
  • WordPress实现网址导航宁波网站建设优化服务公司
  • 备案的网站名称国外网站引流如何做
  • 西安网站制作工程师辅助购卡网站怎么做
  • 一个网站做3个关键词够广告设计公司招聘
  • 公司网站php蛋糕电子商务网站建设方案
  • 网站建设 制作教程顺德做网站推广哪家好
  • 网站点击推广域名解析ip地址查询
  • 河南建设银行官方网站温州网站制作策划
  • 合肥网站排名优化公司哪家好做任务的设计网站
  • 网站 多语言制作网站的分类
  • 在网站上做支付功能 需要什么推广平台有哪些平台
  • 东莞网站优化费用网页布局实训心得体会
  • 中国建设银行官网站u盾证书报价单通用模板
  • 南京便宜网站建设php网站开发现状都用什么打开模板
  • 怎样建设打字网站网站设计制作简单实例
  • 怎么做二级网站域名凡科登录电脑版
  • 经典网站设计风格单页网站建设哪里有提供