可以用现成的API函数,功能强大,非常的好用。
我今天想下载一些网页内容,这里用到一个非常好的API函数。
没有什么是API做不到的。所以多学一个API函数,可以省下不少力气。
这个函数的原型是:
函数原型:
HRESULT URLDownloadToFile( LPUNKNOWN pCaller, LPCTSTR szURL, LPCTSTR szFileName, DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB );
参数详解:
pCaller: 微软的调用ActiveX组件控制IUnknown接口地址,如果对方是一个ActiveX组件。如果调用应用程序不是一个ActiveX组件,该值可以被设置为零。 否则,对方是一个组件对象模型(COM)的对象,包含在另一个部件,如在HTML页面中的ActiveX控件。这个参数表示调用组件的最外层IUnknown。 尝试下载功能的ActiveX客户端框架的背景下,允许调用方的容器上的下载进度接收回调。 szURL: 含有URL下载地址是一个字符串值。不能设置为空。 szFileName: 包含创建位来自下载的文件名的字符串值的地址。 dwReserved: 保留。必须为零。 lpfnCB: 对来电者的ibindstatuscallback接口地址。ibindstatuscallback::ondataavailable从来没有被调用。 实施ibindstatuscallback::onprogress允许调用者实现用户界面或其他进程监控功能。它还允许下载操作 将返回e_abort从ibindstatuscallback取消::onprogress呼叫。这可以被设置为空。
返回值
E_OUTOFMEMORY 缓冲区的长度无效或没有足够的内存来完成操作。 S_OK 操作成功
这个函数从互联网下载网页内容并将其保存到指定的文件。此函数可以刷任何网站的访问量。
好了,有了这个函数原型 ,在Powerbuilder中如何使用呢?
当然了,使用也是很简单了,如果你对powerbuilder也是一知半解的话,函数声明也会一头雾水。
好吧。我这里有现成的代码,拿去抄吧。
SUBROUTINE URLDownloadToFileW ( Long lpunknown, String lpcstr, String lpcstr, Long dword, LONG TLPBINDSTATUSCALLBACK) LIBRARY "URLMON.DLL"
long ll_null;
setnull(ll_null);
URLDownloadToFileW(ll_null,"https://www.baidu.com/",'c:\\bb.htm',0,ll_null);