// BarDoc.cpp : implementation of the CBarCodeDoc class // #include "stdafx.h" #include "BarCode.h" #include "BarDoc.h" #include "BarView.h" //#include "leaddlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CBarCodeDoc IMPLEMENT_DYNCREATE(CBarCodeDoc, CDocument) BEGIN_MESSAGE_MAP(CBarCodeDoc, CDocument) //{{AFX_MSG_MAP(CBarCodeDoc) ON_COMMAND(ID_FILE_SAVE_AS, OnFileSaveAs) ON_COMMAND(ID_EDIT_COPY, OnEditCopy) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CBarCodeDoc construction/destruction static const WCHAR BASED_CODE _szLicString[] = L"LEADTOOLS OCX Copyright (c) 1991-2000 LEAD Technologies, Inc."; CBarCodeDoc::CBarCodeDoc() { CRect rcClient(0,0,1,1); BSTR lpLic = SysAllocString(_szLicString); CBarCodeApp * pTheApp = (CBarCodeApp *)AfxGetApp(); m_LeadCtrl.Create(NULL, 0, rcClient, pTheApp->m_pMainWnd, 0, NULL, FALSE, lpLic); m_LeadCtrl.ShowWindow(SW_HIDE); SysFreeString(lpLic); } CBarCodeDoc::~CBarCodeDoc() { } BOOL CBarCodeDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; CHAR szTitle[256]; CBarCodeApp * pTheApp = (CBarCodeApp *)AfxGetApp(); if (pTheApp == NULL) return FALSE; m_LeadCtrl.SetBitmap(pTheApp->m_Lead.GetBitmap()); pTheApp->m_Lead.SetBitmap(0); memset(szTitle, 0, sizeof(szTitle)); switch (pTheApp->m_nDocMode) { case DOCUMENT_MODE_NEW: wsprintf(szTitle, "New Image %d", pTheApp->m_nNewNo); break; case DOCUMENT_MODE_TWAIN: wsprintf(szTitle, "TWAIN Data %d", pTheApp->m_nTWAINNo); break; case DOCUMENT_MODE_ISIS: wsprintf(szTitle, "ISIS Data %d", pTheApp->m_nISISNo); break; case DOCUMENT_MODE_PASTE: wsprintf(szTitle, "Clipboard Data %d", pTheApp->m_nPasteNo); break; } SetTitle(szTitle); return TRUE; } ///////////////////////////////////////////////////////////////////////////// // CBarCodeDoc serialization void CBarCodeDoc::Serialize(CArchive& ar) { if (ar.IsStoring()) { // TODO: add storing code here } else { // TODO: add loading code here } } ///////////////////////////////////////////////////////////////////////////// // CBarCodeDoc diagnostics #ifdef _DEBUG void CBarCodeDoc::AssertValid() const { CDocument::AssertValid(); } void CBarCodeDoc::Dump(CDumpContext& dc) const { CDocument::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CBarCodeDoc commands BOOL CBarCodeDoc::OnOpenDocument(LPCTSTR lpszPathName) { if (!CDocument::OnOpenDocument(lpszPathName)) return FALSE; CBarCodeApp* pTheApp = (CBarCodeApp*) AfxGetApp(); if (!pTheApp) return FALSE; int nRet = m_LeadCtrl.GetFileInfo(lpszPathName, pTheApp->m_nPage, 0); if (nRet != 0) { pTheApp->DisplayLEADError(nRet); return FALSE; } m_LeadCtrl.SetEnableMethodErrors(FALSE); nRet = m_LeadCtrl.Load(lpszPathName, m_LeadCtrl.GetInfoBits(), pTheApp->m_nPage, m_LeadCtrl.GetInfoTotalPages()); if (nRet != 0) { if(nRet == ERROR_PDF_BAD_INITIALIZATION_FILES) { if( IDYES == MessageBox ( AfxGetMainWnd()->m_hWnd, TEXT("LEADTOOLS PDF plugin is not found, do you want to download the plugin now?"), TEXT("Open File"),MB_ICONEXCLAMATION | MB_YESNO)) { ShellExecute(AfxGetMainWnd()->m_hWnd, TEXT("open"), TEXT("http://www.leadtools.com/ReleaseDownloads/v14/LEADTOOLSPDFRuntime.exe"), NULL, NULL, SW_SHOWNORMAL); } } else pTheApp->DisplayLEADError(nRet); } return ((nRet == 0) ? TRUE : FALSE); } void CBarCodeDoc::OnFileSaveAs() { CBarCodeApp* pTheApp = (CBarCodeApp*) AfxGetApp(); if (!pTheApp) return; pTheApp->m_pRasterFileDlg->PutEnableMethodErrors(FALSE); pTheApp->m_pRasterFileDlg->PutFileDlgFlags(0); pTheApp->m_pRasterFileDlg->PutDialogTitle("Save File"); pTheApp->m_pRasterFileDlg->PutBitmap(m_LeadCtrl.GetBitmap()); pTheApp->m_pRasterFileDlg->PutUIFlags(SAVE_AUTOPROCESS | SAVE_SHOW_FILEOPTIONS_MULTIPAGE | SAVE_SHOW_FILEOPTIONS_PROGRESSIVE | SAVE_SHOW_FILEOPTIONS_J2KOPTIONS | SAVE_SHOW_FILEOPTIONS_BASICJ2KOPTIONS | SAVE_SHOW_FILEOPTIONS_QFACTOR); int nRet = pTheApp->m_pRasterFileDlg->ShowSaveDlg((long)pTheApp->m_pMainWnd->GetSafeHwnd()); if (nRet != 0) pTheApp->DisplayLEADError(nRet); pTheApp->m_pRasterFileDlg->PutBitmap(0); } void CBarCodeDoc::OnEditCopy() { BeginWaitCursor(); m_LeadCtrl.Copy(COPY_DIB | COPY_DDB | COPY_PALETTE); EndWaitCursor(); }