赞
踩
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_INTERFACE
HRESULT ( 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,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。