void CDComView::OnDraw(CDC* dc) { CRect rcBounds; GetClientRect(&rcBounds); int nFirstLine; int nLastLine; CRect rcClient; CDComDoc* pDoc = GetDocument(); CPoint ptScroll; SDComCfg *pDComCfg; CFont font; CMainFrame *pMainFrm = (CMainFrame *)AfxGetMainWnd(); if (dc->IsPrinting()) { dc->SetMapMode(MM_LOENGLISH); } else { dc->SetMapMode(MM_TEXT); } ASSERT_VALID(pMainFrm); if (!pMainFrm) { return; } ASSERT_VALID(pDoc); if (!pDoc) { return; } pDComCfg = pMainFrm->GetConfig(); if (!dc->IsPrinting()) { dc->SetBkColor(pDComCfg->m_crBack); } CMyMemDC pDC(dc); font.CreateFontIndirect(&pDComCfg->m_logfont); pDC->SelectObject(font); font.DeleteObject(); pDoc->m_cLineBuffer.Enter(); ptScroll = GetDeviceScrollPosition(); GetClientRect(&rcClient); nFirstLine = ptScroll.y / m_sizeCharDimensions.cy; nLastLine = nFirstLine + (rcClient.Height() / m_sizeCharDimensions.cy) + 1; DrawLines(nFirstLine, nLastLine, pDComCfg, pDC); pDoc->m_cLineBuffer.Exit(); }
DWORD InfoLogger::GetFilter() { CMainFrame* pFrame = (CMainFrame*) AfxGetMainWnd(); if (pFrame == NULL) return 0; if (pFrame->IsClosing()) return 0; CConfiguration* pConfig = pFrame->GetConfig(); return pConfig->GetLoggingFilter(); }
char* JagFileReader::LoadJagFile() { CMainFrame* pFrame = (CMainFrame*) AfxGetMainWnd(); CConfiguration* pConfig = pFrame->GetConfig(); FILE* f = fopen(pConfig->GetEPGFile(), "rb"); if (f == 0) return 0; fseek(f, 0, SEEK_END); int iSize = ftell(f); fseek(f, 0, SEEK_SET); char* pData = (char*) malloc(iSize); fread(pData, iSize, 1, f); fclose(f); return pData; }
BOOL CDComDoc::OnOpenDocument(SDialingDir *psDialingDir) { char *pRet; BOOL bRet = FALSE; CMainFrame *pMainFrm = (CMainFrame *)AfxGetMainWnd(); if (pMainFrm == NULL) { return FALSE; } memcpy(&m_sDialingDir, psDialingDir, sizeof(SDialingDir)); if (m_sDialingDir.nType == DCOM_DD_SERIAL) { m_nContextMenuId = IDR_SERIAL_CONTEXT; m_pTgtIntf = new TgtSerialIntf; if (m_pTgtIntf) { ((TgtSerialIntf*)m_pTgtIntf)->TgtSetConfig( m_sDialingDir.szAddress, m_sDialingDir.m_dwBaudRate, m_sDialingDir.m_byParity, m_sDialingDir.m_byStopBits, m_sDialingDir.m_byByteSize); } } else if (m_sDialingDir.nType == DCOM_DD_SSH) { m_pTgtIntf = new TgtSshIntf; if (m_pTgtIntf) { ((TgtSshIntf*)m_pTgtIntf)->TgtSetConfig( m_sDialingDir.szAddress, m_sDialingDir.nPort, m_sDialingDir.szDescription); } } else if (m_sDialingDir.nType == DCOM_DD_TELNET) { m_pTgtIntf = new TgtTelnetIntf; if (m_pTgtIntf) { ((TgtTelnetIntf*)m_pTgtIntf)->TgtSetConfig( m_sDialingDir.szAddress, m_sDialingDir.nPort, m_sDialingDir.szDescription); } } else if (m_sDialingDir.nType == DCOM_DD_DEBUG) { m_pTgtIntf = new TgtFileIntf; if (m_pTgtIntf) { ((TgtFileIntf*)m_pTgtIntf)->TgtSetConfig( m_sDialingDir.szAddress); } } if (m_pTgtIntf) { SetConfig(pMainFrm->GetConfig()); pRet = m_pTgtIntf->TgtConnect(); if (pRet == NULL) { m_hThreadTerminated = CreateEvent(0,0,0,0); m_hThreadTerm = CreateEvent(0,0,0,0); m_cTgtIntfThread = AfxBeginThread(&CDComDoc::TgtIntfThread, (LPVOID)this, THREAD_PRIORITY_IDLE); bRet = TRUE; } else { AfxMessageBox(pRet); } } return bRet; }