BOOL vmsFileRecentList::Load(HANDLE hFile) { Clear (true); m_nMaxEntries = _App.RecentDownloadsHistorySize (); size_t c = 0; DWORD dw; if (FALSE == ReadFile (hFile, &c, sizeof (c), &dw, NULL)) return FALSE; for (size_t i = 0; i < c; i++) { LPSTR pszDisp, pszPath; if (FALSE == fsReadStrFromFile (&pszDisp, hFile)) return FALSE; if (FALSE == fsReadStrFromFile (&pszPath, hFile)) return FALSE; Add (pszDisp, pszPath, true); delete [] pszDisp; delete [] pszPath; } return TRUE; }
BOOL fsEventsMgr::Load(HANDLE hFile) { int cRecs; DWORD dw; m_vEvents.clear (); if (!ReadFile (hFile, &cRecs, sizeof (cRecs), &dw, NULL) || dw != sizeof (cRecs)) return FALSE; while (cRecs-- > 0) { fsDescEvent ev; if (!ReadFile (hFile, &ev, sizeof (fsDescEvent), &dw, NULL) || dw != sizeof (fsDescEvent)) { m_vEvents.clear (); return FALSE; } if (!fsReadStrFromFile (&ev.pszEvent, hFile)) { m_vEvents.clear (); return FALSE; } m_vEvents.add (ev); } return TRUE; }
BOOL vmsStringList::Load(HANDLE hFile) { Clear (); int c = 0; DWORD dw; if (FALSE == ReadFile (hFile, &c, sizeof (c), &dw, NULL)) return FALSE; for (int i = 0; i < c; i++) { LPSTR psz; if (FALSE == fsReadStrFromFile (&psz, hFile)) return FALSE; Add (psz); delete [] psz; } return TRUE; }
BOOL fsEventsMgr::Load(HANDLE hFile) { int cRecs; DWORD dw; m_vEvents.clear (); if (!ReadFile (hFile, &cRecs, sizeof (cRecs), &dw, NULL) || dw != sizeof (cRecs)) return FALSE; while (cRecs-- > 0) { vmsPersistableDescEventWrapperSmartPtr pEventPtr; pEventPtr.CreateInstance(); fsDescEvent& ev = pEventPtr->deEvent; if (!ReadFile (hFile, &ev, sizeof (fsDescEvent), &dw, NULL) || dw != sizeof (fsDescEvent)) { m_vEvents.clear (); return FALSE; } if (!fsReadStrFromFile (&ev.pszEvent, hFile)) { m_vEvents.clear (); return FALSE; } m_vEvents.add (pEventPtr); getPersistObjectChildren ()->addPersistObject ((vmsPersistableDescEventWrapper*)pEventPtr); } return TRUE; }
BOOL fsSitesMgr::LoadFromFile(HANDLE hFile) { int cSites; DWORD dw; BOOL bOldVer = FALSE; m_vSites.clear (); fsSitesFileHdr hdr; if (!ReadFile (hFile, &hdr, sizeof (hdr), &dw, NULL)) bOldVer = TRUE; else { if (strcmp (hdr.szSig, SITESFILE_SIG)) { bOldVer = TRUE; SetFilePointer (hFile, 0, NULL, FILE_BEGIN); } else if (hdr.wVer > SITESFILE_CURRENT_VERSION) return FALSE; } if (!ReadFile (hFile, &cSites, sizeof (cSites), &dw, NULL) || dw != sizeof (cSites)) return FALSE; for (int i = 0; i < cSites; i++) { fsSiteInfoPtr site; site.CreateInstance (); if (bOldVer) { fsSiteInfo_v1 sitev1; if (!ReadFile (hFile, &sitev1, sizeof (fsSiteInfo_v1), &dw, NULL) || dw != sizeof (fsSiteInfo_v1)) return FALSE; site->dwFtpFlags = sitev1.bFtpPassive; site->bTemp = sitev1.bTemp; site->cConnsNow = sitev1.cConnsNow; site->cMaxConns = sitev1.cMaxConns; site->dwValidFor = SITE_VALIDFOR_HTTP|SITE_VALIDFOR_HTTPS|SITE_VALIDFOR_FTP|SITE_VALIDFOR_SUBDOMAINS; } else { if (hdr.wVer < 3) { fsSiteInfo_v2 sitev2; if (!ReadFile (hFile, &sitev2, sizeof (sitev2), &dw, NULL) || dw != sizeof (sitev2)) return FALSE; if (!fsReadStrFromFile (&sitev2.strGroup.pszString, hFile)) return FALSE; site->dwFtpFlags = sitev2.dwFtpFlags; site->bTemp = sitev2.bTemp; site->cConnsNow = sitev2.cConnsNow; site->cMaxConns = sitev2.cMaxConns; site->dwValidFor = sitev2.dwValidFor; } } if (!fsReadStrFromFile (&site->strName.pszString, hFile)) return FALSE; if (!fsReadStrFromFile (&site->strPassword.pszString, hFile)) return FALSE; if (!fsReadStrFromFile (&site->strUser.pszString, hFile)) return FALSE; if (hdr.wVer >= 3) { UINT nId; if (!ReadFile (hFile, &nId, sizeof (nId), &dw, NULL)) return FALSE; site->pGroup = nId != (UINT)-1 ? _DldsGrps.FindGroup (nId) : NULL; if (!ReadFile (hFile, &site->dwFtpFlags, sizeof (site->dwFtpFlags), &dw, NULL)) return FALSE; if (!ReadFile (hFile, &site->cConnsNow, sizeof (site->cConnsNow), &dw, NULL)) return FALSE; if (!ReadFile (hFile, &site->cMaxConns, sizeof (site->cMaxConns), &dw, NULL)) return FALSE; if (!ReadFile (hFile, &site->dwValidFor, sizeof (site->dwValidFor), &dw, NULL)) return FALSE; } site->cConnsNow = 0; site->bTemp = FALSE; AddSite (site); } return TRUE; }
BOOL fsReadStringFromFile (HANDLE hFile, fsString &str) { delete str.pszString; str.pszString = NULL; return fsReadStrFromFile (&str.pszString, hFile); }