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; }
void CDirectDownloadDlg::OnOK() { CString strLinks; GetDlgItem(IDC_ELINK)->GetWindowText(strLinks); int curPos = 0; CString strTok = strLinks.Tokenize(_T(" \t\r\n"), curPos); // tokenize by whitespaces while (!strTok.IsEmpty()) { if (strTok.Right(1) != _T("/")) strTok += _T("/"); try { CED2KLink* pLink = CED2KLink::CreateLinkFromUrl(strTok); if (pLink) { if (pLink->GetKind() == CED2KLink::kFile) { theApp.downloadqueue->AddFileLinkToDownload(pLink->GetFileLink(), (thePrefs.GetCatCount() == 0) ? 0 : m_cattabs.GetCurSel()); } else { delete pLink; throw CString(_T("bad link")); } delete pLink; } } catch(CString error) { TCHAR szBuffer[200]; _sntprintf_s(szBuffer, _countof(szBuffer), _countof(szBuffer), GetResString(IDS_ERR_INVALIDLINK), error); szBuffer[_countof(szBuffer) - 1] = _T('\0'); CString strError; strError.Format(GetResString(IDS_ERR_LINKERROR), szBuffer); AfxMessageBox(strError); return; } strTok = strLinks.Tokenize(_T(" \t\r\n"), curPos); // tokenize by whitespaces } CResizableDialog::OnOK(); }