⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ileaddownloaderdll.cpp

📁 个人封装的一个VC++支持多任务、多线程断点续传的DLL组件
💻 CPP
字号:

// ileadsoft gd 2008-7-22
// 多任务多线程断点下载DLL

#include "stdafx.h"
#include "iLeadDownloaderDll.h"

#include "DownloadCntl.h"

CDownloadCntl *g_pDownloadCntl = NULL;

extern "C" int iLeadDownloaderInit(HWND hWnd_RecvLogMsg);
extern "C" void iLeadDownloaderEnd();

extern "C" int iLeadDownloaderGetTaskNum();
extern "C" int iLeadDownloaderAddTask( char *pszUrl, char *pszSavePath, char *pszSaveFileName, int nThreadNum );
extern "C" int iLeadDownloaderSelTask( int nPos );

extern "C" int iLeadDownloaderRemoveTask();

extern "C" int iLeadDownloaderQueryState( int nPos, 
									      int &nFileTotaleSize, 
					   				      int &nTotalDownloadedSize,
									      int &nTotalDownloadedSize_ThisTimes,
									      int &nDownloadElapsedTime ); 

ILEADDOWNLOADDLL_API int iLeadDownloaderInit(HWND hWnd_RecvLogMsg)
{
	if( g_pDownloadCntl )
		return -1;

	g_pDownloadCntl = new CDownloadCntl;

	Set_RecvLogMsgHwnd ( hWnd_RecvLogMsg );
	Log ( L_VERBOSE, "\r\n%s", NOTE_DownloadMTR );

	return 1;
}

ILEADDOWNLOADDLL_API void iLeadDownloaderEnd()
{
	if( g_pDownloadCntl )
	{
		delete g_pDownloadCntl;
		g_pDownloadCntl = NULL;
	}
}

ILEADDOWNLOADDLL_API int iLeadDownloaderGetTaskNum()
{
	if( NULL == g_pDownloadCntl )
		return -1;

	return g_pDownloadCntl->GetTaskNum();
}

ILEADDOWNLOADDLL_API int iLeadDownloaderAddTask( char *pszUrl, char *pszSavePath, char *pszSaveFileName, int nThreadNum )
{
	if( NULL == g_pDownloadCntl )
		return -1;

	return g_pDownloadCntl->AddTask( pszUrl, pszSavePath, pszSaveFileName, nThreadNum );
}

ILEADDOWNLOADDLL_API int iLeadDownloaderSelTask( int nPos )
{
	if( NULL == g_pDownloadCntl )
		return -1;

	return g_pDownloadCntl->SelTask( nPos );
}

ILEADDOWNLOADDLL_API int iLeadDownloaderRemoveTask()
{
	if( NULL == g_pDownloadCntl )
		return -1;

	return g_pDownloadCntl->RemoveTask();
}

ILEADDOWNLOADDLL_API int iLeadDownloaderQueryState( int nPos, 
												    int &nFileTotaleSize, 
												    int &nTotalDownloadedSize,
												    int &nTotalDownloadedSize_ThisTimes,
												    int &nDownloadElapsedTime )
{
	if( NULL == g_pDownloadCntl )
		return -1;

	return g_pDownloadCntl->QueryState( nPos, nFileTotaleSize, nTotalDownloadedSize, nTotalDownloadedSize_ThisTimes, nDownloadElapsedTime );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -