Exemplo n.º 1
0
void CDetailInfo::UpdateRssItem(CRssFeed::Item* pItem)
{
	m_ListDetail.DeleteAllItems();
	if(NULL == pItem)
		return;
	int	iItem = 0;
	CString	str;
	str = pItem->m_strFilename;
	m_ListDetail.InsertItem(iItem, GetResString(IDS_RSSTEXT_RES));
	m_ListDetail.SetItemText(iItem, 1, str);
	iItem++;

	CED2KFileLink * pFileLink = CreateFileLinkFromUrl(pItem->m_strEnclosure);
	if (pFileLink)
	{
		str = CmdFuncs::GetFileSizeDisplayStr(pFileLink->GetSize());
		m_ListDetail.InsertItem(iItem, GetResString(IDS_DL_SIZE));
		m_ListDetail.SetItemText(iItem, 1, str);
		iItem++;
		delete pFileLink;
	}

	str = pItem->m_strEnclosure;
	m_ListDetail.InsertItem(iItem,GetResString(IDS_URL_LINK));
	m_ListDetail.SetItemText(iItem,1,str);
	iItem++;
}
Exemplo n.º 2
0
bool CCollectionFile::InitFromLink(CString sLink)
{
	CED2KLink* pLink = NULL;
	CED2KFileLink* pFileLink = NULL;
	try 
	{
		pLink = CED2KLink::CreateLinkFromUrl(sLink);
		if(!pLink)
			throw GetResString(IDS_ERR_NOTAFILELINK);
		pFileLink = pLink->GetFileLink();
		if (!pFileLink)
			throw GetResString(IDS_ERR_NOTAFILELINK);
	} 
	catch (CString error) 
	{
		CString strBuffer;
		strBuffer.Format(GetResString(IDS_ERR_INVALIDLINK),error);
		LogError(LOG_STATUSBAR, GetResString(IDS_ERR_LINKERROR), strBuffer);
		return false;
	}

	taglist.Add(new CTag(FT_FILEHASH, pFileLink->GetHashKey()));
	md4cpy(m_abyFileHash, pFileLink->GetHashKey());

	taglist.Add(new CTag(FT_FILESIZE, pFileLink->GetSize()));
	SetFileSize(pFileLink->GetSize());

	taglist.Add(new CTag(FT_FILENAME, pFileLink->GetName()));
	SetFileName(pFileLink->GetName(), false, false);

	delete pLink;
	return true;
}
Exemplo n.º 3
0
void CDlgAddTask::AddNewTask(LPCTSTR lpszLink, int cat)
{
	CED2KFileLink			*pLink = NULL;
	CFileHashKey			key;
	CAddTaskDoc::SItem		item;

	pLink = CreateFileLinkFromUrl(lpszLink);
	if (NULL != pLink)
	{
		key = pLink->GetHashKey();
		item.strLinkText = lpszLink;
		item.bCheck = TRUE;
		item.iCategory = cat;
		GetInstance()->AddTask(key, item);

		SAFE_DELETE(pLink);
	}
}
Exemplo n.º 4
0
BOOL CDlgAddTask::ApplyDocToTaskMgr(LPCTSTR lpszLocation, BOOL & bFeedAdded, BOOL bAutoDown)
{
	// MODIFIED by VC-yavey on 2010-04-16	<begin>
	// 处理RSS订阅url
	bFeedAdded = FALSE;
	//CAddTaskDoc::RssUrlSet & setRssUrl = m_doc.GetRssUrlSet();
	CString	strCurLoc;
	m_cmbLocation.GetWindowText(strCurLoc);
	if ( !PathFileExists(strCurLoc) )
	{
		strCurLoc.Empty();
	}

	/*for ( CAddTaskDoc::RssUrlSet::const_iterator it = setRssUrl.begin();
		  it != setRssUrl.end();
		  ++it
		)
	{
 		TRACE(TEXT("\nRssUrlSet str %s\n"), *it);	
	}*/

	set<CRssFeed*>& setLastRssFeed = m_editLinks.GetLastRssFeedSet();
	for (set<CRssFeed*>::iterator it = setLastRssFeed.begin(); it != setLastRssFeed.end(); ++it )
	{
		//TRACE(TEXT("m_editLinks.m_setLastRssfee str %s\n"), (*it)->m_strFeedUrl);
		CGlobalVariable::s_wndRssCtrl->AddFeed(*it, strCurLoc, bAutoDown);
		bFeedAdded = TRUE;
	}
	// MODIFIED by VC-yavey on 2010-04-16	<end>


	//	ed2k tasks	<begin>
	const map<CFileHashKey, CAddTaskDoc::SItem>			*pMap;
	map<CFileHashKey, CAddTaskDoc::SItem>::const_iterator		it;

	CArray<SSpDownLink*, SSpDownLink*>	arrSpDownLinks;		//special download links
	CArray<SSpDownLink*, SSpDownLink*>	arrDowningLinks;	//downloading links
	CArray<SSpDownLink*, SSpDownLink*>	arrReDownLinks;		//ask whether redownload links
	CArray<SSpDownLink*, SSpDownLink*>	arrTooBigDownLinks;
	int	iState;
	CString strFileName;

	pMap = m_doc.GetData();
	for (it = pMap->begin();
		it != pMap->end();
		it++)
	{
		if (it->second.bCheck)
		{
			CED2KFileLink	*pLink = NULL;
			// MODIFIED by VC-yavey on 2010-04-16 : 安全地创建filelink
			pLink = CreateFileLinkFromUrl(it->second.strLinkText);
			if( pLink && pLink->GetSize()> OLD_MAX_EMULE_FILE_SIZE && !thePrefs.CanFSHandleLargeFiles(lpszLocation))
			{
				strFileName = CGlobalVariable::filemgr.GetFileName(it->second.strLinkText);
				SSpDownLink*	psdl = new SSpDownLink;
				psdl->iLinkType = 0;
				psdl->strLink = it->second.strLinkText;
				psdl->iCat = it->second.iCategory;
				psdl->strName = strFileName;
				arrTooBigDownLinks.Add(psdl);
				continue;
			}
			SAFE_DELETE(pLink);

			iState = CGlobalVariable::filemgr.GetFileState(it->second.strLinkText); 
			switch (iState)
			{
			case FILESTATE_DOWNLOADING:
				{
					strFileName = CGlobalVariable::filemgr.GetFileName(it->second.strLinkText);
					SSpDownLink*	psdl = new SSpDownLink;
					psdl->iLinkType = 0;
					psdl->strLink = it->second.strLinkText;
					psdl->iCat = it->second.iCategory;
					psdl->iState = iState;
					psdl->strName = strFileName;
					arrDowningLinks.Add(psdl);					
				}
				break;
			case FILESTATE_COMPLETED:
			case FILESTATE_HASH:
			case FILESTATE_DOWNLOADED_SHARE:
			case FILESTATE_LOCAL_SHARE:
			case FILESTATE_SHARE_TASK_DELED:
				{
					strFileName = CGlobalVariable::filemgr.GetFileName(it->second.strLinkText);
					SSpDownLink*	psdl = new SSpDownLink;
					psdl->iLinkType = 0;
					psdl->strLink = it->second.strLinkText;
					psdl->iCat = it->second.iCategory;
					psdl->iState = iState;
					psdl->strName = strFileName;
					arrSpDownLinks.Add(psdl);
				}
				break;
			case FILESTATE_DELETED:
				{
					strFileName = CGlobalVariable::filemgr.GetFileName(it->second.strLinkText);
					SSpDownLink*	psdl = new SSpDownLink;
					psdl->iLinkType = 0;
					psdl->strLink = it->second.strLinkText;
					psdl->iCat = it->second.iCategory;
					psdl->iState = iState;
					psdl->strName = strFileName;
					arrReDownLinks.Add(psdl);
				}
				break;
			default:
				CGlobalVariable::filemgr.NewDownloadFile(it->second.strLinkText, lpszLocation, it->second.iCategory);
				break;
			}
		}
	}
	//	ed2k tasks	<end>

	//	Url tasks	<begin>
	CString			strUrl;
	BOOL			bCheck;

	const CMapStringToPtr*	pUrlData = m_doc.GetUrlData();
	POSITION	pos = pUrlData->GetStartPosition();
	
	while (NULL != pos)
	{
		pUrlData->GetNextAssoc(pos, strUrl, (void*&)bCheck);
        
		strUrl.Trim();

		if( _tcsrchr((LPCTSTR)strUrl+7,_T('/'))==NULL )
			strUrl += _T('/');
/*
		int len=strUrl.GetLength();
		bool state=false;

		int index = strUrl.Find(_T("//"),0);
		for(int i = index + 2;i < len;i++)
		{
			if(strUrl[i] == _T('/'))
			{
				state = true;
				break;
			}
		}
		if(state ==false)
			  strUrl+='/';*/

		if (bCheck)
		{   
			iState = CGlobalVariable::filemgr.GetUrlTaskState(strUrl); //< 统一转换后再判断,避免实际是重复的Url
			switch (iState)
			{
			case FILESTATE_DOWNLOADING:   
				{
					strFileName = CGlobalVariable::filemgr.GetUrlFileName(strUrl);
					SSpDownLink*	psdl = new SSpDownLink;
					psdl->iLinkType = 1;
					psdl->strLink = strUrl;
					psdl->iCat = 0;
					psdl->iState = iState;
					psdl->strName = strFileName;
					arrDowningLinks.Add(psdl);
				}
				break;
			case FILESTATE_COMPLETED:
			case FILESTATE_HASH:
			case FILESTATE_LOCAL_SHARE:
				{
					strFileName = CGlobalVariable::filemgr.GetUrlFileName(strUrl);
					SSpDownLink*	psdl = new SSpDownLink;
					psdl->iLinkType = 1;
					psdl->strLink = strUrl;
					psdl->iCat = 0;
					psdl->iState = iState;
					psdl->strName = strFileName;
					arrSpDownLinks.Add(psdl);
				}
				break;
			case FILESTATE_DOWNLOADED_SHARE:
			case FILESTATE_SHARE_TASK_DELED:
			case FILESTATE_DELETED: 
			case FILESTATE_ZEROSIZE_DOWNLOADED:
				{
					strFileName = CGlobalVariable::filemgr.GetUrlFileName(strUrl);
					SSpDownLink*	psdl = new SSpDownLink;
					psdl->iLinkType = 1;
					psdl->strLink = strUrl;
					psdl->iCat = 0;
					psdl->iState = iState;
					psdl->strName = strFileName;
					arrReDownLinks.Add(psdl);
				}
				break;
			default:
				CmdFuncs::ActualllyAddUrlDownload(strUrl,lpszLocation);
				break;
			}
		}
	}
	//	URL tasks	<end>

	int i;

	CString strPrompt;

	if (!arrSpDownLinks.IsEmpty()) 
	{
		strPrompt = GetResString(IDS_ALREADY_DOWNLOAD);

		for (i = 0; i < arrSpDownLinks.GetCount(); i++)
		{
			if(arrSpDownLinks[i]->iLinkType==1)
				strPrompt += arrSpDownLinks[i]->strLink;
			else
				strPrompt += arrSpDownLinks[i]->strName;
			strPrompt += _T("\n");
		}
		
		for (i = 0; i < arrSpDownLinks.GetCount(); i++)
			delete arrSpDownLinks[i];
		arrSpDownLinks.RemoveAll();
	}
	
	UINT iTooBigDownLinks = 0;
	if (!arrTooBigDownLinks.IsEmpty()) 
	{
		iTooBigDownLinks =arrTooBigDownLinks.GetCount();
		if (!strPrompt.IsEmpty())
			strPrompt += _T("\n\n");
		strPrompt = GetResString(IDS_ERR_FSCANTHANDLEFILE);
		strPrompt += _T("\n");

		for (i = 0; i < arrTooBigDownLinks.GetCount(); i++)
		{
			if(arrTooBigDownLinks[i]->iLinkType==1)
				strPrompt += arrTooBigDownLinks[i]->strLink;
			else
				strPrompt += arrTooBigDownLinks[i]->strName;
			strPrompt += _T("\n");
		}

		for (i = 0; i < arrTooBigDownLinks.GetCount(); i++)
			delete arrTooBigDownLinks[i];
		arrTooBigDownLinks.RemoveAll();
	}

	if (!arrDowningLinks.IsEmpty())   
	{
		if (!strPrompt.IsEmpty())
			strPrompt += _T("\n\n");

		strPrompt += GetResString(IDS_TASK_IN_DOWNLOADING);
		for (i = 0; i < arrDowningLinks.GetCount(); i++)
		{
			if(arrDowningLinks[i]->iLinkType==1)
				strPrompt += arrDowningLinks[i]->strLink;
			else
				strPrompt += arrDowningLinks[i]->strName;
			strPrompt += _T("\n");
		}

		for (i = 0; i < arrDowningLinks.GetCount(); i++)
			delete arrDowningLinks[i];
		arrDowningLinks.RemoveAll();
	}

	if (!strPrompt.IsEmpty())
		 MessageBox(strPrompt,GetResString(IDS_CAPTION),MB_OK|MB_ICONWARNING);
	//if (IDYES == ::AfxMessageBox(strPrompt, MB_YESNO))
	//{
	//	for (i = 0; i < arrDledLink.GetCount(); i++)
	//		CGlobalVariable::filemgr.NewDownloadFile(arrDledLink[i], lpszLocation, arrDledLinkCat[i]);
	//	for (i = 0; i < arrDledUrl.GetCount(); i++)
	//		ActualllyAddUrlDownload(arrDledUrl[i], lpszLocation);
	//}

	
	if (!arrReDownLinks.IsEmpty())
	{
		strPrompt = GetResString(IDS_DOWN_DELED_LINKS);

		for (i = 0; i < arrReDownLinks.GetCount(); i++)
		{
			if(arrReDownLinks[i]->iLinkType==1)
				strPrompt += arrReDownLinks[i]->strLink;
			else
				strPrompt += arrReDownLinks[i]->strName;
			strPrompt += _T("\n");           
		}
      
		if(IDYES == MessageBox(strPrompt,GetResString(IDS_CAPTION),MB_YESNO|MB_ICONWARNING))
		{
			for (i = 0; i < arrReDownLinks.GetCount(); i++)
			{
				switch (arrReDownLinks[i]->iLinkType)
				{
				case 0:
					CGlobalVariable::filemgr.NewDownloadFile(arrReDownLinks[i]->strLink, lpszLocation, arrReDownLinks[i]->iCat);
					break;
				case 1:
					//ActualllyAddUrlDownload(arrReDownLinks[i]->strLink, lpszLocation);
					CmdFuncs::ActualllyAddUrlDownload(arrReDownLinks[i]->strLink,lpszLocation);
					break;
				default:
					break;
				}
			}
		}

		for (i = 0; i < arrReDownLinks.GetCount(); i++)
			delete arrReDownLinks[i];
		arrReDownLinks.RemoveAll();
	}
	
	if (!pMap->size() && !iTooBigDownLinks)
		return TRUE;

	return iTooBigDownLinks != pMap->size(); 
}
Exemplo n.º 5
0
CPartFile* CDlgAddTask::SilenceAddNewTask(LPCTSTR lpszUrl, LPCTSTR lpszSaveDir /* = NULL */)
{
	CString Link(lpszUrl);
	CString tcsPrefix = Link.Left(Link.Find(_T(':')));
	CPartFile * pPartFile = NULL;
	CDownloadQueue * pQueue = CGlobalVariable::downloadqueue;

	// added by vc-yavey 20100507 : 保存到指定目录  <begin>
	CString strSaveDir = (lpszSaveDir != NULL && lpszSaveDir[0] != NULL ? lpszSaveDir : thePrefs.GetMuleDirectory(EMULE_INCOMINGDIR));
	// added by vc-yavey 20100507 : 保存到指定目录  <begin>

	if (tcsPrefix.CompareNoCase(_T("ed2k")) == 0)
	{
		CED2KFileLink			*pLink = NULL;
		CFileHashKey			key;
		CAddTaskDoc::SItem		item;

		pLink = CreateFileLinkFromUrl(lpszUrl);
		if (NULL != pLink)
		{
			key = pLink->GetHashKey();
			item.strLinkText = lpszUrl;
			item.bCheck = TRUE;
			item.iCategory = 0;
		
			int iState = CGlobalVariable::filemgr.GetFileState((const uchar*)&key);

			if (pQueue)
				pPartFile = pQueue->GetFileByID((const uchar*)&key);

			CString strPrompt;
			CString strFileName;
			m_uAddState = 1;
			switch (iState)
			{
			case FILESTATE_DOWNLOADING:   
				strFileName = CGlobalVariable::filemgr.GetFileName(item.strLinkText);
				strPrompt = GetResString(IDS_TASK_IN_DOWNLOADING);
				strPrompt += strFileName;
				CGlobalVariable::ShowNotifier(strPrompt,TBN_IMPORTANTEVENT);
				break;				
			case FILESTATE_COMPLETED:
			case FILESTATE_HASH:
			case FILESTATE_LOCAL_SHARE:
			case FILESTATE_DOWNLOADED_SHARE:	
			case FILESTATE_SHARE_TASK_DELED:
				strFileName = CGlobalVariable::filemgr.GetFileName(item.strLinkText);
				strPrompt = GetResString(IDS_ALREADY_DOWNLOAD);
				strPrompt += strFileName;
				CGlobalVariable::ShowNotifier(strPrompt,TBN_IMPORTANTEVENT);
				break;			
			case FILESTATE_DELETED: 
				/*
				strFileName = CGlobalVariable::filemgr.GetFileName(item.strLinkText);
				strPrompt = GetResString(IDS_DOWN_DELED_LINKS);
				strPrompt += strFileName;
				break;				
				if(IDNO == MessageBox(strPrompt,GetResString(IDS_CAPTION),MB_YESNO))
					break;
				*/
			case FILESTATE_NOT_EXIST:
				// MODIFIED by VC-yavey on 2010-04-16	<begin>
				// 安全地创建filelink
				CED2KFileLink	*pFilelink = NULL;
				pFilelink = CreateFileLinkFromUrl(item.strLinkText);
				if( pFilelink && pFilelink->GetSize()> OLD_MAX_EMULE_FILE_SIZE && !thePrefs.CanFSHandleLargeFiles())
				{					
					// modifyed by vc-yavey on 2010-5-6 <begin>
					// 既然是SilenceAddNewTask就不要弹框吧?
					/*
					CString strMessage = GetResString(IDS_ERR_FSCANTHANDLEFILE);
					strMessage += _T("\n");
					strMessage += pFilelink->GetName();					
					::AfxMessageBox(strMessage);
					*/

					// pFilelink需要被删除
					SAFE_DELETE(pFilelink);
					// modifyed by vc-yavey on 2010-5-6 <end>

					break;
				}
				// MODIFIED by VC-yavey on 2010-04-16	<end>
				SAFE_DELETE(pFilelink);


				// modified by vc-yavey 20100507 : 保存到指定目录 <begin>
				// CGlobalVariable::filemgr.NewDownloadFile(item.strLinkText, thePrefs.GetMuleDirectory(EMULE_INCOMINGDIR), item.iCategory);
				CGlobalVariable::filemgr.NewDownloadFile(item.strLinkText, strSaveDir, item.iCategory);
				// modified by vc-yavey 20100507 : 保存到指定目录 <end>
				
				// modifyed by vc-yavey on 2010-5-6 <begin>
				// 避免订阅时跳来跳去(此函数只在电驴更新和订阅时使用)
				/*
				CCmdGotoPage	cmdGotoPage;
				if(thePrefs.bringtoforeground == 1)
					cmdGotoPage.GotoDownloading();
				*/
				// modifyed by vc-yavey on 2010-5-6 <end>

				break;				            
			}
			SAFE_DELETE(pLink);
	//		m_doc.SetItem(key, item);
			return pPartFile;			
		}
	}
	else if (tcsPrefix.CollateNoCase(_T("http")) == 0)
	{
		int iState = CGlobalVariable::filemgr.GetUrlTaskState(lpszUrl);
		CString strPrompt;
		CString strFileName;
		m_uAddState = 1;

		for (POSITION pos = pQueue->filelist.GetHeadPosition();pos != 0;)
		{
			CPartFile* cur_file = pQueue->filelist.GetNext(pos);
			if (cur_file->GetPartFileURL().CompareNoCase(lpszUrl) == 0)
			{
				pPartFile = cur_file;
				break;
			}
		}

		switch (iState)
		{
		case FILESTATE_DOWNLOADING:  
			strFileName = CGlobalVariable::filemgr.GetUrlFileName(lpszUrl);
			strPrompt = GetResString(IDS_TASK_IN_DOWNLOADING);		
			strPrompt += strFileName;
			CGlobalVariable::ShowNotifier(strPrompt,TBN_IMPORTANTEVENT);
			break;				
		case FILESTATE_COMPLETED:
		case FILESTATE_HASH:
		case FILESTATE_LOCAL_SHARE:
			strFileName = CGlobalVariable::filemgr.GetUrlFileName(lpszUrl);
			strPrompt = GetResString(IDS_ALREADY_DOWNLOAD);
			strPrompt += strFileName;
			CGlobalVariable::ShowNotifier(strPrompt,TBN_IMPORTANTEVENT);
			break;
		case FILESTATE_DOWNLOADED_SHARE:
		case FILESTATE_SHARE_TASK_DELED:
		case FILESTATE_DELETED: 
		case FILESTATE_ZEROSIZE_DOWNLOADED:
			/*
			strFileName = CGlobalVariable::filemgr.GetUrlFileName(lpszUrl);
			strPrompt = GetResString(IDS_DOWN_DELED_LINKS);
			strPrompt += strFileName;
			break;
			
			if(IDNO == MessageBox(strPrompt,GetResString(IDS_CAPTION),MB_YESNO))			
				break;
			*/
		case FILESTATE_NOT_EXIST:
			// modified by vc-yavey 20100507 : 保存到指定目录 <begin>
			//CmdFuncs::ActualllyAddUrlDownload(lpszUrl,thePrefs.GetMuleDirectory(EMULE_INCOMINGDIR));
			CmdFuncs::ActualllyAddUrlDownload(lpszUrl, strSaveDir);
			// modified by vc-yavey 20100507 : 保存到指定目录 <end>

			// modifyed by vc-yavey on 2010-5-6 <begin>
			// 避免订阅时跳来跳去(此函数只在电驴更新和订阅时使用)
			/*
			CCmdGotoPage	cmdGotoPage;
			if(thePrefs.bringtoforeground == 1)
				cmdGotoPage.GotoDownloading();
			*/
			// modifyed by vc-yavey on 2010-5-6 <end>

			break;				            
		}
		//m_doc.AppendUrl(lpszUrl);
		return pPartFile;
	}
	return pPartFile;
}
Exemplo n.º 6
0
void CDlgAddTask::AddTask(const CFileHashKey &key, const CAddTaskDoc::SItem &item)
{
	if (!IsDlgPopedUp())
	{
		if (!thePrefs.m_bShowNewTaskDlg)
		{
			int iState = CGlobalVariable::filemgr.GetFileState((const uchar*)&key);
			CString strPrompt;
			CString strFileName;
			m_uAddState = 1;
			switch (iState)
			{
			case FILESTATE_DOWNLOADING:   
				strFileName = CGlobalVariable::filemgr.GetFileName(item.strLinkText);
				strPrompt = GetResString(IDS_TASK_IN_DOWNLOADING);
				//strPrompt += item.strLinkText;
				strPrompt += strFileName;
				CGlobalVariable::ShowNotifier(strPrompt,TBN_IMPORTANTEVENT);
				break;				
			case FILESTATE_COMPLETED:
			case FILESTATE_HASH:
			case FILESTATE_LOCAL_SHARE:
			case FILESTATE_DOWNLOADED_SHARE:	
			case FILESTATE_SHARE_TASK_DELED:
			//case FILESTATE_ZEROSIZE_DOWNLOADED:
				strFileName = CGlobalVariable::filemgr.GetFileName(item.strLinkText);
				strPrompt = GetResString(IDS_ALREADY_DOWNLOAD);
				//strPrompt += item.strLinkText;
				strPrompt += strFileName;
				CGlobalVariable::ShowNotifier(strPrompt,TBN_IMPORTANTEVENT);
				break;			
			case FILESTATE_DELETED: 
				strFileName = CGlobalVariable::filemgr.GetFileName(item.strLinkText);
				strPrompt = GetResString(IDS_DOWN_DELED_LINKS);
				//strPrompt += item.strLinkText;	
				strPrompt += strFileName;
				if(IDNO == MessageBox(strPrompt,GetResString(IDS_CAPTION),MB_YESNO))
					break;
			case FILESTATE_NOT_EXIST:
				CED2KFileLink	*pFilelink = NULL;
				//MODIFIED by VC-yavey on 2010-04-16	<begin>
				pFilelink = CreateFileLinkFromUrl(item.strLinkText);
				if( pFilelink && pFilelink->GetSize()> OLD_MAX_EMULE_FILE_SIZE && !thePrefs.CanFSHandleLargeFiles())
				{					
					CString strMessage = GetResString(IDS_ERR_FSCANTHANDLEFILE);
					strMessage += _T("\n");
					strMessage += pFilelink->GetName();					
					::AfxMessageBox(strMessage);
					break;
				}
				//MODIFIED by VC-yavey on 2010-04-16	<end>
				SAFE_DELETE(pFilelink);
				CGlobalVariable::filemgr.NewDownloadFile(item.strLinkText, thePrefs.GetMuleDirectory(EMULE_INCOMINGDIR), item.iCategory);
				CCmdGotoPage	cmdGotoPage;
				if(thePrefs.bringtoforeground == 1)
				    cmdGotoPage.GotoDownloading();
				break;				            
			}
			return;
		}
		else
		{
			PopupDlg();
		}
	}


	m_doc.SetItem(key, item);
}