// MFCDem32.cpp : Defines the class behaviors for the application. // #include "stdafx.h" #include "Demo.h" #include "MainFrm.h" #include "ChildFrm.h" #include "DemoDoc.h" #include "DemoView.h" #include #include #include "..\..\..\..\include\ltlck.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif L_BOOL RegisterAppKey ( HINSTANCE hInstance ); #define REG_KEYS 2 ///////////////////////////////////////////////////////////////////////////// // CDemo BEGIN_MESSAGE_MAP(CDemo, CWinApp) //{{AFX_MSG_MAP(CDemo) ON_COMMAND(ID_APP_ABOUT, OnAppAbout) ON_COMMAND(ID_EDIT_PASTE, OnEditPaste) ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, OnUpdateEditPaste) ON_COMMAND(IDM_PREF_PREVIEW, OnPrefPreview) ON_UPDATE_COMMAND_UI(IDM_PREF_PREVIEW, OnUpdatePrefPreview) ON_COMMAND(IDM_CAPTURE_ACTIVECLIENT, OnCaptureActiveclient) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_ACTIVECLIENT, OnUpdateCaptureActiveclient) ON_COMMAND(IDM_CAPTURE_ACTIVEWIN, OnCaptureActivewin) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_ACTIVEWIN, OnUpdateCaptureActivewin) ON_COMMAND(IDM_CAPTURE_AREA, OnCaptureArea) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_AREA, OnUpdateCaptureArea) ON_COMMAND(IDM_CAPTURE_AREAOP, OnCaptureAreaop) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_AREAOP, OnUpdateCaptureAreaop) ON_COMMAND(IDM_CAPTURE_CAPTOP, OnCaptureCaptop) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_CAPTOP, OnUpdateCaptureCaptop) ON_COMMAND(IDM_CAPTURE_EXETABBED, OnCaptureExetabbed) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_EXETABBED, OnUpdateCaptureExetabbed) ON_COMMAND(IDM_CAPTURE_EXETREE, OnCaptureExetree) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_EXETREE, OnUpdateCaptureExetree) ON_COMMAND(IDM_CAPTURE_MENU, OnCaptureMenu) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_MENU, OnUpdateCaptureMenu) ON_COMMAND(IDM_CAPTURE_MOUSECURSOR, OnCaptureMousecursor) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_MOUSECURSOR, OnUpdateCaptureMousecursor) ON_COMMAND(IDM_CAPTURE_OBJECT, OnCaptureObject) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_OBJECT, OnUpdateCaptureObject) ON_COMMAND(IDM_CAPTURE_OBJECTOP, OnCaptureObjectop) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_OBJECTOP, OnUpdateCaptureObjectop) ON_COMMAND(IDM_CAPTURE_SCREEN, OnCaptureScreen) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_SCREEN, OnUpdateCaptureScreen) ON_COMMAND(IDM_CAPTURE_STOP, OnCaptureStop) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_STOP, OnUpdateCaptureStop) ON_COMMAND(IDM_CAPTURE_WALLPAPER, OnCaptureWallpaper) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_WALLPAPER, OnUpdateCaptureWallpaper) ON_COMMAND(IDM_CAPTURE_WINUNDERCURSOR, OnCaptureWinundercursor) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_WINUNDERCURSOR, OnUpdateCaptureWinundercursor) ON_COMMAND(IDM_PREF_BITFAVOR, OnPrefBitfavor) ON_UPDATE_COMMAND_UI(IDM_PREF_BITFAVOR, OnUpdatePrefBitfavor) ON_COMMAND(IDM_PREF_BITNORMAL, OnPrefBitnormal) ON_UPDATE_COMMAND_UI(IDM_PREF_BITNORMAL, OnUpdatePrefBitnormal) ON_COMMAND(IDM_PREF_BITSCALEGRAY, OnPrefBitscalegray) ON_UPDATE_COMMAND_UI(IDM_PREF_BITSCALEGRAY, OnUpdatePrefBitscalegray) ON_COMMAND(IDM_PREF_DITHRERRDIFF, OnPrefDithrerrdiff) ON_UPDATE_COMMAND_UI(IDM_PREF_DITHRERRDIFF, OnUpdatePrefDithrerrdiff) ON_COMMAND(IDM_PREF_DITHRORDERED, OnPrefDithrordered) ON_UPDATE_COMMAND_UI(IDM_PREF_DITHRORDERED, OnUpdatePrefDithrordered) ON_COMMAND(IDM_PREF_LOADCOMPRESSED, OnPrefLoadcompressed) ON_UPDATE_COMMAND_UI(IDM_PREF_LOADCOMPRESSED, OnUpdatePrefLoadcompressed) ON_COMMAND(IDM_PREF_LOADROTATED, OnPrefLoadrotated) ON_UPDATE_COMMAND_UI(IDM_PREF_LOADROTATED, OnUpdatePrefLoadrotated) ON_COMMAND(IDM_PREF_PALAUTO, OnPrefPalauto) ON_COMMAND(IDM_PREF_PALFIXED, OnPrefPalfixed) ON_UPDATE_COMMAND_UI(IDM_PREF_PALFIXED, OnUpdatePrefPalfixed) ON_COMMAND(IDM_PREF_PALNETSCAPE, OnPrefPalnetscape) ON_UPDATE_COMMAND_UI(IDM_PREF_PALNETSCAPE, OnUpdatePrefPalnetscape) ON_UPDATE_COMMAND_UI(IDM_PREF_PALAUTO, OnUpdatePrefPalauto) ON_COMMAND(IDM_TWAIN_ACQUIRE, OnTwainAcquire) ON_COMMAND(IDM_TWAIN_SELSOURCE, OnTwainSelsource) ON_COMMAND(IDM_ISIS_ACQUIRE, OnIsisAcquire) ON_COMMAND(IDM_ISIS_ACQUIREMULTI, OnIsisAcquiremulti) ON_COMMAND(IDM_ISIS_SELSOURCE, OnIsisSelsource) ON_UPDATE_COMMAND_UI(IDM_ISIS_ACQUIRE, OnUpdateIsisAcquire) ON_UPDATE_COMMAND_UI(IDM_ISIS_ACQUIREMULTI, OnUpdateIsisAcquiremulti) ON_UPDATE_COMMAND_UI(IDM_ISIS_SELSOURCE, OnUpdateIsisSelsource) ON_UPDATE_COMMAND_UI(IDM_TWAIN_ACQUIRE, OnUpdateTwainAcquire) ON_UPDATE_COMMAND_UI(IDM_TWAIN_SELSOURCE, OnUpdateTwainSelsource) ON_COMMAND(ID_FILE_OPEN, OnFileOpen) ON_COMMAND(ID_FILE_ALL_ERROR, OnFileAllError) ON_COMMAND(ID_FILE_LAST_ERROR, OnFileLastError) ON_UPDATE_COMMAND_UI(ID_FILE_ALL_ERROR, OnUpdateFileAllError) ON_UPDATE_COMMAND_UI(ID_FILE_LAST_ERROR, OnUpdateFileLastError) ON_COMMAND(IDM_COLORMERGE, OnFileColorMerge) ON_COMMAND(ID_WINDOW_CLOSEALL, OnWindowCloseAll) ON_COMMAND(IDM_PREF_PAINTWHILELOAD_NEW, OnPrefPaintwhileloadNew) ON_UPDATE_COMMAND_UI(IDM_PREF_PAINTWHILELOAD_NEW, OnUpdatePrefPaintwhileloadNew) ON_COMMAND(IDM_CAPTURE_IMMEDIATE, OnCaptureImmediate) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_IMMEDIATE, OnUpdateCaptureImmediate) ON_COMMAND(IDM_CONVERT, OnConvert) ON_COMMAND(ID_PREFERENCES_LOADTEXTFILES, OnPreferencesLoadtextfiles) ON_UPDATE_COMMAND_UI(ID_PREFERENCES_LOADTEXTFILES, OnUpdatePreferencesLoadtextfiles) //}}AFX_MSG_MAP ON_COMMAND(IDM_PREF_APPLY, OnPrefApply) ON_UPDATE_COMMAND_UI(IDM_PREF_APPLY, OnUpdatePrefApply) // Standard file based document commands ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) // Standard print setup command ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDemo construction CDemo::CDemo() { m_LDialogBase.EnablePreview(FALSE); m_bDlgEnablePreview = TRUE; m_bDlgEnableApply = TRUE; m_bTwainStarted = FALSE; m_bIsiStarted = FALSE; m_bPaintWhileLoad = FALSE; m_uPicturizeFlag = PICTURIZE_LOADALL | PICTURIZE_RESAMPLE ; m_bEnableAutoSize = FALSE; m_bLoadRotated = FALSE ; m_bLoadCompressed = FALSE ; m_nColrMrgNo = 0 ; m_bDICOMLoadMsg = TRUE; m_bDICOMSaveMsg = TRUE; memset(m_szCurScanDriver,0,sizeof(m_szCurScanDriver)); LBase::LoadLibraries(LT_KRN); LBase::LoadLibraries(LT_DIS); LBase::LoadLibraries(LT_FIL); LBase::LoadLibraries(LT_IMG); LBase::LoadLibraries(LT_EFX); LBase::LoadLibraries(LT_DLG); LBase::LoadLibraries(LT_ISI); LBase::LoadLibraries(LT_TWN); LBase::LoadLibraries(LT_SCR); LBase::LoadLibraries(LT_ANN); LBase::LoadLibraries(LT_TMB); LBase::LoadLibraries(LT_LST); LBase::SetErrorListDepth(100); WRPUNLOCKSUPPORT(); LDialogBase::Initialize(DLG_INIT_COLOR); } CDemo::~CDemo() { LDialogBase::Free(); LBase::UnloadLibraries(LT_KRN); LBase::UnloadLibraries(LT_DIS); LBase::UnloadLibraries(LT_FIL); LBase::UnloadLibraries(LT_IMG); LBase::UnloadLibraries(LT_EFX); LBase::UnloadLibraries(LT_DLG); LBase::UnloadLibraries(LT_ISI); LBase::UnloadLibraries(LT_TWN); LBase::UnloadLibraries(LT_SCR); LBase::UnloadLibraries(LT_ANN); LBase::UnloadLibraries(LT_TMB); LBase::UnloadLibraries(LT_LST); } ///////////////////////////////////////////////////////////////////////////// // The one and only CDemo object CDemo theApp; ///////////////////////////////////////////////////////////////////////////// // CDemo initialization BOOL CDemo::InitInstance() { // Standard initialization // If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following // the specific initialization routines you do not need. #ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif // Change the registry key under which our settings are stored. // You should modify this string to be something appropriate // such as the name of your company or organization. SetRegistryKey(_T("Main LEADTools ClassLIB DEMO")); LoadStdProfileSettings(); // Load standard INI file options (including MRU) // Register the application's document templates. Document templates // serve as the connection between documents, frame windows and views. CMultiDocTemplate* pDocTemplate; pDocTemplate = new CMultiDocTemplate( IDR_MFCDEMTYPE, RUNTIME_CLASS(CDemoDoc), RUNTIME_CLASS(CChildFrame), // custom MDI child frame RUNTIME_CLASS(CDemoView)); AddDocTemplate(pDocTemplate); // create main MDI Frame window CMainFrame* pMainFrame = new CMainFrame; if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) return FALSE; m_pMainWnd = pMainFrame; m_LUserBitmap.Twain()->SetWindow(m_pMainWnd->m_hWnd); m_bTwainAvailable=m_LUserBitmap.Twain()->IsAvailable(); #ifndef UNICODE m_LUserBitmap.Isis()->SetWindow(m_pMainWnd->m_hWnd); m_bIsisAvailable=m_LUserBitmap.Isis()->IsAvailable(); #endif //UNICODE APPLICATIONDATA AppData; if (m_bTwainAvailable) { AppData.hWnd = m_pMainWnd->m_hWnd; AppData.uStructSize = sizeof(AppData); _tcscpy (AppData.szManufacturerName, _T("LEAD Technologies, Inc.")); _tcscpy (AppData.szAppProductFamily, _T("LEAD Test Applications")); _tcscpy (AppData.szVersionInfo, _T("Version 1.0")); _tcscpy (AppData.szAppName, _T("TWAIN Test Application")); m_LUserBitmap.Twain()->InitSession(&AppData); } // Parse command line for standard shell commands, DDE, file open CCommandLineInfo cmdInfo; cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing; ParseCommandLine(cmdInfo); m_strFileName = cmdInfo.m_strFileName; // Dispatch commands specified on the command line if (!ProcessShellCommand(cmdInfo)) return FALSE; // The main window has been initialized, so show and update it. pMainFrame->ShowWindow(m_nCmdShow); pMainFrame->UpdateWindow(); if (!m_strFileName.IsEmpty()) { //OnFileNew(); m_DoucumentMode = DOCUMENT_MODE_FILE; POSITION pos = GetFirstDocTemplatePosition(); CDocTemplate* pDocTemplate = GetNextDocTemplate(pos); pDocTemplate->OpenDocumentFile(m_strFileName); } RegisterAppKey(this->m_hInstance); return TRUE; } ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) virtual BOOL OnInitDialog(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //{{AFX_MSG_MAP(CAboutDlg) //}}AFX_MSG_MAP END_MESSAGE_MAP() // App command to run the dialog void CDemo::OnAppAbout() { CAboutDlg aboutDlg; aboutDlg.DoModal(); } ///////////////////////////////////////////////////////////////////////////// // CDemo commands void CDemo::OnEditPaste() { if(m_LUserBitmap.IsClipboardReady()) { if(m_LUserBitmap.CopyFromClipboard(m_pMainWnd->m_hWnd)==SUCCESS) CreateNewBitmapWindow(_T("Paste"),&m_LUserBitmap); } } void CDemo::OnUpdateEditPaste(CCmdUI* pCmdUI) { pCmdUI->Enable(m_LUserBitmap.IsClipboardReady()); } void CDemo::OnPrefPreview() { m_bDlgEnablePreview = !m_bDlgEnablePreview; } void CDemo::OnUpdatePrefPreview(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_bDlgEnablePreview); } void CDemo::OnPrefApply() { m_bDlgEnableApply = !m_bDlgEnableApply; } void CDemo::OnUpdatePrefApply(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_bDlgEnableApply); } void CDemo::OnCaptureActiveclient() { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pLUserScreenCapture->m_nCaptureType = CAPTURE_ACTIVECLIENT; pLUserScreenCapture->m_nCaptureNo=0; pLUserScreenCapture->EnableImmediateCapture(TRUE); m_LUserBitmap.ScreenCapture()->CaptureActiveClient(); pLUserScreenCapture->EnableImmediateCapture(FALSE); pLUserScreenCapture->m_nCaptureType=CAPTURE_NONE; } void CDemo::OnUpdateCaptureActiveclient(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->Enable(!pLUserScreenCapture->IsCaptureActive()); pCmdUI->SetCheck(pLUserScreenCapture->m_nCaptureType==CAPTURE_ACTIVECLIENT); } void CDemo::OnCaptureActivewin() { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pLUserScreenCapture->m_nCaptureType = CAPTURE_ACTIVEWINDOW; pLUserScreenCapture->m_nCaptureNo=0; pLUserScreenCapture->EnableImmediateCapture(TRUE); m_LUserBitmap.ScreenCapture()->CaptureActiveWindow(); pLUserScreenCapture->EnableImmediateCapture(FALSE); pLUserScreenCapture->m_nCaptureType=CAPTURE_NONE; } void CDemo::OnUpdateCaptureActivewin(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->Enable(!pLUserScreenCapture->IsCaptureActive()); pCmdUI->SetCheck(pLUserScreenCapture->m_nCaptureType==CAPTURE_ACTIVEWINDOW); } void CDemo::OnCaptureArea() { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pLUserScreenCapture->m_nCaptureType = CAPTURE_SELECTEDAREA; pLUserScreenCapture->m_nCaptureNo=0; pLUserScreenCapture->EnableImmediateCapture(TRUE); m_LUserBitmap.ScreenCapture()->CaptureArea(); pLUserScreenCapture->EnableImmediateCapture(FALSE); pLUserScreenCapture->m_nCaptureType=CAPTURE_NONE; } void CDemo::OnUpdateCaptureArea(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->Enable(!pLUserScreenCapture->IsCaptureActive()); pCmdUI->SetCheck(pLUserScreenCapture->m_nCaptureType==CAPTURE_SELECTEDAREA); } void CDemo::OnCaptureAreaop() { L_BOOL Old = m_LUserBitmap.ScreenCapture()->EnableCallBack(FALSE); m_LUserBitmap.ScreenCapture()->CaptureAreaOptionDlg(0, 0); m_LUserBitmap.ScreenCapture()->EnableCallBack(Old); } void CDemo::OnUpdateCaptureAreaop(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->Enable(!pLUserScreenCapture->IsCaptureActive()); } void CDemo::OnCaptureCaptop() { L_BOOL Old = m_LUserBitmap.ScreenCapture()->EnableCallBack(FALSE); m_LUserBitmap.ScreenCapture()->SetCaptureOptionDlg(m_pMainWnd->m_hWnd, 0); m_LUserBitmap.ScreenCapture()->EnableCallBack(Old); } void CDemo::OnUpdateCaptureCaptop(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->Enable(!pLUserScreenCapture->IsCaptureActive()); } void CDemo::OnCaptureExetabbed() { COLORREF TransparentColor = RGB(0,0,0); LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pLUserScreenCapture->m_nCaptureType = CAPTURE_FROMEXEDLGTABBEDVIEW; pLUserScreenCapture->m_nCaptureNo=0; pLUserScreenCapture->EnableImmediateCapture(TRUE); m_LUserBitmap.ScreenCapture()->CaptureFromEXEDlg(0,&TransparentColor, RESTYPE_BITMAP|RESTYPE_ICON|RESTYPE_CURSOR, 0, LTCAPDLG_TABVIEW); pLUserScreenCapture->EnableImmediateCapture(FALSE); pLUserScreenCapture->m_nCaptureType=CAPTURE_NONE; } void CDemo::OnUpdateCaptureExetabbed(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->Enable(!pLUserScreenCapture->IsCaptureActive()); pCmdUI->SetCheck(pLUserScreenCapture->m_nCaptureType==CAPTURE_FROMEXEDLGTABBEDVIEW); } void CDemo::OnCaptureExetree() { COLORREF TransparentColor = RGB(0,0,0); LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pLUserScreenCapture->m_nCaptureType = CAPTURE_FROMEXEDLGTREE; pLUserScreenCapture->m_nCaptureNo=0; pLUserScreenCapture->EnableImmediateCapture(TRUE); m_LUserBitmap.ScreenCapture()->CaptureFromEXEDlg(0,&TransparentColor, RESTYPE_BITMAP|RESTYPE_ICON|RESTYPE_CURSOR, 0, LTCAPDLG_TREEVIEW); pLUserScreenCapture->EnableImmediateCapture(FALSE); pLUserScreenCapture->m_nCaptureType=CAPTURE_NONE; } void CDemo::OnUpdateCaptureExetree(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->Enable(!pLUserScreenCapture->IsCaptureActive()); pCmdUI->SetCheck(pLUserScreenCapture->m_nCaptureType==CAPTURE_FROMEXEDLGTREE); } void CDemo::OnCaptureMenu() { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pLUserScreenCapture->m_nCaptureType = CAPTURE_MENUUNDERCURSOR; pLUserScreenCapture->m_nCaptureNo=0; pLUserScreenCapture->EnableImmediateCapture(TRUE); m_LUserBitmap.ScreenCapture()->CaptureMenuUnderCursor(); pLUserScreenCapture->EnableImmediateCapture(FALSE); pLUserScreenCapture->m_nCaptureType=CAPTURE_NONE; } void CDemo::OnUpdateCaptureMenu(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->Enable(!pLUserScreenCapture->IsCaptureActive()); pCmdUI->SetCheck(pLUserScreenCapture->m_nCaptureType==CAPTURE_MENUUNDERCURSOR); } void CDemo::OnCaptureMousecursor() { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pLUserScreenCapture->m_nCaptureType = CAPTURE_MOUSECURSOR; pLUserScreenCapture->m_nCaptureNo=0; pLUserScreenCapture->EnableImmediateCapture(TRUE); m_LUserBitmap.ScreenCapture()->CaptureMouseCursor(); pLUserScreenCapture->EnableImmediateCapture(FALSE); pLUserScreenCapture->m_nCaptureType=CAPTURE_NONE; } void CDemo::OnUpdateCaptureMousecursor(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->Enable(!pLUserScreenCapture->IsCaptureActive()); pCmdUI->SetCheck(pLUserScreenCapture->m_nCaptureType==CAPTURE_MOUSECURSOR); } void CDemo::OnCaptureObject() { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pLUserScreenCapture->m_nCaptureType = CAPTURE_SELECTEDOBJECT; pLUserScreenCapture->m_nCaptureNo=0; pLUserScreenCapture->EnableImmediateCapture(TRUE); m_LUserBitmap.ScreenCapture()->CaptureSelectedObject(); pLUserScreenCapture->EnableImmediateCapture(FALSE); pLUserScreenCapture->m_nCaptureType=CAPTURE_NONE; } void CDemo::OnUpdateCaptureObject(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->Enable(!pLUserScreenCapture->IsCaptureActive()); pCmdUI->SetCheck(pLUserScreenCapture->m_nCaptureType==CAPTURE_SELECTEDOBJECT); } void CDemo::OnCaptureObjectop() { int bEnable = m_LUserBitmap.ScreenCapture()->EnableCallBack(FALSE); m_LUserBitmap.ScreenCapture()->CaptureObjectOptionDlg(0, 0); m_LUserBitmap.ScreenCapture()->EnableCallBack(bEnable); } void CDemo::OnUpdateCaptureObjectop(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->Enable(!pLUserScreenCapture->IsCaptureActive()); } void CDemo::OnCaptureScreen() { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pLUserScreenCapture->m_nCaptureType = CAPTURE_FULLSCREEN; pLUserScreenCapture->m_nCaptureNo=0; pLUserScreenCapture->EnableImmediateCapture(TRUE); m_LUserBitmap.ScreenCapture()->CaptureFullScreen(); pLUserScreenCapture->EnableImmediateCapture(FALSE); pLUserScreenCapture->m_nCaptureType=CAPTURE_NONE; } void CDemo::OnUpdateCaptureScreen(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->Enable(!pLUserScreenCapture->IsCaptureActive()); pCmdUI->SetCheck(pLUserScreenCapture->m_nCaptureType==CAPTURE_FULLSCREEN); } void CDemo::OnCaptureStop() { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pLUserScreenCapture->m_nCaptureType=CAPTURE_NONE; pLUserScreenCapture->StopCapture(); } void CDemo::OnUpdateCaptureStop(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->Enable(pLUserScreenCapture->IsCaptureActive()); } void CDemo::OnCaptureWallpaper() { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pLUserScreenCapture->m_nCaptureType = CAPTURE_WALLPAPER; pLUserScreenCapture->m_nCaptureNo=0; pLUserScreenCapture->EnableImmediateCapture(TRUE); m_LUserBitmap.ScreenCapture()->CaptureWallpaper(); pLUserScreenCapture->EnableImmediateCapture(FALSE); pLUserScreenCapture->m_nCaptureType=CAPTURE_NONE; } void CDemo::OnUpdateCaptureWallpaper(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->Enable(!pLUserScreenCapture->IsCaptureActive()); pCmdUI->SetCheck(pLUserScreenCapture->m_nCaptureType==CAPTURE_WALLPAPER); } void CDemo::OnCaptureWinundercursor() { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pLUserScreenCapture->m_nCaptureType = CAPTURE_WINDOWUNDERCURSOR; pLUserScreenCapture->m_nCaptureNo=0; pLUserScreenCapture->EnableImmediateCapture(TRUE); m_LUserBitmap.ScreenCapture()->CaptureWindowUnderCursor(); pLUserScreenCapture->EnableImmediateCapture(FALSE); pLUserScreenCapture->m_nCaptureType=CAPTURE_NONE; } void CDemo::OnUpdateCaptureWinundercursor(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->Enable(!pLUserScreenCapture->IsCaptureActive()); pCmdUI->SetCheck(pLUserScreenCapture->m_nCaptureType==CAPTURE_WINDOWUNDERCURSOR); } ////////////////////////////////////////////// prsfe void CDemo::OnPrefBitfavor() { m_nBitonalScaling = DISPLAYMODE_FAVORBLACK; LBitmapSettings::SetDisplayMode(DISPLAYMODE_FAVORBLACK|DISPLAYMODE_SCALETOGRAY, DISPLAYMODE_FAVORBLACK); } void CDemo::OnUpdatePrefBitfavor(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_nBitonalScaling==DISPLAYMODE_FAVORBLACK); } void CDemo::OnPrefBitnormal() { m_nBitonalScaling = 0; LBitmapSettings::SetDisplayMode(DISPLAYMODE_FAVORBLACK|DISPLAYMODE_SCALETOGRAY,0); } void CDemo::OnUpdatePrefBitnormal(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_nBitonalScaling==0); } void CDemo::OnPrefBitscalegray() { m_nBitonalScaling = DISPLAYMODE_SCALETOGRAY; LBitmapSettings::SetDisplayMode(DISPLAYMODE_SCALETOGRAY|DISPLAYMODE_FAVORBLACK, DISPLAYMODE_SCALETOGRAY); } void CDemo::OnUpdatePrefBitscalegray(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_nBitonalScaling==DISPLAYMODE_SCALETOGRAY); } void CDemo::OnPrefDithrerrdiff() { m_nOrderedDither = 0; LBitmapSettings::SetDisplayMode(DISPLAYMODE_ORDEREDDITHER,0); } void CDemo::OnUpdatePrefDithrerrdiff(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_nOrderedDither==0); } void CDemo::OnPrefDithrordered() { m_nOrderedDither = DISPLAYMODE_ORDEREDDITHER; LBitmapSettings::SetDisplayMode(DISPLAYMODE_ORDEREDDITHER,DISPLAYMODE_ORDEREDDITHER); } void CDemo::OnUpdatePrefDithrordered(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_nOrderedDither); } void CDemo::OnPrefLoadcompressed() { m_bLoadCompressed = !m_bLoadCompressed ; } void CDemo::OnUpdatePrefLoadcompressed(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_bLoadCompressed) ; } void CDemo::OnPrefLoadrotated() { L_INT nRet = 0; m_bLoadRotated = !m_bLoadRotated; } void CDemo::OnUpdatePrefLoadrotated(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_bLoadRotated) ; } void CDemo::OnPrefPalauto() { m_nAutoPalette = 0; LBitmapSettings::SetDisplayMode(DISPLAYMODE_FIXEDPALETTE| DISPLAYMODE_NETSCAPEPALETTE,0); } void CDemo::OnUpdatePrefPalauto(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_nAutoPalette==0); } void CDemo::OnPrefPalfixed() { m_nAutoPalette = DISPLAYMODE_FIXEDPALETTE; LBitmapSettings::SetDisplayMode(DISPLAYMODE_FIXEDPALETTE|DISPLAYMODE_NETSCAPEPALETTE, DISPLAYMODE_FIXEDPALETTE); } void CDemo::OnUpdatePrefPalfixed(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_nAutoPalette==DISPLAYMODE_FIXEDPALETTE); } void CDemo::OnPrefPalnetscape() { m_nAutoPalette = DISPLAYMODE_NETSCAPEPALETTE; LBitmapSettings::SetDisplayMode(DISPLAYMODE_FIXEDPALETTE|DISPLAYMODE_NETSCAPEPALETTE, DISPLAYMODE_FIXEDPALETTE|DISPLAYMODE_NETSCAPEPALETTE); } void CDemo::OnUpdatePrefPalnetscape(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_nAutoPalette==DISPLAYMODE_NETSCAPEPALETTE); } void CDemo::OnTwainAcquire() { L_INT nRet; pBITMAPHANDLE pBitmap=NULL; m_bTwainStarted = TRUE; m_LUserBitmap.Twain()->EnableCallBack(TRUE); nRet = m_LUserBitmap.Twain()->Acquire(pBitmap, sizeof(BITMAPHANDLE), LTWAIN_SHOW_USER_INTERFACE, NULL); if (nRet != SUCCESS) MessageBox(NULL, _T(" The image acquisition process failed!"), _T("Error"), MB_OK); m_bTwainStarted = FALSE; } void CDemo::OnUpdateTwainAcquire(CCmdUI* pCmdUI) { pCmdUI->Enable(m_bTwainAvailable&&!m_bTwainStarted); } void CDemo::OnTwainSelsource() { // Show the Twain Select Source UI L_INT nRet = m_LUserBitmap.Twain()->SelectSource(NULL); if (nRet != SUCCESS) MessageBox (NULL, _T("Error occurred while selecting the source."), _T("ERROR"), MB_OK); } void CDemo::OnUpdateTwainSelsource(CCmdUI* pCmdUI) { pCmdUI->Enable(m_bTwainAvailable); } void CDemo::OnIsisAcquire() { #ifndef UNICODE m_bIsiStarted = TRUE; L_CHAR * pCurScanDriver = NULL; if(m_szCurScanDriver[0] != 0) pCurScanDriver = m_szCurScanDriver; L_INT nRetCode = m_LUserBitmap.Isis()->LoadDriver(pCurScanDriver); if (nRetCode == SUCCESS) { if(m_LUserBitmap.Isis()->Acquire(ISIS_SHOWUI)==SUCCESS) CreateNewBitmapWindow(_T(" Scan from Isis "),&m_LUserBitmap); else m_LUserBitmap.DisplayErrorFromList(m_pMainWnd->m_hWnd,LEAD_LAST_ERROR); m_LUserBitmap.Isis()->UnloadDriver(); } if(nRetCode!=SUCCESS) m_LUserBitmap.DisplayErrorFromList(m_pMainWnd->m_hWnd,LEAD_LAST_ERROR); m_bIsiStarted = FALSE; #endif //UNICODE } void CDemo::OnUpdateIsisAcquire(CCmdUI* pCmdUI) { #ifndef UNICODE pCmdUI->Enable(m_bIsisAvailable); #endif //UNICODE } void CDemo::OnIsisSelsource() { #ifndef UNICODE L_INT nRetcode = m_LUserBitmap.Isis()->Select(m_szCurScanDriver); if (nRetcode != SUCCESS) m_LUserBitmap.DisplayErrorFromList(m_pMainWnd->m_hWnd,LEAD_LAST_ERROR); #endif //UNICODE } void CDemo::OnUpdateIsisSelsource(CCmdUI* pCmdUI) { #ifndef UNICODE pCmdUI->Enable(m_bIsisAvailable); #endif //UNICODE } void CDemo::OnIsisAcquiremulti() { #ifndef UNICODE LDialogFile dlg; L_TCHAR szFileName[255]; memset(szFileName,0,sizeof(szFileName)); SAVEDLGPARAMS SaveParms ; OPENFILENAME OpenFileName ; memset ( &SaveParms, 0, sizeof ( SAVEDLGPARAMS ) ) ; OpenFileName.lStructSize = sizeof ( OPENFILENAME ) ; OpenFileName.lpstrInitialDir = NULL; OpenFileName.lpstrTitle = _T("Save a File"); OpenFileName.nFilterIndex = 0 ; SaveParms.uStructSize = sizeof ( SAVEDLGPARAMS) ; SaveParms.nQFactor = 2 ; SaveParms.nPageNumber = 1 ; SaveParms.nStampBits = 24; SaveParms.nStampWidth = 120; SaveParms.nStampHeight = 120; SaveParms.nBitsPerPixel = 24; SaveParms.nFormat = FILE_BMP; SaveParms.uSaveMulti = MULTIPAGE_OPERATION_REPLACE ; SaveParms.uDlgFlags = DLG_SAVE_SHOW_FILEOPTIONS_PROGRESSIVE | DLG_SAVE_SHOW_FILEOPTIONS_MULTIPAGE | DLG_SAVE_SHOW_FILEOPTIONS_STAMP | DLG_SAVE_SHOW_FILEOPTIONS_QFACTOR | DLG_SAVE_SHOW_FILEOPTIONS_J2KOPTIONS | DLG_SAVE_SHOW_FILEOPTIONS_BASICJ2KOPTIONS | DLG_SAVE_SHOW_FILEOPTIONS_JBIG2OPTIONS ; dlg.SetSaveParams(&SaveParms); if(dlg.DoModalSave(m_pMainWnd->m_hWnd) == SUCCESS_DLG_OK) { dlg.GetFileName(szFileName,sizeof(szFileName)); L_CHAR * pCurScanDriver = NULL; if(m_szCurScanDriver[0] != 0) pCurScanDriver = m_szCurScanDriver; L_INT nRetCode = m_LUserBitmap.Isis()->LoadDriver(pCurScanDriver); #ifdef _UNICODE L_CHAR szFile [ L_MAXPATH ] ; WideCharToMultiByte(CP_ACP, 0, szFileName, -1, szFile, L_MAXPATH, NULL, NULL); m_LUserBitmap.Isis()->AcquireMulti(szFile, ISIS_SHOWUI); #else m_LUserBitmap.Isis()->AcquireMulti(szFileName, ISIS_SHOWUI); #endif m_LUserBitmap.Isis()->UnloadDriver(); } #endif //UNICODE } void CDemo::OnUpdateIsisAcquiremulti(CCmdUI* pCmdUI) { pCmdUI->Enable(m_bIsisAvailable); } CDocument* CDemo::OpenDocumentFile(LPCTSTR lpszFileName) { m_DoucumentMode = DOCUMENT_MODE_FILE; return CWinApp::OpenDocumentFile(lpszFileName); } void CDemo::CreateNewBitmapListWindow(LPTSTR lpCaption,LBitmapList *pLBitmapListSrc) { if(lpCaption==NULL) _tcscpy(m_szCaption,_T("LEAD Bitmap")); else memmove(m_szCaption,lpCaption,min(sizeof(m_szCaption),lstrlen(lpCaption) * sizeof (L_TCHAR))); m_LBitmapList.SetBitmapList(pLBitmapListSrc); m_DoucumentMode = DOCUMENT_MODE_BITMAPLIST; OnFileNew(); } void CDemo::CreateNewBitmapWindow(LPTSTR lpCaption,LBitmapBase* pLBitmapSrc) { if(pLBitmapSrc==NULL) { m_LUserBitmap.DisplayError(m_pMainWnd->m_hWnd,_T("Error : Create window")); ASSERT(FALSE); return ; } m_DoucumentMode = DOCUMENT_MODE_BITMAP; memset(&m_szCaption,0,sizeof(m_szCaption)); m_LUserBitmap.SetHandle(pLBitmapSrc->GetHandle()); if(lpCaption==NULL) _tcscpy(m_szCaption,_T("LEAD Bitmap")); else memmove(m_szCaption,lpCaption,min(sizeof(m_szCaption),lstrlen(lpCaption)* sizeof (L_TCHAR))); if(m_LUserBitmap.IsAllocated()==TRUE) OnFileNew(); } void CDemo::OnFileOpen() { OPENDLGPARAMS FOParm ; OPENFILENAME OpenFileName; memset ( &FOParm, 0, sizeof(OPENDLGPARAMS)) ; memset ( &OpenFileName, 0, sizeof(OPENFILENAME)) ; OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.lpstrInitialDir = NULL; OpenFileName.Flags = OFN_EXPLORER; FOParm.uStructSize = sizeof(OPENDLGPARAMS); FOParm.uDlgFlags = DLG_OPEN_ENABLESIZING | DLG_OPEN_SHOW_PROGRESSIVE | DLG_OPEN_USEFILESTAMP | DLG_OPEN_SHOW_MULTIPAGE | DLG_OPEN_SHOW_LOADROTATED | DLG_OPEN_SHOW_LOADCOMPRESSED | DLG_OPEN_SHOW_DELPAGE | DLG_OPEN_SHOW_LOADOPTIONS | DLG_OPEN_SHOW_FILEINFO | DLG_OPEN_SHOW_PDFOPTIONS | DLG_OPEN_SHOW_RASTEROPTIONS | DLG_OPEN_SHOW_VECTOROPTIONS | DLG_OPEN_VIEWTOTALPAGES | (m_bLoadCompressed?DLG_OPEN_ALWAYSLOADCOMPRESSED:0) | (m_bLoadRotated?DLG_OPEN_ALWAYSLOADROTATED:0); FOParm.bPreviewEnabled = TRUE; m_LUserBitmap.DialogFile()->SetOpenParams(&FOParm) ; m_LUserBitmap.DialogFile()->EnablePreview(m_bDlgEnablePreview); m_LUserBitmap.DialogFile()->SetOpenFileName(&OpenFileName) ; m_LUserBitmap.DialogFile()->EnableCallBack(FALSE); L_INT nRetCode = m_LUserBitmap.DialogFile()->DoModalOpen(m_pMainWnd->m_hWnd); if(nRetCode==SUCCESS_DLG_OK) { L_TCHAR szFileName[256]; memset(szFileName,0,sizeof(szFileName)); L_UINT uSize=sizeof(szFileName); m_LUserBitmap.GetFileName(szFileName,&uSize); m_DoucumentMode = DOCUMENT_MODE_FILE; m_LUserBitmap.DialogFile()->GetOpenParams(&FOParm,sizeof(FOParm)) ; if ( FOParm.pFileData && FOParm.pFileData[0].pFileInfo != NULL ) { if ( ( FOParm.pFileData[0].pFileInfo->Format == FILE_J2K ) || ( FOParm.pFileData[0].pFileInfo->Format == FILE_JP2 ) || ( FOParm.pFileData[0].pFileInfo->Format == FILE_CMW ) ) { LPOPENDLGOPTIONS_RASTERMISC pOption = ( LPOPENDLGOPTIONS_RASTERMISC ) FOParm.pFileData[0].FileOptions.pOptions ; LFileSettings::SetLoadResolution ( FOParm.pFileData[0].pFileInfo->Format,pOption->uXResolution,pOption->uYResolution ) ; } } POSITION pos = GetFirstDocTemplatePosition(); CDocTemplate* pDocTemplate = GetNextDocTemplate(pos); pDocTemplate->OpenDocumentFile(szFileName); } } void CDemo::OnFileAllError() { LBase::DisplayErrorList(m_pMainWnd->m_hWnd); } void CDemo::OnFileLastError() { LBase::DisplayErrorFromList(m_pMainWnd->m_hWnd); } void CDemo::OnUpdateFileAllError(CCmdUI* pCmdUI) { pCmdUI->Enable(LBase::GetErrorsNumber()); } void CDemo::OnUpdateFileLastError(CCmdUI* pCmdUI) { pCmdUI->Enable(LBase::GetErrorsNumber()); } void CDemo::OnFileColorMerge() { m_DoucumentMode = DOCUMENT_MODE_COLORMERGE ; m_nColrMrgNo++ ; wsprintf(m_szCaption,_T("Color Merged Data %d"),m_nColrMrgNo); OnFileNew() ; } void CDemo::OnWindowCloseAll() { CloseAllDocuments(TRUE) ; } void CDemo::OnPrefPaintwhileloadNew() { m_bPaintWhileLoad = !m_bPaintWhileLoad; } void CDemo::OnUpdatePrefPaintwhileloadNew(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_bPaintWhileLoad); } void CDemo::OnCaptureImmediate() { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pLUserScreenCapture->m_bImmediateCapture = !pLUserScreenCapture->m_bImmediateCapture; } void CDemo::OnUpdateCaptureImmediate(CCmdUI* pCmdUI) { LUserScrCapture* pLUserScreenCapture=(LUserScrCapture*)m_LUserBitmap.ScreenCapture(); pCmdUI->SetCheck(pLUserScreenCapture->m_bImmediateCapture); } BOOL CAboutDlg::OnInitDialog() { CDialog::OnInitDialog(); VERSIONINFO VersionInfo; L_TCHAR szMessage[1024]; memset(szMessage,0,sizeof(szMessage)); LBase::VersionInfo(&VersionInfo, sizeof(VersionInfo)); wsprintf(szMessage, _T("LEAD Product: %hs\r\n%s") _T("Version %d.%d\r\n") _T("Date: %hs\r\n") _T("Time: %hs"), (L_CHAR L_FAR *)VersionInfo.Product, (L_TCHAR L_FAR *)((VersionInfo.Level==TOOLKIT_LEVEL_MEDICAL) ? _T("Medical editions") : (VersionInfo.Level==TOOLKIT_LEVEL_DOCUMENT)? _T("Express editions "): _T("Professional Edition")), VersionInfo.MajorNumber,VersionInfo.MinorNumber, (L_CHAR L_FAR *)VersionInfo.Date, (L_CHAR L_FAR *)VersionInfo.Time); GetDlgItem(IDC_STATIC_VERSIONINFO)->SetWindowText(szMessage); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } L_BOOL RegisterAppKey ( HINSTANCE hInstance ) { DWORD dwDispos ; BOOL fRet = TRUE ; LONG lRet ; HKEY hKey ; L_TCHAR strOpen [MAX_PATH*2] = _T(""); L_TCHAR strDefaultIcon [MAX_PATH*2] = _T(""); L_TCHAR* pszPathName = NULL ; L_TCHAR L_FAR* szRegisterKey [ REG_KEYS ] = { _T("\\shell\\open\\command"), _T("\\DefaultIcon") } ; {// CREATE SERVER NODE lRet = RegCreateKeyEx ( HKEY_CLASSES_ROOT, REGISTRYKEY_SERVER_NAME, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, &dwDispos ) ; RegCloseKey ( hKey ) ; if ( lRet != ERROR_SUCCESS ) { return FALSE ; } }// CREATE SERVER NODE { L_UINT32 dwRet = 0 ; L_TCHAR szFullFileName [L_MAXPATH] = {0} ; L_TCHAR szShortFileName [L_MAXPATH] = {0} ; L_TCHAR L_FAR* szRegisterKeyDefaultValues [ REG_KEYS ] ; int k ; GetModuleFileName ( hInstance, szFullFileName, MAX_PATH ) ; dwRet = GetShortPathName ( szFullFileName, szShortFileName, L_MAXPATH ) ; if ( ERROR_INVALID_PARAMETER == dwRet ) { pszPathName = szFullFileName ; } else { pszPathName = szShortFileName ; } // Open STRING wsprintf ( strOpen, _T("%s \"%%1\""), pszPathName ) ; // DEFAULT ICON wsprintf ( strDefaultIcon,_T("%s,%d"), pszPathName, -IDR_MAINFRAME ) ; szRegisterKeyDefaultValues [ 0 ] = strOpen ; szRegisterKeyDefaultValues [ 1 ] = strDefaultIcon ; for ( k = 0; k < REG_KEYS; k++ ) { L_TCHAR strKey [ MAX_PATH * 2 ] = { 0 } ; //compose full key wsprintf ( strKey, _T("%s%s"), REGISTRYKEY_SERVER_NAME, szRegisterKey [ k ] ) ; // create... lRet = RegCreateKeyEx ( HKEY_CLASSES_ROOT, strKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, &dwDispos ) ; // set default value if ( lRet == ERROR_SUCCESS ) { RegSetValueEx ( hKey, _T(""), 0, REG_SZ, ( BYTE* CONST ) ( szRegisterKeyDefaultValues [ k ] ), ( lstrlen ( szRegisterKeyDefaultValues [ k ] ) + 1 ) * sizeof ( TCHAR ) ) ; } else { fRet = FALSE ; } // close key handle RegCloseKey ( hKey ) ; } } return fRet; } void CDemo::OnConvert() { // TODO: Add your command handler code here FILECONVERSIONDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(FILECONVERSIONDLGPARAMS)); LDialogFile dlg; DlgParams.uStructSize = sizeof ( FILECONVERSIONDLGPARAMS ) ; DlgParams.uOverwrite = DLG_FILECONVERSION_OVERWRITE_SKIP ; DlgParams.pFileFormats = NULL ; DlgParams.nFileFormatsCount = 0 ; DlgParams.bUseLogReport = TRUE ; DlgParams.bRemoveSrcFile = FALSE ; DlgParams.bShowFullPath = TRUE ; DlgParams.bUseOriginalFolder = TRUE ; DlgParams.pszSrcFileList = NULL ; DlgParams.uDlgFlags = DLG_FILECONVERSION_SHOW_LOADOPTIONS | DLG_FILECONVERSION_SHOW_FILEINFO | DLG_FILECONVERSION_SHOW_PREVIEW_PAGES | DLG_FILECONVERSION_SHOW_RESIZE | DLG_FILECONVERSION_SHOW_ROTATE | DLG_FILECONVERSION_SHOW_NAMINGTEMPLATE | DLG_FILECONVERSION_SHOW_OVERWRITE | DLG_FILECONVERSION_SHOW_OVERWRITE_ALL | DLG_FILECONVERSION_SHOW_ADD | DLG_FILECONVERSION_SHOW_ADDFOLDER | DLG_FILECONVERSION_SHOW_REMOVE | DLG_FILECONVERSION_SHOW_SELECTALL | DLG_FILECONVERSION_SHOW_DELETEORIGINAL | DLG_FILECONVERSION_SHOW_NEWFORMATSUPDATES ; dlg.EnablePreview(theApp.m_bDlgEnablePreview ); dlg.SetFileConversionParams(&DlgParams); dlg.DoModalFileConversion(m_pMainWnd->m_hWnd); } int CDemo::ExitInstance() { if (theApp.m_bTwainAvailable) theApp.m_LUserBitmap.Twain()->EndSession(); return CWinApp::ExitInstance(); } void CDemo::OnPreferencesLoadtextfiles() { L_INT nRet; FILETXTOPTIONS TxtOptions; nRet = LFileSettings::GetTXTOptions( &TxtOptions, sizeof( TxtOptions ) ); if( SUCCESS == nRet ) { TxtOptions.bEnabled = !(TxtOptions.bEnabled); LFileSettings::SetTXTOptions( &TxtOptions ); } } void CDemo::OnUpdatePreferencesLoadtextfiles(CCmdUI* pCmdUI) { L_INT nRet; FILETXTOPTIONS TxtOptions; nRet = LFileSettings::GetTXTOptions( &TxtOptions, sizeof( TxtOptions ) ); if( SUCCESS == nRet ) pCmdUI->SetCheck(TxtOptions.bEnabled); }