Delphi使用迅雷的开放下载引擎下载


本文整理自网络,侵删。

  迅雷的下载貌似开放了引擎,也就是说,咱们可以写程序用迅雷的下载引擎下载文件了。下载地址

http://thunderplatform.xunlei.com/

不过,下载的东西,给了一个SDK和一个DLL,只要调用DLL中的相关函数,就能下载了,不过,就我目前测试的来看,只支持Http协议,是阉割版的,而且,启动之后,会在系统右下角多一个图标,一个鸟头的图标。总之是很挫咯。他的SDK给了一个Demo,是VC的代码。顺带把SDK翻译了成Delphi的,有想使用这个阉割方法下载的人,可以偷偷懒试试咯。说明,我没有测试,所以不保证一定翻译有效。因为这个阉割版阉割的太厉害了,就支持一个Http的,所以,我就没心思去写一个完整的Demo测试。

(*
enum enumTaskStatus{
    enumTaskStatus_Connect = 0,                 // 已经建立连接
    enumTaskStatus_Download = 2,                // 开始下载
    enumTaskStatus_Pause = 10,                  // 暂停
    enumTaskStatus_Success = 11,                // 成功下载
    enumTaskStatus_Fail = 12,                   // 下载失败
};
*)
  enumTaskStatus = (
    enumTaskStatus_Connect = 0,                 // 已经建立连接
    enumTaskStatus_Download = 2,                // 开始下载
    enumTaskStatus_Pause = 10,                  // 暂停
    enumTaskStatus_Success = 11,                // 成功下载
    enumTaskStatus_Fail = 12);

 

//BOOL  __stdcall XLInitDownloadEngine();
function XLInitDownloadEngine: BOOL;stdcall;external 'XLDownload.dll';
//DWORD __stdcall XLURLDownloadToFile(LPCTSTR pszFileName, LPCTSTR pszUrl, LPCTSTR pszRefUrl, LONG & lTaskId);
function XLURLDownloadToFile(pszFileName,pszUrl,pszRefurl: PChar;var iTaskId: LongInt): DWORD;stdcall;external 'XLDownload.dll';
//DWORD __stdcall XLQueryTaskInfo(LONG lTaskId, LONG *plStatus, ULONGLONG *pullFileSize, ULONGLONG *pullRecvSize);
function XLQueryTaskInfo(lTaskId: LongInt;plStatus: PInteger;pullFileSize: PDWORD; pullRecvSize: PDWORD): DWORD;stdcall;external 'XLDownload.dll';
//DWORD __stdcall XLPauseTask(LONG lTaskId, LONG & lNewTaskId);
function XLPauseTask(lTaskID: LongInt;var lNewTaskID: LongInt): DWORD;stdcall;external 'XLDownload.dll';
//DWORD __stdcall XLContinueTask(LONG lTaskId);
function XLContinueTask(lTaskId: LongInt): DWORD;stdcall;external 'XLDownload.dll';
//DWORD __stdcall XLContinueTaskFromTdFile(LPCTSTR pszTdFileFullPath, LONG & lTaskId);
function XLContinueTaskFromTdFile(pszTdFileFullPath: PChar;var lTaskId: Longint): DWORD;stdcall;external 'XLDownload.dll';
//VOID  __stdcall XLStopTask(LONG lTaskId);
procedure XLStopTask(lTaskId: longint);stdcall;external 'XLDownload.dll';
//BOOL  __stdcall XLUninitDownloadEngine();
function XLUninitDownloadEngine: BOOL;stdcall;external 'XLDownload.dll';
//DWORD __stdcall XLGetErrorMsg(DWORD dwErrorId, LPTSTR pszBuffer, DWORD & dwSize);
function XLGetErrorMsg(dwErrorId: DWORD;pszBuffer: PChar;var dwsize: DWORD): DWORD;stdcall;external 'XLDownload.dll';

 

 

相关阅读 >>

Delphi 在ms access数据库中图像的存储和显示

Delphi静态和动态调用dll的实例

Delphi decodeutf8str解决系统自带utf8解码缺陷

Delphi结合winrar生成自解压文件

Delphi字符串深入学习

Delphi xe 横屏竖屏的管理

Delphi 编写键盘记录器

Delphi 检测url地址是否有效

Delphi二值图像除杂点(噪点)

Delphi判断sql server 服务是否断开

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...