00001 /* 00002 Free Download Manager Copyright (c) 2003-2007 FreeDownloadManager.ORG 00003 Open Download Manager Copyright (c) 2008-2010 OpenDownloadManager.ORG 00004 */ 00005 00006 #include "stdafx.h" 00007 #include "FdmApp.h" 00008 #include "FDMDownloadsStat.h" 00009 00010 STDMETHODIMP CFDMDownloadsStat::get_DownloadCount(long *pVal) 00011 { 00012 *pVal = m_vDownloads.size (); 00013 00014 return S_OK; 00015 } 00016 00017 void CFDMDownloadsStat::AddDownloadToList(vmsDownloadSmartPtr dld) 00018 { 00019 CComObject <CFDMDownload>* pDld; 00020 HRESULT hr = CComObject <CFDMDownload>::CreateInstance (&pDld); 00021 if (FAILED (hr)) 00022 return; 00023 00024 pDld->ReadFromDownload (dld); 00025 00026 m_vDownloads.add (pDld); 00027 } 00028 00029 STDMETHODIMP CFDMDownloadsStat::get_Download(long nIndex, IFDMDownload **pVal) 00030 { 00031 ASSERT (nIndex < m_vDownloads.size ()); 00032 if (nIndex >= m_vDownloads.size ()) 00033 return E_INVALIDARG; 00034 00035 *pVal = m_vDownloads [nIndex]; 00036 (*pVal)->AddRef (); 00037 00038 return S_OK; 00039 } 00040 00041 STDMETHODIMP CFDMDownloadsStat::BuildListOfDownloads(BOOL bIncludeCompleted, BOOL bIncludeRunning) 00042 { 00043 m_vDownloads.clear (); 00044 00045 for (size_t i = 0; i < _DldsMgr.GetCount (); i++) 00046 { 00047 vmsDownloadSmartPtr dld = _DldsMgr.GetDownload (i); 00048 bool bAdd = bIncludeRunning && dld->pMgr->IsRunning (); 00049 if (bAdd == false) 00050 bAdd = bIncludeCompleted && dld->pMgr->IsDone (); 00051 if (bAdd) 00052 AddDownloadToList (dld); 00053 } 00054 00055 return S_OK; 00056 }
1.5.6