void PrintNextImage(volatile void *uselessParameter) { _receivingImage = 0; if (previousFileIsValid) { uint16_t stringLength = strlen(fno.fname) + 1; MemCopy(fno.fname, previousFileName, 0, 0, stringLength); } FRESULT res; res = pf_readdir(&dir, &fno); if (res == FR_NO_FILE) { char *rootDir = " "; pf_opendir(&dir, rootDir); res = pf_readdir(&dir, &fno); if (res == FR_NO_FILE) { return; } } if (!CheckBMPImage(fno.fname)) { previousFileIsValid = true; PrintImage(fno.fname); } }
void PrintPreviousImage(volatile void *uselessParameter) { _receivingImage = false; if (previousFileIsValid) { if (!CheckBMPImage(previousFileName)) { PrintImage(previousFileName); } } }
bool CPrintFolder::PrintPage(CDCHandle dc, UINT nPage) { try { IW::FolderPtr pFolder = _state.Folder.GetFolder(); int nBkMode = dc.SetBkMode(TRANSPARENT); COLORREF clrTextColor = dc.SetTextColor(RGB(0,0,0)); int nImageRows = m_bPrintOnePerPage ? 1 : _sizeRowsColumns.cy; int nImageColumns = m_bPrintOnePerPage ? 1 : _sizeRowsColumns.cx; int nImagePerPage = nImageColumns * nImageRows; int nMin = nImagePerPage * nPage; int nMax = nMin + nImagePerPage; int nImage = 0; long nNormalCount = pFolder->GetItemCount(); bool bImage = false; bool bSelected = false; //bool bIsPreview = OBJ_ENHMETADC == GetObjectType(dc); for(int i = 0; i < nNormalCount; i++) { _pStatus->SetHighLevelProgress(i, nNormalCount); bImage = pFolder->IsItemImage(i); bSelected = pFolder->IsItemSelected(i); // Only process if image if (bImage && (!m_bPrintSelected || bSelected)) { if (nImage >= nMin && nImage < nMax) { int nImageThisPage = nImage - nMin; CPoint point; point.x = _rectExtents.left + (_sizeSection.cx * (nImageThisPage % nImageColumns)); point.y = _rectExtents.top + (_sizeSection.cy * (nImageThisPage / nImageColumns)); if (m_bShowHeader) { point.y += m_nHeaderHeight; } IW::FolderItemLock pItem(pFolder, i); if (!PrintImage(dc, pItem, point)) return false; } nImage++; } } dc.SetBkMode(nBkMode); dc.SetTextColor(clrTextColor); } catch(_com_error &e) { IW::CMessageBoxIndirect mb; mb.ShowException(IDS_LOW_LEVEL_ERROR_FMT, e); } return true; }