// UstwnBm.cpp: implementation of the UserTwainBitmap class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "demo.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif LEAD_START_CLASS_MAP(LUserBitmap,LBitmapBase) LEAD_INIT_LTwain(LUserTwain) #ifndef UNICODE LEAD_INIT_LIsis(LUserIsis) #endif //UNICODE LEAD_INIT_LScreenCapture(LUserScrCapture) LEAD_END_CLASS_MAP(LUserBitmap,LBitmapBase) LEAD_IMPLEMENTOBJECT(LUserBitmap); LEAD_IMPLEMENTOBJECT(LUserTwain); LEAD_IMPLEMENTOBJECT(LUserScrCapture); #ifndef UNICODE LEAD_IMPLEMENTOBJECT(LUserIsis); #endif //UNICODE ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// LUserBitmap::LUserBitmap() { } LUserBitmap::~LUserBitmap() { } ////////////////////////////////////////////////////////////////////// // LUserTwain Class ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// LUserTwain::LUserTwain() { EnableCallBack(TRUE); m_nScanNo=0; } LUserTwain::~LUserTwain() { } L_INT LUserTwain::BitmapCallBack(pBITMAPHANDLE pBitmap) { L_TCHAR str[50]; CDemo* pTheApp = (CDemo*) AfxGetApp(); LBitmapBase btmpBase; btmpBase.SetHandle(pBitmap); memset(str,0,sizeof(0)); wsprintf(str,_T("Twain Scan %d"),++m_nScanNo); pTheApp->CreateNewBitmapWindow(str,&btmpBase); return SUCCESS; } ////////////////////////////////////////////////////////////////////// // LUserScrCapture Capture ////////////////////////////////////////////////////////////////////// LUserScrCapture::LUserScrCapture() { m_CaptureOptions.uHotKeyModifiers=0; m_nCaptureType=CAPTURE_NONE; m_nCaptureNo=0; m_bImmediateCapture=FALSE; EnableCallBack(TRUE); } LUserScrCapture::~LUserScrCapture() { } L_VOID LUserScrCapture::EnableImmediateCapture(L_BOOL bEnable) { if(bEnable) { m_nHotKey=m_CaptureOptions.nHotKey; m_uHotKeyModifiers=m_CaptureOptions.uHotKeyModifiers; if(m_bImmediateCapture==TRUE) { m_CaptureOptions.nHotKey=0; m_CaptureOptions.uHotKeyModifiers=0; } } else { m_CaptureOptions.nHotKey=m_nHotKey; m_CaptureOptions.uHotKeyModifiers=m_uHotKeyModifiers; } } L_INT LUserScrCapture::ScreenCaptureCallBack() { static L_TCHAR Buffer1[255]; static L_TCHAR *szCapFileNameType[11]={ _T("Capture Full Screen "), _T("Capture Client Window "), _T("Capture Active Window "), _T("Capture Window under Cursor"), _T("Capture Menu Under Cursor "), _T("Capture Selected Object "), _T("Capture Selected Area"), _T("Capture Mouse Cursor"), _T("Capture WallPaper"), _T("Capture From Exe Dlg Tree"), _T("Capture From Tabbed View"), }; CDemo * pTheApp = (CDemo *)AfxGetApp(); if(LDictionary_IsBitmap(m_pBitmap)) { if(m_pBitmap->IsAllocated()) { MessageBeep (0xffffffff); memset(Buffer1,0,sizeof(Buffer1)); wsprintf(Buffer1,_T("%s[%d]"), szCapFileNameType[m_nCaptureType-1], ++m_nCaptureNo); pTheApp->CreateNewBitmapWindow(Buffer1,m_pBitmap); return SUCCESS; } } return FAILURE; } ////////////////////////////////////////////////////////////////////// // LUserIsis Class ///////////////////////////////////////-/////////////////////////////// ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// #ifndef UNICODE LUserIsis::LUserIsis() { EnableCallBack(TRUE); } LUserIsis::~LUserIsis() { } L_INT LUserIsis::AcquireMultiCallBack(L_INT32 nPage,L_TCHAR L_FAR* pszFileName) { CDemo * pTheApp = (CDemo *)AfxGetApp(); L_TCHAR Buffer1[256]; if(LDictionary_IsBitmap(m_pBitmap)) { if(m_pBitmap->IsAllocated()) { memset(Buffer1,0,sizeof(Buffer1)); if(pszFileName!=NULL) wsprintf(Buffer1,_T("%s[%d]"),pszFileName,nPage); else wsprintf(Buffer1,_T("ISIS [%d]"),nPage); pTheApp->CreateNewBitmapWindow(Buffer1,m_pBitmap); return SUCCESS; } } return FAILURE; } #endif //UNICODE