commit 6f94451fdd766b948e9137555aef7cbccbb5bab6 Author: cryzlasm <9461213@qq.com> Date: Thu Sep 6 15:28:31 2018 +0800 Initial commit diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/360Jisu_Thunder_Cloud/360dl.dll b/360Jisu_Thunder_Cloud/360dl.dll new file mode 100644 index 0000000..bf75b85 Binary files /dev/null and b/360Jisu_Thunder_Cloud/360dl.dll differ diff --git a/360Jisu_Thunder_Cloud/download/MiniThunderPlatform.exe b/360Jisu_Thunder_Cloud/download/MiniThunderPlatform.exe new file mode 100644 index 0000000..22adf91 Binary files /dev/null and b/360Jisu_Thunder_Cloud/download/MiniThunderPlatform.exe differ diff --git a/360Jisu_Thunder_Cloud/download/XLBugHandler.dll b/360Jisu_Thunder_Cloud/download/XLBugHandler.dll new file mode 100644 index 0000000..26b4529 Binary files /dev/null and b/360Jisu_Thunder_Cloud/download/XLBugHandler.dll differ diff --git a/360Jisu_Thunder_Cloud/download/XLBugReport.exe b/360Jisu_Thunder_Cloud/download/XLBugReport.exe new file mode 100644 index 0000000..4417dab Binary files /dev/null and b/360Jisu_Thunder_Cloud/download/XLBugReport.exe differ diff --git a/360Jisu_Thunder_Cloud/download/atl71.dll b/360Jisu_Thunder_Cloud/download/atl71.dll new file mode 100644 index 0000000..66f9cf7 Binary files /dev/null and b/360Jisu_Thunder_Cloud/download/atl71.dll differ diff --git a/360Jisu_Thunder_Cloud/download/dc.ini b/360Jisu_Thunder_Cloud/download/dc.ini new file mode 100644 index 0000000..169a9b7 --- /dev/null +++ b/360Jisu_Thunder_Cloud/download/dc.ini @@ -0,0 +1,3 @@ +[op] +ps=1 +pp=1 \ No newline at end of file diff --git a/360Jisu_Thunder_Cloud/download/dl_peer_id.dll b/360Jisu_Thunder_Cloud/download/dl_peer_id.dll new file mode 100644 index 0000000..8b28b17 Binary files /dev/null and b/360Jisu_Thunder_Cloud/download/dl_peer_id.dll differ diff --git a/360Jisu_Thunder_Cloud/download/download_engine.dll b/360Jisu_Thunder_Cloud/download/download_engine.dll new file mode 100644 index 0000000..3e22c24 Binary files /dev/null and b/360Jisu_Thunder_Cloud/download/download_engine.dll differ diff --git a/360Jisu_Thunder_Cloud/download/id.dat b/360Jisu_Thunder_Cloud/download/id.dat new file mode 100644 index 0000000..9fa4d2f --- /dev/null +++ b/360Jisu_Thunder_Cloud/download/id.dat @@ -0,0 +1,4 @@ +[partner] +id = 80000043 +ver = 3.2.1.46 + diff --git a/360Jisu_Thunder_Cloud/download/mini_unzip_dll.dll b/360Jisu_Thunder_Cloud/download/mini_unzip_dll.dll new file mode 100644 index 0000000..2d27340 Binary files /dev/null and b/360Jisu_Thunder_Cloud/download/mini_unzip_dll.dll differ diff --git a/360Jisu_Thunder_Cloud/download/minizip.dll b/360Jisu_Thunder_Cloud/download/minizip.dll new file mode 100644 index 0000000..0040849 Binary files /dev/null and b/360Jisu_Thunder_Cloud/download/minizip.dll differ diff --git a/360Jisu_Thunder_Cloud/download/msvcp71.dll b/360Jisu_Thunder_Cloud/download/msvcp71.dll new file mode 100644 index 0000000..5f1a87b Binary files /dev/null and b/360Jisu_Thunder_Cloud/download/msvcp71.dll differ diff --git a/360Jisu_Thunder_Cloud/download/msvcr71.dll b/360Jisu_Thunder_Cloud/download/msvcr71.dll new file mode 100644 index 0000000..b50a30d Binary files /dev/null and b/360Jisu_Thunder_Cloud/download/msvcr71.dll differ diff --git a/360Jisu_Thunder_Cloud/download/zlib1.dll b/360Jisu_Thunder_Cloud/download/zlib1.dll new file mode 100644 index 0000000..8c3f7e1 Binary files /dev/null and b/360Jisu_Thunder_Cloud/download/zlib1.dll differ diff --git a/README.MD b/README.MD new file mode 100644 index 0000000..1960ebf --- /dev/null +++ b/README.MD @@ -0,0 +1,13 @@ +# 迅雷下载引擎 + +分别由 小米, 猎豹, 360极速浏览器等软件提取 + +不承担软件无毒, 均为网络搜集, 自行校验签名 + + +# 编译可用 + +[MiniThunder] : (https://github.com/intlinfo/MiniThunder) +此代码 编译之后, 扔给需要的动态库, 可直接下载使用, 看资源数, 来决定下载速度, 貌似无限速 + + diff --git a/XunleiDownload_Old/XLDownload.dll b/XunleiDownload_Old/XLDownload.dll new file mode 100644 index 0000000..24acc33 Binary files /dev/null and b/XunleiDownload_Old/XLDownload.dll differ diff --git a/XunleiDownload_Old/XLDownload.h b/XunleiDownload_Old/XLDownload.h new file mode 100644 index 0000000..0aadca3 --- /dev/null +++ b/XunleiDownload_Old/XLDownload.h @@ -0,0 +1,36 @@ +#pragma once + +/* +-------------------------------- +*/ +#include + +BOOL __stdcall XLInitDownloadEngine(); + +DWORD __stdcall XLURLDownloadToFile(LPCTSTR pszFileName, LPCTSTR pszUrl, LPCTSTR pszRefUrl, LONG & lTaskId); + +DWORD __stdcall XLQueryTaskInfo(LONG lTaskId, LONG *plStatus, ULONGLONG *pullFileSize, ULONGLONG *pullRecvSize); + +DWORD __stdcall XLPauseTask(LONG lTaskId, LONG & lNewTaskId); + +DWORD __stdcall XLContinueTask(LONG lTaskId); + +DWORD __stdcall XLContinueTaskFromTdFile(LPCTSTR pszTdFileFullPath, LONG & lTaskId); + +VOID __stdcall XLStopTask(LONG lTaskId); + +BOOL __stdcall XLUninitDownloadEngine(); + +DWORD __stdcall XLGetErrorMsg(DWORD dwErrorId, LPTSTR pszBuffer, DWORD & dwSize); + + +/* +----------------------Ͷ----------------- +*/ +enum enumTaskStatus{ + enumTaskStatus_Connect = 0, // Ѿ + enumTaskStatus_Download = 2, // ʼ + enumTaskStatus_Pause = 10, // ͣ + enumTaskStatus_Success = 11, // ɹ + enumTaskStatus_Fail = 12, // ʧ +}; \ No newline at end of file diff --git a/XunleiDownload_Old/XLDownload.lib b/XunleiDownload_Old/XLDownload.lib new file mode 100644 index 0000000..59ebe34 Binary files /dev/null and b/XunleiDownload_Old/XLDownload.lib differ diff --git a/XunleiDownload_Old/XLError.h b/XunleiDownload_Old/XLError.h new file mode 100644 index 0000000..25a336c --- /dev/null +++ b/XunleiDownload_Old/XLError.h @@ -0,0 +1,82 @@ +#pragma once + +#define XL_SUCCESS 0 +#define XL_ERROR_FAIL 0x10000000 + +// δгʼ +#define XL_ERROR_UNINITAILIZE XL_ERROR_FAIL+1 + +// ֵ֧Э飬Ŀǰֻ֧HTTP +#define XL_ERROR_UNSPORTED_PROTOCOL XL_ERROR_FAIL+2 + +// ʼͼʧ +#define XL_ERROR_INIT_TASK_TRAY_ICON_FAIL XL_ERROR_FAIL+3 + +// ͼʧ +#define XL_ERROR_ADD_TASK_TRAY_ICON_FAIL XL_ERROR_FAIL+4 + +// ָΪ +#define XL_ERROR_POINTER_IS_NULL XL_ERROR_FAIL+5 + +// ַǿմ +#define XL_ERROR_STRING_IS_EMPTY XL_ERROR_FAIL+6 + +// ·ûаļ +#define XL_ERROR_PATH_DONT_INCLUDE_FILENAME XL_ERROR_FAIL+7 + +// Ŀ¼ʧ +#define XL_ERROR_CREATE_DIRECTORY_FAIL XL_ERROR_FAIL+8 + +// ڴ治 +#define XL_ERROR_MEMORY_ISNT_ENOUGH XL_ERROR_FAIL+9 + +// Ϸ +#define XL_ERROR_INVALID_ARG XL_ERROR_FAIL+10 + +// 񲻴 +#define XL_ERROR_TASK_DONT_EXIST XL_ERROR_FAIL+11 + +// ļϷ +#define XL_ERROR_FILE_NAME_INVALID XL_ERROR_FAIL+12 + +// ûʵ +#define XL_ERROR_NOTIMPL XL_ERROR_FAIL+13 + +// Ѿﵽ޷ +#define XL_ERROR_TASKNUM_EXCEED_MAXNUM XL_ERROR_FAIL+14 + +// δ֪ +#define XL_ERROR_INVALID_TASK_TYPE XL_ERROR_FAIL+15 + +// ļѾ +#define XL_ERROR_FILE_ALREADY_EXIST XL_ERROR_FAIL+16 + +// ļ +#define XL_ERROR_FILE_DONT_EXIST XL_ERROR_FAIL+17 + +// ȡcfgļʧ +#define XL_ERROR_READ_CFG_FILE_FAIL XL_ERROR_FAIL+18 + +// дcfgļʧ +#define XL_ERROR_WRITE_CFG_FILE_FAIL XL_ERROR_FAIL+19 + +// ޷񣬿Dzֶ֧ϵҲпѾʧ +// ͨѯ״̬ȷԭ +#define XL_ERROR_CANNOT_CONTINUE_TASK XL_ERROR_FAIL+20 + +// ޷ͣ񣬿Dzֶ֧ϵҲпѾʧ +// ͨѯ״̬ȷԭ +#define XL_ERROR_CANNOT_PAUSE_TASK XL_ERROR_FAIL+21 + +// ̫С +#define XL_ERROR_BUFFER_TOO_SMALL XL_ERROR_FAIL+22 + +// XLInitDownloadEnginẹ߳ڵXLUninitDownloadEngine֮ǰѾ +// ʼ̣߳ڵXLUninitDownloadEngine֮ǰ뱣ִ״̬ +#define XL_ERROR_INIT_THREAD_EXIT_TOO_EARLY XL_ERROR_FAIL+23 + +// TP +#define XL_ERROR_TP_CRASH XL_ERROR_FAIL+24 + +// 񲻺ϷXLContinueTaskFromTdFileڲлʧʱ +#define XL_ERROR_TASK_INVALID XL_ERROR_FAIL+25 diff --git a/XunleiDownload_Old/zlib1.dll b/XunleiDownload_Old/zlib1.dll new file mode 100644 index 0000000..90eb858 Binary files /dev/null and b/XunleiDownload_Old/zlib1.dll differ diff --git a/liebao_Thunder_Cloud/download/MiniThunderPlatform.exe b/liebao_Thunder_Cloud/download/MiniThunderPlatform.exe new file mode 100644 index 0000000..c6b0e9b Binary files /dev/null and b/liebao_Thunder_Cloud/download/MiniThunderPlatform.exe differ diff --git a/liebao_Thunder_Cloud/download/XLBugHandler.dll b/liebao_Thunder_Cloud/download/XLBugHandler.dll new file mode 100644 index 0000000..26b4529 Binary files /dev/null and b/liebao_Thunder_Cloud/download/XLBugHandler.dll differ diff --git a/liebao_Thunder_Cloud/download/XLBugReport.exe b/liebao_Thunder_Cloud/download/XLBugReport.exe new file mode 100644 index 0000000..4417dab Binary files /dev/null and b/liebao_Thunder_Cloud/download/XLBugReport.exe differ diff --git a/liebao_Thunder_Cloud/download/atl71.dll b/liebao_Thunder_Cloud/download/atl71.dll new file mode 100644 index 0000000..66f9cf7 Binary files /dev/null and b/liebao_Thunder_Cloud/download/atl71.dll differ diff --git a/liebao_Thunder_Cloud/download/dl_peer_id.dll b/liebao_Thunder_Cloud/download/dl_peer_id.dll new file mode 100644 index 0000000..8b28b17 Binary files /dev/null and b/liebao_Thunder_Cloud/download/dl_peer_id.dll differ diff --git a/liebao_Thunder_Cloud/download/download_engine.dll b/liebao_Thunder_Cloud/download/download_engine.dll new file mode 100644 index 0000000..5c345d3 Binary files /dev/null and b/liebao_Thunder_Cloud/download/download_engine.dll differ diff --git a/liebao_Thunder_Cloud/download/id.dat b/liebao_Thunder_Cloud/download/id.dat new file mode 100644 index 0000000..13e04d2 --- /dev/null +++ b/liebao_Thunder_Cloud/download/id.dat @@ -0,0 +1,2 @@ +[partner] +id=80000054 \ No newline at end of file diff --git a/liebao_Thunder_Cloud/download/minizip.dll b/liebao_Thunder_Cloud/download/minizip.dll new file mode 100644 index 0000000..0040849 Binary files /dev/null and b/liebao_Thunder_Cloud/download/minizip.dll differ diff --git a/liebao_Thunder_Cloud/download/msvcp71.dll b/liebao_Thunder_Cloud/download/msvcp71.dll new file mode 100644 index 0000000..9ed0d17 Binary files /dev/null and b/liebao_Thunder_Cloud/download/msvcp71.dll differ diff --git a/liebao_Thunder_Cloud/download/msvcr71.dll b/liebao_Thunder_Cloud/download/msvcr71.dll new file mode 100644 index 0000000..91fcd7b Binary files /dev/null and b/liebao_Thunder_Cloud/download/msvcr71.dll differ diff --git a/liebao_Thunder_Cloud/download/zlib1.dll b/liebao_Thunder_Cloud/download/zlib1.dll new file mode 100644 index 0000000..8c3f7e1 Binary files /dev/null and b/liebao_Thunder_Cloud/download/zlib1.dll differ diff --git a/liebao_Thunder_Cloud/thunderWrapper.h b/liebao_Thunder_Cloud/thunderWrapper.h new file mode 100644 index 0000000..5bee277 --- /dev/null +++ b/liebao_Thunder_Cloud/thunderWrapper.h @@ -0,0 +1,383 @@ +#ifndef __GTC_THUNDERWRAPPER__ +#define __GTC_THUNDERWRAPPER__ +#pragma once +#include "AC/sysupport.h" + +namespace gtc { + ////////////////////////////////////////////////////////////////////////////////////////// + // 2016-3-4 kp007 Ѹͷļ +#pragma pack(push, 1) + struct DownTaskParam + { + DownTaskParam() + { + memset(this, 0, sizeof(DownTaskParam)); + nReserved1 = 5; + bReserved = FALSE; + DisableAutoRename = FALSE; + IsOnlyOriginal = FALSE; + IsResume = TRUE; + } + int nReserved; + wchar_t szTaskUrl[2084]; // URL + wchar_t szRefUrl[2084]; // ҳ + wchar_t szCookies[4096]; // cookie + wchar_t szFilename[MAX_PATH]; // رļ. + wchar_t szReserved0[MAX_PATH]; + wchar_t szSavePath[MAX_PATH]; // ļĿ¼ + HWND hReserved; + BOOL bReserved; + wchar_t szReserved1[64]; + wchar_t szReserved2[64]; + BOOL IsOnlyOriginal; // Ƿֻԭʼַ + UINT nReserved1; + BOOL DisableAutoRename; // ֹ + BOOL IsResume; // Ƿ + DWORD reserved[2048]; + }; + enum DOWN_TASK_STATUS + { + NOITEM = 0, + TSC_ERROR, + TSC_PAUSE, + TSC_DOWNLOAD, + TSC_COMPLETE, + TSC_STARTPENDING, + TSC_STOPPENDING + }; + enum TASK_ERROR_TYPE + { + TASK_ERROR_UNKNOWN = 0x00, // δ֪ + TASK_ERROR_DISK_CREATE = 0x01, // ļʧ + TASK_ERROR_DISK_WRITE = 0x02, // дļʧ + TASK_ERROR_DISK_READ = 0x03, // ļʧ + TASK_ERROR_DISK_RENAME = 0x04, // ʧ + TASK_ERROR_DISK_PIECEHASH = 0x05, // ļƬУʧ + TASK_ERROR_DISK_FILEHASH = 0x06, // ļȫУʧ + TASK_ERROR_DISK_DELETE = 0x07, // ɾļʧʧ + TASK_ERROR_DOWN_INVALID = 0x10, // ЧDOWNַ + TASK_ERROR_PROXY_AUTH_TYPE_UNKOWN = 0x20, // δ֪ + TASK_ERROR_PROXY_AUTH_TYPE_FAILED = 0x21, // ֤ʧ + TASK_ERROR_HTTPMGR_NOT_IP = 0x30, // httpip + TASK_ERROR_TIMEOUT = 0x40, // ʱ + TASK_ERROR_CANCEL = 0x41, // ȡ + TASK_ERROR_TP_CRASHED= 0x42, // MINITP + TASK_ERROR_ID_INVALID = 0x43, // TaskId Ƿ + }; + struct DownTaskInfo + { + DownTaskInfo() + { + memset(this, 0, sizeof(DownTaskInfo)); + stat = TSC_PAUSE; + fail_code = TASK_ERROR_UNKNOWN; + fPercent = 0; + bIsOriginUsable = false; + fHashPercent = 0; + } + DOWN_TASK_STATUS stat; + TASK_ERROR_TYPE fail_code; + wchar_t szFilename[MAX_PATH]; + wchar_t szReserved0[MAX_PATH]; + __int64 nTotalSize; // ܴС(ֽ) + __int64 nTotalDownload; // Чֽ(ܴڻ˵) + float fPercent; // ؽ + int nReserved0; + int nSrcTotal; // Դ + int nSrcUsing; // Դ + int nReserved1; + int nReserved2; + int nReserved3; + int nReserved4; + __int64 nReserved5; + __int64 nDonationP2P; // p2pֽ + __int64 nReserved6; + __int64 nDonationOrgin; // ԭʼԴֽ + __int64 nDonationP2S; // Դֽ + __int64 nReserved7; + __int64 nReserved8; + int nSpeed; // ʱٶ(ֽ/) + int nSpeedP2S; // ʱٶ(ֽ/) + int nSpeedP2P; // ʱٶ(ֽ/) + bool bIsOriginUsable; // ԭʼԴǷЧ + float fHashPercent; // ֲṩֵ + int IsCreatingFile; // Ƿڴļ + DWORD reserved[64]; + }; + enum DOWN_PROXY_TYPE + { + PROXY_TYPE_IE = 0, + PROXY_TYPE_HTTP = 1, + PROXY_TYPE_SOCK4 = 2, + PROXY_TYPE_SOCK5 = 3, + PROXY_TYPE_FTP = 4, + PROXY_TYPE_UNKOWN = 255, + }; + enum DOWN_PROXY_AUTH_TYPE + { + PROXY_AUTH_NONE =0, + PROXY_AUTH_AUTO, + PROXY_AUTH_BASE64, + PROXY_AUTH_NTLM, + PROXY_AUTH_DEGEST, + PROXY_AUTH_UNKOWN, + }; + struct DOWN_PROXY_INFO + { + BOOL bIEProxy; + BOOL bProxy; + DOWN_PROXY_TYPE stPType; + DOWN_PROXY_AUTH_TYPE stAType; + wchar_t szHost[2048]; + INT32 nPort; + wchar_t szUser[50]; + wchar_t szPwd[50]; + wchar_t szDomain[2048]; + }; + struct WSAPROTOCOL_INFOW; + + +#pragma pack(pop) + + ////////////////////////////////////////////////////////////////////////////////////////// + // 2016-3-4 kp007 庯ָ + typedef BOOL (*fn_Init)(void); + typedef BOOL (*fn_UnInit)(void); + typedef HANDLE (*fn_TaskCreate)(DownTaskParam &stParam); + typedef BOOL (*fn_TaskDelete)(HANDLE hTask); + typedef BOOL (*fn_TaskStart) (HANDLE hTask); + typedef BOOL (*fn_TaskPause) (HANDLE hTask); + typedef BOOL (*fn_TaskQuery) (HANDLE hTask,DownTaskInfo &stTaskInfo); + typedef BOOL (*fn_TaskQueryEx) (HANDLE hTask,DownTaskInfo &stTaskInfo); + typedef void (*fn_LimitSpeed)(INT32 nKBps); + typedef void (*fn_LimitUploadSpeed)(INT32 nTcpBps,INT32 nOtherBps); + typedef BOOL (*fn_DelTempFile)(DownTaskParam &stParam); + typedef BOOL (*fn_SetProxy)(DOWN_PROXY_INFO &stProxy); + typedef void (*fn_SetUserAgent)( const TCHAR* pszUserAgent ); + typedef BOOL (*fn_GetFileSizeWithUrl)(const wchar_t * lpURL, INT64& iFileSize); + typedef BOOL (*fn_ParseThunderPrivateUrl)(const TCHAR *pszThunderUrl, TCHAR *normalUrlBuffer, INT32 bufferLen); + typedef LONG (*fn_SetAdditionInfo)( HANDLE task_id, WSAPROTOCOL_INFOW *sock_info, CHAR *http_resp_buf, LONG buf_len ); + typedef BOOL (*fn_SetFileIdAndSize)(HANDLE hTask, char szFileId[40], unsigned __int64 nFileSize); + +#define CHECKFUNC(f, ret) if (f == NULL) return ret; +#define CHECKFUNC_(f) if (f == NULL) return; + //////////////////////////////////////////////////////////////////////////////////////////////////////// + // thunderWrapper 2016-3-4 kp007 + // Ѹطװ + // + //////////////////////////////////////////////////////////////////////////////////////////////////////// + class thunderWrapper + { + public: + thunderWrapper(PCWSTR pDllPath = L"xldl.dll") + : m_hModule(NULL) + , m_hTask(NULL) + { + _Init = NULL; // (fn_Init) ::GetProcAddress(m_hModule, "XL_Init"); + _UnInit = NULL; // (fn_UnInit) ::GetProcAddress(m_hModule, "XL_UnInit"); + _TaskCreate = NULL; // (fn_TaskCreate) ::GetProcAddress(m_hModule, "XL_CreateTask"); + _TaskDelete = NULL; // (fn_TaskDelete) ::GetProcAddress(m_hModule, "XL_DeleteTask"); + _TaskStart = NULL; // (fn_TaskStart) ::GetProcAddress(m_hModule, "XL_StartTask"); + _TaskPause = NULL; // (fn_TaskPause) ::GetProcAddress(m_hModule, "XL_StopTask"); + _TaskQuery = NULL; // (fn_TaskQuery) ::GetProcAddress(m_hModule, "XL_QueryTaskInfo"); + _TaskQueryEx = NULL; // (fn_TaskQueryEx) ::GetProcAddress(m_hModule, "XL_QueryTaskInfoEx"); + _LimitSpeed = NULL; // (fn_LimitSpeed) ::GetProcAddress(m_hModule, "XL_SetSpeedLimit"); + _LimitUploadSpeed = NULL; // (fn_LimitUploadSpeed) ::GetProcAddress(m_hModule, "XL_SetUploadSpeedLimit"); + _DelTempFile = NULL; // (fn_DelTempFile) ::GetProcAddress(m_hModule, "XL_DelTempFile"); + _SetProxy = NULL; // (fn_SetProxy) ::GetProcAddress(m_hModule, "XL_SetProxy"); + _SetUserAgent = NULL; // (fn_SetUserAgent) ::GetProcAddress(m_hModule, "XL_SetUserAgent"); + _GetFileSizeWithUrl = NULL; // (fn_GetFileSizeWithUrl) ::GetProcAddress(m_hModule, "XL_GetFileSizeWithUrl"); + _ParseThunderPrivateUrl = NULL; // (fn_ParseThunderPrivateUrl) ::GetProcAddress(m_hModule, "XL_ParseThunderPrivateUrl"); + _SetAdditionInfo = NULL; // (fn_SetAdditionInfo) ::GetProcAddress(m_hModule, "XL_SetAdditionInfo"); + _SetFileIdAndSize = NULL; // (fn_SetFileIdAndSize) ::GetProcAddress(m_hModule, "XL_SetFileIdAndSize"); + + //m_hModule = ::LoadLibraryW(pDllPath); + //assert(m_hModule); + //if (m_hModule == NULL) + //{ + // throw L"can not load xldl.dll"; + //} + //_Init = (fn_Init) ::GetProcAddress(m_hModule, "XL_Init"); + //_UnInit = (fn_UnInit) ::GetProcAddress(m_hModule, "XL_UnInit"); + //_TaskCreate = (fn_TaskCreate) ::GetProcAddress(m_hModule, "XL_CreateTask"); + //_TaskDelete = (fn_TaskDelete) ::GetProcAddress(m_hModule, "XL_DeleteTask"); + //_TaskStart = (fn_TaskStart) ::GetProcAddress(m_hModule, "XL_StartTask"); + //_TaskPause = (fn_TaskPause) ::GetProcAddress(m_hModule, "XL_StopTask"); + //_TaskQuery = (fn_TaskQuery) ::GetProcAddress(m_hModule, "XL_QueryTaskInfo"); + //_TaskQueryEx = (fn_TaskQueryEx) ::GetProcAddress(m_hModule, "XL_QueryTaskInfoEx"); + //_LimitSpeed = (fn_LimitSpeed) ::GetProcAddress(m_hModule, "XL_SetSpeedLimit"); + //_LimitUploadSpeed = (fn_LimitUploadSpeed) ::GetProcAddress(m_hModule, "XL_SetUploadSpeedLimit"); + //_DelTempFile = (fn_DelTempFile) ::GetProcAddress(m_hModule, "XL_DelTempFile"); + //_SetProxy = (fn_SetProxy) ::GetProcAddress(m_hModule, "XL_SetProxy"); + //_SetUserAgent = (fn_SetUserAgent) ::GetProcAddress(m_hModule, "XL_SetUserAgent"); + //_GetFileSizeWithUrl = (fn_GetFileSizeWithUrl) ::GetProcAddress(m_hModule, "XL_GetFileSizeWithUrl"); + //_ParseThunderPrivateUrl = (fn_ParseThunderPrivateUrl) ::GetProcAddress(m_hModule, "XL_ParseThunderPrivateUrl"); + //_SetAdditionInfo = (fn_SetAdditionInfo) ::GetProcAddress(m_hModule, "XL_SetAdditionInfo"); + //_SetFileIdAndSize = (fn_SetFileIdAndSize) ::GetProcAddress(m_hModule, "XL_SetFileIdAndSize"); + } + + virtual ~thunderWrapper(void) + { + if (m_hModule) + { + ::FreeLibrary(m_hModule); + } + } + + bool init(PCWSTR pDllPath = L"xldl.dll") + { + assert(!m_hModule); + + m_hModule = ::LoadLibraryW(pDllPath); + assert(m_hModule); + if (m_hModule == NULL) + { + throw L"can not load xldl.dll"; + } + _Init = (fn_Init) ::GetProcAddress(m_hModule, "XL_Init"); + _UnInit = (fn_UnInit) ::GetProcAddress(m_hModule, "XL_UnInit"); + _TaskCreate = (fn_TaskCreate) ::GetProcAddress(m_hModule, "XL_CreateTask"); + _TaskDelete = (fn_TaskDelete) ::GetProcAddress(m_hModule, "XL_DeleteTask"); + _TaskStart = (fn_TaskStart) ::GetProcAddress(m_hModule, "XL_StartTask"); + _TaskPause = (fn_TaskPause) ::GetProcAddress(m_hModule, "XL_StopTask"); + _TaskQuery = (fn_TaskQuery) ::GetProcAddress(m_hModule, "XL_QueryTaskInfo"); + _TaskQueryEx = (fn_TaskQueryEx) ::GetProcAddress(m_hModule, "XL_QueryTaskInfoEx"); + _LimitSpeed = (fn_LimitSpeed) ::GetProcAddress(m_hModule, "XL_SetSpeedLimit"); + _LimitUploadSpeed = (fn_LimitUploadSpeed) ::GetProcAddress(m_hModule, "XL_SetUploadSpeedLimit"); + _DelTempFile = (fn_DelTempFile) ::GetProcAddress(m_hModule, "XL_DelTempFile"); + _SetProxy = (fn_SetProxy) ::GetProcAddress(m_hModule, "XL_SetProxy"); + _SetUserAgent = (fn_SetUserAgent) ::GetProcAddress(m_hModule, "XL_SetUserAgent"); + _GetFileSizeWithUrl = (fn_GetFileSizeWithUrl) ::GetProcAddress(m_hModule, "XL_GetFileSizeWithUrl"); + _ParseThunderPrivateUrl = (fn_ParseThunderPrivateUrl) ::GetProcAddress(m_hModule, "XL_ParseThunderPrivateUrl"); + _SetAdditionInfo = (fn_SetAdditionInfo) ::GetProcAddress(m_hModule, "XL_SetAdditionInfo"); + _SetFileIdAndSize = (fn_SetFileIdAndSize) ::GetProcAddress(m_hModule, "XL_SetFileIdAndSize"); + + CHECKFUNC(_Init, false); + return _Init() == TRUE; + } + bool unInit() + { + CHECKFUNC(_UnInit, false); + return TRUE == _UnInit(); + } + bool taskCreate(DownTaskParam ¶m) + { + CHECKFUNC(_TaskCreate, false); + m_hTask = _TaskCreate(param); + return m_hTask != NULL; + } + bool taskCreate(PCWSTR ptaskUrl, PCWSTR pSavePath, PCWSTR pFileName) + { + assert(ptaskUrl && pSavePath && pFileName); + DownTaskParam param; + std::wcsncpy(param.szTaskUrl, ptaskUrl, _countof(param.szTaskUrl)); + std::wcsncpy(param.szFilename, pFileName, _countof(param.szFilename)); + std::wcsncpy(param.szSavePath, pSavePath, _countof(param.szSavePath)); + + return taskCreate(param); + } + bool taskDelete() + { + CHECKFUNC(_TaskDelete, false); + assert(m_hTask); + bool bl = TRUE == _TaskDelete(m_hTask); + if(bl) m_hTask = NULL; + return bl; + } + bool taskStart() + { + CHECKFUNC(_TaskStart, false); + assert(m_hTask); + return TRUE == _TaskStart(m_hTask); + } + bool taskPause() + { + CHECKFUNC(_TaskPause, false); + assert(m_hTask); + return TRUE == _TaskPause(m_hTask); + } + bool taskQuery(DownTaskInfo &stTaskInfo) + { + CHECKFUNC(_TaskQuery, false); + assert(m_hTask); + return TRUE == _TaskQuery(m_hTask, stTaskInfo); + } + bool taskQueryEx(DownTaskInfo &stTaskInfo) + { + CHECKFUNC(_TaskQueryEx, false); + assert(m_hTask); + return TRUE == _TaskQueryEx(m_hTask, stTaskInfo); + } + void limitSpeed(INT32 nBps) + { + CHECKFUNC_(_LimitSpeed); + _LimitSpeed(nBps); + } + void limitUploadSpeed(INT32 nTcpBps,INT32 nOtherBps) + { + CHECKFUNC_(_LimitUploadSpeed); + _LimitUploadSpeed(nTcpBps, nOtherBps); + } + bool delTempFile(DownTaskParam &stParam) + { + CHECKFUNC(_DelTempFile,false); + return TRUE == _DelTempFile(stParam); + } + bool setProxy(DOWN_PROXY_INFO &stProxy) + { + CHECKFUNC(_SetProxy, false); + return TRUE == _SetProxy(stProxy); + } + void setUserAgent(const TCHAR *pszUserAgent) + { + CHECKFUNC_(_SetUserAgent); + _SetUserAgent(pszUserAgent); + } + bool getFileSizeWithUrl(const wchar_t * lpURL, INT64& iFileSize) + { + CHECKFUNC(_GetFileSizeWithUrl, false); + return TRUE == _GetFileSizeWithUrl(lpURL, iFileSize); + } + bool parseThunderPrivateUrl(const TCHAR *pszThunderUrl, TCHAR *normalUrlBuffer, INT32 bufferLen) + { + //if (_ParseThunderPrivateUrl == NULL ) return FALSE; + CHECKFUNC(_ParseThunderPrivateUrl, false); + return TRUE == _ParseThunderPrivateUrl(pszThunderUrl, normalUrlBuffer, bufferLen); + } + LONG setAdditionInfo(HANDLE task_id, WSAPROTOCOL_INFOW *sock_info, CHAR *http_resp_buf, LONG buf_len) + { + CHECKFUNC(_SetAdditionInfo, 0); + return _SetAdditionInfo(task_id, sock_info, http_resp_buf, buf_len); + } + LONG setFileIdAndSize(char szFileId[40], unsigned __int64 nFileSize) + { + CHECKFUNC(_SetFileIdAndSize, 0); + assert(m_hTask); + return _SetFileIdAndSize(m_hTask, szFileId, nFileSize); + } + + private: + HMODULE m_hModule; + HANDLE m_hTask; + + fn_Init _Init; + fn_UnInit _UnInit; + fn_TaskCreate _TaskCreate; + fn_TaskDelete _TaskDelete; + fn_TaskStart _TaskStart; + fn_TaskPause _TaskPause; + fn_TaskQuery _TaskQuery; + fn_TaskQueryEx _TaskQueryEx; + fn_LimitSpeed _LimitSpeed; + fn_LimitUploadSpeed _LimitUploadSpeed; + fn_DelTempFile _DelTempFile; + fn_SetProxy _SetProxy; + fn_SetUserAgent _SetUserAgent; + fn_GetFileSizeWithUrl _GetFileSizeWithUrl; + fn_ParseThunderPrivateUrl _ParseThunderPrivateUrl; + fn_SetAdditionInfo _SetAdditionInfo; + fn_SetFileIdAndSize _SetFileIdAndSize; + }; +} + +#endif // __GTC_THUNDERWRAPPER__ \ No newline at end of file diff --git a/liebao_Thunder_Cloud/xldl.dll b/liebao_Thunder_Cloud/xldl.dll new file mode 100644 index 0000000..542f288 Binary files /dev/null and b/liebao_Thunder_Cloud/xldl.dll differ diff --git a/xiaomi_Thunder_Cloud/LICENSE b/xiaomi_Thunder_Cloud/LICENSE new file mode 100644 index 0000000..de14e49 --- /dev/null +++ b/xiaomi_Thunder_Cloud/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Himmelt + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/xiaomi_Thunder_Cloud/README.md b/xiaomi_Thunder_Cloud/README.md new file mode 100644 index 0000000..45e00d2 --- /dev/null +++ b/xiaomi_Thunder_Cloud/README.md @@ -0,0 +1,2 @@ +# ThunderOpenSDK +ThunderOpenSDK diff --git a/xiaomi_Thunder_Cloud/changelog.txt b/xiaomi_Thunder_Cloud/changelog.txt new file mode 100644 index 0000000..3614943 --- /dev/null +++ b/xiaomi_Thunder_Cloud/changelog.txt @@ -0,0 +1,6 @@ +2014-05-15 +更新日志: +1.调整原始资源废弃策略 +2.增加对raw deflate压缩格式的支持 +3.增加浏览器模式 + diff --git a/xiaomi_Thunder_Cloud/download-complete.wav b/xiaomi_Thunder_Cloud/download-complete.wav new file mode 100644 index 0000000..990d07c Binary files /dev/null and b/xiaomi_Thunder_Cloud/download-complete.wav differ diff --git a/xiaomi_Thunder_Cloud/download/MiniThunderPlatform.exe b/xiaomi_Thunder_Cloud/download/MiniThunderPlatform.exe new file mode 100644 index 0000000..ab7df25 Binary files /dev/null and b/xiaomi_Thunder_Cloud/download/MiniThunderPlatform.exe differ diff --git a/xiaomi_Thunder_Cloud/download/XLBugHandler.dll b/xiaomi_Thunder_Cloud/download/XLBugHandler.dll new file mode 100644 index 0000000..26b4529 Binary files /dev/null and b/xiaomi_Thunder_Cloud/download/XLBugHandler.dll differ diff --git a/xiaomi_Thunder_Cloud/download/XLBugReport.exe b/xiaomi_Thunder_Cloud/download/XLBugReport.exe new file mode 100644 index 0000000..4417dab Binary files /dev/null and b/xiaomi_Thunder_Cloud/download/XLBugReport.exe differ diff --git a/xiaomi_Thunder_Cloud/download/atl71.dll b/xiaomi_Thunder_Cloud/download/atl71.dll new file mode 100644 index 0000000..66f9cf7 Binary files /dev/null and b/xiaomi_Thunder_Cloud/download/atl71.dll differ diff --git a/xiaomi_Thunder_Cloud/download/dl_peer_id.dll b/xiaomi_Thunder_Cloud/download/dl_peer_id.dll new file mode 100644 index 0000000..8b28b17 Binary files /dev/null and b/xiaomi_Thunder_Cloud/download/dl_peer_id.dll differ diff --git a/xiaomi_Thunder_Cloud/download/download_engine.dll b/xiaomi_Thunder_Cloud/download/download_engine.dll new file mode 100644 index 0000000..3e22c24 Binary files /dev/null and b/xiaomi_Thunder_Cloud/download/download_engine.dll differ diff --git a/xiaomi_Thunder_Cloud/download/id.dat b/xiaomi_Thunder_Cloud/download/id.dat new file mode 100644 index 0000000..a926eb4 --- /dev/null +++ b/xiaomi_Thunder_Cloud/download/id.dat @@ -0,0 +1,4 @@ +[partner] +id = 80000054 +ver = 3.2.1.48 + diff --git a/xiaomi_Thunder_Cloud/download/minizip.dll b/xiaomi_Thunder_Cloud/download/minizip.dll new file mode 100644 index 0000000..0040849 Binary files /dev/null and b/xiaomi_Thunder_Cloud/download/minizip.dll differ diff --git a/xiaomi_Thunder_Cloud/download/msvcp71.dll b/xiaomi_Thunder_Cloud/download/msvcp71.dll new file mode 100644 index 0000000..5f1a87b Binary files /dev/null and b/xiaomi_Thunder_Cloud/download/msvcp71.dll differ diff --git a/xiaomi_Thunder_Cloud/download/msvcr71.dll b/xiaomi_Thunder_Cloud/download/msvcr71.dll new file mode 100644 index 0000000..b50a30d Binary files /dev/null and b/xiaomi_Thunder_Cloud/download/msvcr71.dll differ diff --git a/xiaomi_Thunder_Cloud/download/zlib1.dll b/xiaomi_Thunder_Cloud/download/zlib1.dll new file mode 100644 index 0000000..8c3f7e1 Binary files /dev/null and b/xiaomi_Thunder_Cloud/download/zlib1.dll differ diff --git a/xiaomi_Thunder_Cloud/version.data b/xiaomi_Thunder_Cloud/version.data new file mode 100644 index 0000000..fd7130d --- /dev/null +++ b/xiaomi_Thunder_Cloud/version.data @@ -0,0 +1 @@ +1.2.141023.7z \ No newline at end of file diff --git a/xiaomi_Thunder_Cloud/xldl.dll b/xiaomi_Thunder_Cloud/xldl.dll new file mode 100644 index 0000000..605ae5b Binary files /dev/null and b/xiaomi_Thunder_Cloud/xldl.dll differ diff --git a/xiaomi_Thunder_Cloud/xldl.h b/xiaomi_Thunder_Cloud/xldl.h new file mode 100644 index 0000000..3a21826 --- /dev/null +++ b/xiaomi_Thunder_Cloud/xldl.h @@ -0,0 +1,159 @@ +#pragma once + +// нṹ嶨尴1ֽڶ +#pragma pack(push, 1) +struct DownTaskParam +{ + DownTaskParam() + { + memset(this, 0, sizeof(DownTaskParam)); + nReserved1 = 5; + bReserved = FALSE; + DisableAutoRename = FALSE; + IsOnlyOriginal = FALSE; + IsResume = TRUE; + } + int nReserved; + wchar_t szTaskUrl[2084]; // URL + wchar_t szRefUrl[2084]; // ҳ + wchar_t szCookies[4096]; // cookie + wchar_t szFilename[MAX_PATH]; // رļ. + wchar_t szReserved0[MAX_PATH]; + wchar_t szSavePath[MAX_PATH]; // ļĿ¼ + HWND hReserved; + BOOL bReserved; + wchar_t szReserved1[64]; + wchar_t szReserved2[64]; + BOOL IsOnlyOriginal; // Ƿֻԭʼַ + UINT nReserved1; + BOOL DisableAutoRename; // ֹ + BOOL IsResume; // Ƿ + DWORD reserved[2048]; +}; +enum DOWN_TASK_STATUS +{ + NOITEM = 0, + TSC_ERROR, + TSC_PAUSE, + TSC_DOWNLOAD, + TSC_COMPLETE, + TSC_STARTPENDING, + TSC_STOPPENDING +}; +enum TASK_ERROR_TYPE +{ + TASK_ERROR_UNKNOWN = 0x00, // δ֪ + TASK_ERROR_DISK_CREATE = 0x01, // ļʧ + TASK_ERROR_DISK_WRITE = 0x02, // дļʧ + TASK_ERROR_DISK_READ = 0x03, // ļʧ + TASK_ERROR_DISK_RENAME = 0x04, // ʧ + TASK_ERROR_DISK_PIECEHASH = 0x05, // ļƬУʧ + TASK_ERROR_DISK_FILEHASH = 0x06, // ļȫУʧ + TASK_ERROR_DISK_DELETE = 0x07, // ɾļʧʧ + TASK_ERROR_DOWN_INVALID = 0x10, // ЧDOWNַ + TASK_ERROR_PROXY_AUTH_TYPE_UNKOWN = 0x20, // δ֪ + TASK_ERROR_PROXY_AUTH_TYPE_FAILED = 0x21, // ֤ʧ + TASK_ERROR_HTTPMGR_NOT_IP = 0x30, // httpip + TASK_ERROR_TIMEOUT = 0x40, // ʱ + TASK_ERROR_CANCEL = 0x41, // ȡ + TASK_ERROR_TP_CRASHED= 0x42, // MINITP + TASK_ERROR_ID_INVALID = 0x43, // TaskId Ƿ +}; +struct DownTaskInfo +{ + DownTaskInfo() + { + memset(this, 0, sizeof(DownTaskInfo)); + stat = TSC_PAUSE; + fail_code = TASK_ERROR_UNKNOWN; + fPercent = 0; + bIsOriginUsable = false; + fHashPercent = 0; + } + DOWN_TASK_STATUS stat; + TASK_ERROR_TYPE fail_code; + wchar_t szFilename[MAX_PATH]; + wchar_t szReserved0[MAX_PATH]; + __int64 nTotalSize; // ܴС(ֽ) + __int64 nTotalDownload; // Чֽ(ܴڻ˵) + float fPercent; // ؽ + int nReserved0; + int nSrcTotal; // Դ + int nSrcUsing; // Դ + int nReserved1; + int nReserved2; + int nReserved3; + int nReserved4; + __int64 nReserved5; + __int64 nDonationP2P; // p2pֽ + __int64 nReserved6; + __int64 nDonationOrgin; // ԭʼԴֽ + __int64 nDonationP2S; // Դֽ + __int64 nReserved7; + __int64 nReserved8; + int nSpeed; // ʱٶ(ֽ/) + int nSpeedP2S; // ʱٶ(ֽ/) + int nSpeedP2P; // ʱٶ(ֽ/) + bool bIsOriginUsable; // ԭʼԴǷЧ + float fHashPercent; // ֲṩֵ + int IsCreatingFile; // Ƿڴļ + DWORD reserved[64]; +}; +enum DOWN_PROXY_TYPE +{ + PROXY_TYPE_IE = 0, + PROXY_TYPE_HTTP = 1, + PROXY_TYPE_SOCK4 = 2, + PROXY_TYPE_SOCK5 = 3, + PROXY_TYPE_FTP = 4, + PROXY_TYPE_UNKOWN = 255, +}; +enum DOWN_PROXY_AUTH_TYPE +{ + PROXY_AUTH_NONE =0, + PROXY_AUTH_AUTO, + PROXY_AUTH_BASE64, + PROXY_AUTH_NTLM, + PROXY_AUTH_DEGEST, + PROXY_AUTH_UNKOWN, +}; +struct DOWN_PROXY_INFO +{ + BOOL bIEProxy; + BOOL bProxy; + DOWN_PROXY_TYPE stPType; + DOWN_PROXY_AUTH_TYPE stAType; + wchar_t szHost[2048]; + INT32 nPort; + wchar_t szUser[50]; + wchar_t szPwd[50]; + wchar_t szDomain[2048]; +}; +struct WSAPROTOCOL_INFOW; + +#pragma pack(pop) + +namespace DownEngine +{ + extern "C" __declspec(dllimport) BOOL XL_Init(void); + extern "C" __declspec(dllimport) BOOL XL_UnInit(void); + extern "C" __declspec(dllimport) HANDLE XL_CreateTask(DownTaskParam &stParam); + extern "C" __declspec(dllimport) BOOL XL_DeleteTask(HANDLE hTask); + extern "C" __declspec(dllimport) BOOL XL_StartTask(HANDLE hTask); + extern "C" __declspec(dllimport) BOOL XL_StopTask(HANDLE hTask); + extern "C" __declspec(dllimport) BOOL XL_ForceStopTask(HANDLE hTask); + extern "C" __declspec(dllimport) BOOL XL_QueryTaskInfo(HANDLE hTask, DownTaskInfo & stTaskInfo); //ɰӿڣʹExӿ滻 + extern "C" __declspec(dllimport) BOOL XL_QueryTaskInfoEx(HANDLE hTask, DownTaskInfo & stTaskInfo); + extern "C" __declspec(dllimport) BOOL XL_DelTempFile(DownTaskParam &stParam); + extern "C" __declspec(dllimport) void XL_SetSpeedLimit(INT32 nKBps); + extern "C" __declspec(dllimport) void XL_SetUploadSpeedLimit(INT32 nTcpKBps,INT32 nOtherKBps); + extern "C" __declspec(dllimport) BOOL XL_SetProxy(DOWN_PROXY_INFO &stProxyInfo); + extern "C" __declspec(dllimport) void XL_SetUserAgent(const wchar_t *pszUserAgent); + extern "C" __declspec(dllimport) BOOL XL_ParseThunderPrivateUrl(const wchar_t *pszThunderUrl, wchar_t *normalUrlBuffer, INT32 bufferLen); + extern "C" __declspec(dllimport) BOOL XL_GetFileSizeWithUrl(const wchar_t * lpURL, INT64& iFileSize); + extern "C" __declspec(dllimport) BOOL XL_SetFileIdAndSize(HANDLE hTask, char szFileId[40], unsigned __int64 nFileSize); + extern "C" __declspec(dllimport) BOOL XL_SetAdditionInfo( HANDLE task_id, WSAPROTOCOL_INFOW *sock_info, CHAR *http_resp_buf, LONG buf_len ); + extern "C" __declspec(dllimport) HANDLE XL_CreateTaskByURL(const wchar_t *url, const wchar_t *path, const wchar_t *fileName, BOOL IsResume); + extern "C" __declspec(dllimport) LONG XL_CreateTaskByThunder(wchar_t *pszUrl, wchar_t *pszFileName, wchar_t *pszReferUrl, wchar_t *pszCharSet, wchar_t *pszCookie); + extern "C" __declspec(dllimport) LONG XL_CreateBTTaskByThunder(const wchar_t *pszPath); +};