// TwainDoc.cpp : implementation of the CTwainDoc class // #include "stdafx.h" #include "Twain.h" #include "TwainDoc.h" #include "TwainView.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CTwainDoc IMPLEMENT_DYNCREATE(CTwainDoc, CDocument) BEGIN_MESSAGE_MAP(CTwainDoc, CDocument) //{{AFX_MSG_MAP(CTwainDoc) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CTwainDoc construction/destruction static const WCHAR BASED_CODE _szLicString[] = L"LEADTOOLS OCX Copyright (c) 1991-2004 LEAD Technologies, Inc."; CTwainDoc::CTwainDoc() { CRect rcClient(0,0,1,1); BSTR lpLic = SysAllocString(_szLicString); CTwainApp * pTheApp = (CTwainApp *)AfxGetApp(); m_LEADCtrl.Create(NULL, 0, rcClient, pTheApp->m_pMainWnd, 0, NULL, FALSE, lpLic); m_LEADCtrl.ShowWindow(SW_HIDE); SysFreeString(lpLic); } CTwainDoc::~CTwainDoc() { } BOOL CTwainDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; CTwainApp * pTheApp = (CTwainApp *)AfxGetApp(); if (pTheApp == NULL) return FALSE; m_LEADCtrl.SetBitmap(pTheApp->m_Lead.GetBitmap()); pTheApp->m_Lead.SetBitmap(0); return TRUE; } ///////////////////////////////////////////////////////////////////////////// // CTwainDoc serialization void CTwainDoc::Serialize(CArchive& ar) { if (ar.IsStoring()) { // TODO: add storing code here } else { // TODO: add loading code here } } ///////////////////////////////////////////////////////////////////////////// // CTwainDoc diagnostics #ifdef _DEBUG void CTwainDoc::AssertValid() const { CDocument::AssertValid(); } void CTwainDoc::Dump(CDumpContext& dc) const { CDocument::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CTwainDoc commands BOOL CTwainDoc::OnOpenDocument(LPCTSTR lpszPathName) { if (!CDocument::OnOpenDocument(lpszPathName)) return FALSE; CTwainApp* pTheApp = (CTwainApp*) AfxGetApp(); if (!pTheApp) return FALSE; int nRet = m_LEADCtrl.GetFileInfo(lpszPathName, pTheApp->m_nPageNum, 0); if (nRet != 0) return FALSE; nRet = m_LEADCtrl.Load(lpszPathName, m_LEADCtrl.GetInfoBits(), pTheApp->m_nPageNum, m_LEADCtrl.GetInfoTotalPages()); return ((nRet == 0) ? TRUE : FALSE); } CView * CTwainDoc::GetView() { POSITION pos = GetFirstViewPosition(); return GetNextView(pos); }