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;
}
Exemple #2
0
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;
}