void CGenethonDoc::writeToReport(CString& output) { if (m_pTextView == NULL) { ((CMainFrame *)(AfxGetApp()->m_pMainWnd))->OpenTextView(); } else { m_pTextView->GetParentFrame()->ActivateFrame(); m_pTextView->Invalidate(); } CMemFile* memFile = new CMemFile(); //serialize object into the pData // char* cBuff = new char[128]; // sprintf_s(cBuff, 128, "%s", "Test test test test test test\n"); memFile->Write(output, output.GetLength()); memFile->SeekToBegin(); // txtFile->Open(PathName, CFile::modeRead); // CArchive archive(&txtFile, CArchive::load); // SerializeRaw( archive ); m_pTextView->LoadMemfile(memFile); memFile->Close(); delete memFile; }
void CSimpleReport::LayoutSave(const char* id, const char* tag) { CMemFile memFile; CArchive ar (&memFile,CArchive::store); SerializeState(ar); ar.Flush(); DWORD nBytes = (DWORD)memFile.GetPosition(); LPBYTE pData = memFile.Detach(); AfxGetApp()->WriteProfileBinary(id, tag, pData, nBytes); ar.Close(); memFile.Close(); free(pData); }
DWORD SupFileSubtitleProvider::ThreadProc() { CFile f; if (!f.Open(m_fname, CFile::modeRead|CFile::typeBinary|CFile::shareDenyNone)) { return 1; } f.SeekToBegin(); CMemFile sub; sub.SetLength(f.GetLength()); sub.SeekToBegin(); int len; BYTE buff[65536]; while ((len = f.Read(buff, sizeof(buff))) > 0) { sub.Write(buff, len); } sub.SeekToBegin(); WORD sync = 0; USHORT size = 0; REFERENCE_TIME rtStart = 0; CAutoLock cAutoLock(&m_csCritSec); while (sub.GetPosition() < (sub.GetLength() - 10)) { sync = (WORD)ReadByte(&sub, 2); if (sync == 'PG') { rtStart = UINT64(ReadByte(&sub, 4) * (1000 / 9)); sub.Seek(4 + 1, CFile::current); // rtStop + Segment type size = ReadByte(&sub, 2) + 3; // Segment size sub.Seek(-3, CFile::current); sub.Read(buff, size); m_pSub->ParseSample(buff, size, rtStart, 0); } else { break; } } sub.Close(); return 0; }