mirror of
https://github.com/netfun2000/ThunderOpenSDK.git
synced 2026-02-27 09:54:20 +08:00
更新自用SDK
This commit is contained in:
135
0.CurUseCommonLib/DownWrapper.cpp
Normal file
135
0.CurUseCommonLib/DownWrapper.cpp
Normal file
@@ -0,0 +1,135 @@
|
||||
#include "DownWrapper.h"
|
||||
|
||||
namespace DownEngine
|
||||
{
|
||||
|
||||
CDownWrapper::CDownWrapper(LPCWSTR sPath)
|
||||
{
|
||||
m_hModule = LoadLibraryW(sPath);
|
||||
if (m_hModule == NULL)
|
||||
{
|
||||
throw L"can not load xldl.dll";
|
||||
}
|
||||
WCHAR szModulePath[MAX_PATH] = { 0 };
|
||||
GetModuleFileNameW(NULL, szModulePath, MAX_PATH);
|
||||
PathRemoveFileSpecW(szModulePath); // 拆分路径 新版使用PathCchRemoveFileSpec
|
||||
|
||||
WCHAR szDllpath[MAX_PATH] = { 0 };
|
||||
PathCombineW(szDllpath, szModulePath, L"xldl.dll"); // 连接路径, 新版建议使用 PathCchCombine
|
||||
m_Init = (fn_Init) GetProcAddress(m_hModule, "XL_Init");
|
||||
m_UnInit = (fn_UnInit) GetProcAddress(m_hModule, "XL_UnInit");
|
||||
m_TaskCreate = (fn_TaskCreate) GetProcAddress(m_hModule, "XL_CreateTask");
|
||||
m_TaskDelete = (fn_TaskDelete) GetProcAddress(m_hModule, "XL_DeleteTask");
|
||||
m_TaskStart = (fn_TaskStart) GetProcAddress(m_hModule, "XL_StartTask");
|
||||
m_TaskStop = (fn_TaskStop) GetProcAddress(m_hModule, "XL_StopTask");
|
||||
m_ForceStopTask = (fn_ForceStopTask) GetProcAddress(m_hModule, "XL_ForceStopTask");
|
||||
m_QueryTaskInfo = (fn_QueryTaskInfo) GetProcAddress(m_hModule, "XL_QueryTaskInfo");
|
||||
m_QueryTaskInfoEx = (fn_QueryTaskInfoEx) GetProcAddress(m_hModule, "XL_QueryTaskInfoEx");
|
||||
m_DelTempFile = (fn_DelTempFile) GetProcAddress(m_hModule, "XL_DelTempFile");
|
||||
m_SetSpeedLimit = (fn_SetSpeedLimit) GetProcAddress(m_hModule, "XL_SetSpeedLimit");
|
||||
m_SetUploadSpeedLimit = (fn_SetUploadSpeedLimit) GetProcAddress(m_hModule, "XL_SetUploadSpeedLimit");
|
||||
m_SetProxy = (fn_SetProxy) GetProcAddress(m_hModule, "XL_SetProxy");
|
||||
m_SetUserAgent = (fn_SetUserAgent) GetProcAddress(m_hModule, "XL_SetUserAgent");
|
||||
m_ParseThunderPrivateUrl = (fn_ParseThunderPrivateUrl) GetProcAddress(m_hModule, "XL_ParseThunderPrivateUrl");
|
||||
m_GetFileSizeWithUrl = (fn_GetFileSizeWithUrl) GetProcAddress(m_hModule, "XL_GetFileSizeWithUrl");
|
||||
m_SetFileIdAndSize = (fn_SetFileIdAndSize) GetProcAddress(m_hModule, "XL_SetFileIdAndSize");
|
||||
m_SetAdditionInfo = (fn_SetAdditionInfo) GetProcAddress(m_hModule, "XL_SetAdditionInfo");
|
||||
m_CreateTaskByURL = (fn_CreateTaskByURL) GetProcAddress(m_hModule, "XL_CreateTaskByURL");
|
||||
m_CreateTaskByThunder = (fn_CreateTaskByThunder) GetProcAddress(m_hModule, "XL_CreateTaskByThunder");
|
||||
m_CreateBTTaskByThunder = (fn_CreateBTTaskByThunder) GetProcAddress(m_hModule, "XL_CreateBTTaskByThunder");
|
||||
}
|
||||
|
||||
CDownWrapper::~CDownWrapper()
|
||||
{
|
||||
if (m_hModule)
|
||||
{
|
||||
FreeLibrary(m_hModule);
|
||||
}
|
||||
}
|
||||
|
||||
HANDLE CDownWrapper::TaskCreate(DownTaskParam ¶m)
|
||||
{
|
||||
CHECKFUNC(m_TaskCreate, NULL); return m_TaskCreate(param);
|
||||
}
|
||||
BOOL CDownWrapper::TaskDelete(HANDLE hTask)
|
||||
{
|
||||
CHECKFUNC(m_TaskDelete, FALSE); return m_TaskDelete(hTask);
|
||||
}
|
||||
BOOL CDownWrapper::TaskStart(HANDLE hTask)
|
||||
{
|
||||
CHECKFUNC(m_TaskStart, FALSE); return m_TaskStart(hTask);
|
||||
}
|
||||
BOOL CDownWrapper::TaskStop(HANDLE hTask)
|
||||
{
|
||||
CHECKFUNC(m_TaskStop, FALSE); return m_TaskStop(hTask);
|
||||
}
|
||||
BOOL CDownWrapper::TaskForceStop(HANDLE hTask)
|
||||
{
|
||||
CHECKFUNC(m_ForceStopTask, FALSE); return m_ForceStopTask(hTask);
|
||||
}
|
||||
BOOL CDownWrapper::TaskQueryInfo(HANDLE hTask, DownTaskInfo & stTaskInfo)
|
||||
{
|
||||
CHECKFUNC(m_QueryTaskInfo, FALSE); return m_QueryTaskInfo(hTask, stTaskInfo);
|
||||
}
|
||||
BOOL CDownWrapper::TaskQueryInfoEx(HANDLE hTask, DownTaskInfo & stTaskInfo)
|
||||
{
|
||||
CHECKFUNC(m_QueryTaskInfoEx, FALSE); return m_QueryTaskInfoEx(hTask, stTaskInfo);
|
||||
}
|
||||
BOOL CDownWrapper::DelTempFile(DownTaskParam &stParam)
|
||||
{
|
||||
CHECKFUNC(m_DelTempFile, FALSE); return m_DelTempFile(stParam);
|
||||
}
|
||||
void CDownWrapper::SetSpeedLimit(INT32 nBps)
|
||||
{
|
||||
CHECKFUNC_(m_SetSpeedLimit); m_SetSpeedLimit(nBps);
|
||||
}
|
||||
void CDownWrapper::SetUploadSpeedLimit(INT32 nTcpBps, INT32 nOtherBps)
|
||||
{
|
||||
CHECKFUNC_(m_SetUploadSpeedLimit); m_SetUploadSpeedLimit(nTcpBps, nOtherBps);
|
||||
}
|
||||
BOOL CDownWrapper::SetProxy(DOWN_PROXY_INFO &stProxyInfo)
|
||||
{
|
||||
CHECKFUNC(m_SetProxy, FALSE); return m_SetProxy(stProxyInfo);
|
||||
}
|
||||
void CDownWrapper::SetUserAgent(const wchar_t *pszUserAgent)
|
||||
{
|
||||
CHECKFUNC_(m_SetUserAgent); m_SetUserAgent(pszUserAgent);
|
||||
}
|
||||
BOOL CDownWrapper::ParseThunderPrivateUrl(const wchar_t *pszThunderUrl, wchar_t *normalUrlBuffer, INT32 bufferLen)
|
||||
{
|
||||
CHECKFUNC(m_ParseThunderPrivateUrl, FALSE); return m_ParseThunderPrivateUrl(pszThunderUrl, normalUrlBuffer, bufferLen);
|
||||
}
|
||||
BOOL CDownWrapper::GetFileSizeWithUrl(const wchar_t * lpURL, INT64& iFileSize)
|
||||
{
|
||||
CHECKFUNC(m_GetFileSizeWithUrl, FALSE); return m_GetFileSizeWithUrl(lpURL, iFileSize);
|
||||
}
|
||||
BOOL CDownWrapper::SetFileIdAndSize(HANDLE hTask, char szFileId[40], unsigned __int64 nFileSize)
|
||||
{
|
||||
CHECKFUNC(m_SetFileIdAndSize, FALSE); return m_SetFileIdAndSize(hTask, szFileId, nFileSize);
|
||||
}
|
||||
BOOL CDownWrapper::SetAdditionInfo(HANDLE task_id, WSAPROTOCOL_INFOW *sock_info, CHAR *http_resp_buf, LONG buf_len)
|
||||
{
|
||||
CHECKFUNC(m_SetAdditionInfo, FALSE); return m_SetAdditionInfo(task_id, sock_info, http_resp_buf, buf_len);
|
||||
}
|
||||
HANDLE CDownWrapper::CreateTaskByURL(const wchar_t *url, const wchar_t *path, const wchar_t *fileName, BOOL IsResume)
|
||||
{
|
||||
CHECKFUNC(m_CreateTaskByURL, FALSE); return m_CreateTaskByURL(url, path, fileName, IsResume);
|
||||
}
|
||||
LONG CDownWrapper::CreateTaskByThunder(wchar_t *pszUrl, wchar_t *pszFileName, wchar_t *pszReferUrl, wchar_t *pszCharSet, wchar_t *pszCookie)
|
||||
{
|
||||
CHECKFUNC(m_CreateTaskByThunder, FALSE); return m_CreateTaskByThunder(pszUrl, pszFileName, pszReferUrl, pszCharSet, pszCookie);
|
||||
}
|
||||
LONG CDownWrapper::CreateBTTaskByThunder(const wchar_t *pszPath)
|
||||
{
|
||||
CHECKFUNC(m_CreateBTTaskByThunder, FALSE); return m_CreateBTTaskByThunder(pszPath);
|
||||
}
|
||||
DownTaskParam CDownWrapper::CreateDownTaskParam(const wchar_t TaskUrl[], const wchar_t Filename[], const wchar_t SavePath[], BOOL IsResume, BOOL IsOnlyOriginal, BOOL DisableAutoRename)
|
||||
{
|
||||
DownTaskParam TaskParam;
|
||||
TaskParam.DisableAutoRename = FALSE;
|
||||
StrCpyW(TaskParam.szTaskUrl, TaskUrl);
|
||||
StrCpyW(TaskParam.szFilename, Filename);
|
||||
StrCpyW(TaskParam.szSavePath, SavePath);
|
||||
return TaskParam;
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user