home *** CD-ROM | disk | FTP | other *** search
/ Mastering Visual Basic 6 / mastvb6.iso / leadtools / ocx32.lt / Mfcdemo.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1998-07-03  |  15.2 KB  |  532 lines

  1. // mfcdemo.cpp : Defines the class behaviors for the application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "mfcdemo.h"
  6.  
  7. #include "Maindemo.h"
  8. #include "Childdem.h"
  9. #include "mfcdeDoc.h"
  10. #include "mfcdeVw.h"
  11. #include "LeadDlg.h"
  12. #include "..\..\..\..\include\ltdlgocx.h"
  13.  
  14. #ifdef _DEBUG
  15. #define new DEBUG_NEW
  16. #undef THIS_FILE
  17. static char THIS_FILE[] = __FILE__;
  18. #endif
  19.  
  20. /////////////////////////////////////////////////////////////////////////////
  21. // CMfcdemoApp
  22.  
  23. BEGIN_MESSAGE_MAP(CMfcdemoApp, CWinApp)
  24.     //{{AFX_MSG_MAP(CMfcdemoApp)
  25.     ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
  26.     ON_COMMAND(ID_FILE_CAPTURESCREEN, OnFileCapturescreen)
  27.     ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
  28.     ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, OnUpdateEditPaste)
  29.     ON_COMMAND(ID_FILE_ACQUIRE, OnFileAcquire)
  30.     ON_COMMAND(ID_FILE_SELECTSOURCE, OnFileSelectsource)
  31.     ON_COMMAND(ID_FILE_ISISSELECTSOURCE, OnFileIsisSelectSource)
  32.     ON_COMMAND(ID_PREFERENCES_DITHERING_ERRORDIFFUSION, OnPreferencesDitheringErrordiffusion)
  33.     ON_COMMAND(ID_PREFERENCES_DITHERING_ORDERED, OnPreferencesDitheringOrdered)
  34.     ON_COMMAND(ID_PREFERENCES_PALETTE_AUTO, OnPreferencesPaletteAuto)
  35.     ON_COMMAND(ID_PREFERENCES_PALETTE_FIXED, OnPreferencesPaletteFixed)
  36.     ON_COMMAND(ID_PREFERENCES_BITONALSCALING_FAVORBLACK, OnPreferencesBitonalscalingFavorblack)
  37.     ON_COMMAND(ID_PREFERENCES_BITONALSCALING_NORMAL, OnPreferencesBitonalscalingNormal)
  38.     ON_COMMAND(ID_PREFERENCES_BITONALSCALING_SCALETOGRAY, OnPreferencesBitonalscalingScaletogray)
  39.     ON_UPDATE_COMMAND_UI(ID_PREFERENCES_DITHERING_ERRORDIFFUSION, OnUpdatePreferencesDitheringErrordiffusion)
  40.     ON_UPDATE_COMMAND_UI(ID_PREFERENCES_DITHERING_ORDERED, OnUpdatePreferencesDitheringOrdered)
  41.     ON_UPDATE_COMMAND_UI(ID_PREFERENCES_PALETTE_AUTO, OnUpdatePreferencesPaletteAuto)
  42.     ON_UPDATE_COMMAND_UI(ID_PREFERENCES_PALETTE_FIXED, OnUpdatePreferencesPaletteFixed)
  43.     ON_UPDATE_COMMAND_UI(ID_PREFERENCES_BITONALSCALING_NORMAL, OnUpdatePreferencesBitonalscalingNormal)
  44.     ON_UPDATE_COMMAND_UI(ID_PREFERENCES_BITONALSCALING_SCALETOGRAY, OnUpdatePreferencesBitonalscalingScaletogray)
  45.     ON_UPDATE_COMMAND_UI(ID_PREFERENCES_BITONALSCALING_FAVORBLACK, OnUpdatePreferencesBitonalscalingFavorblack)
  46.     ON_COMMAND(ID_FILE_COLORMERGE, OnFileColormerge)
  47.     ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
  48. #ifndef _ALPHA_
  49.     ON_COMMAND(ID_FILE_ISISACQUIRE, OnFileIsisacquire)
  50.     ON_COMMAND(ID_FILE_ISISACQUIREMULTI, OnFileIsisacquiremulti)
  51.     ON_UPDATE_COMMAND_UI(ID_FILE_ISISACQUIRE, OnUpdateFileIsisacquire)
  52.     ON_UPDATE_COMMAND_UI(ID_FILE_ISISACQUIREMULTI, OnUpdateFileIsisacquiremulti)
  53.     ON_UPDATE_COMMAND_UI(ID_FILE_ISISSELECTSOURCE, OnUpdateFileIsisselectsource)
  54. #endif
  55.     //}}AFX_MSG_MAP
  56.     // Standard file based document commands
  57.     ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
  58.     ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
  59.     // Standard print setup command
  60.     ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
  61. END_MESSAGE_MAP()
  62.  
  63. /////////////////////////////////////////////////////////////////////////////
  64. // CMfcdemoApp construction
  65.  
  66. CMfcdemoApp::CMfcdemoApp()
  67. {
  68.     // TODO: add construction code here,
  69.     // Place all significant initialization in InitInstance
  70. }
  71.  
  72. /////////////////////////////////////////////////////////////////////////////
  73. // The one and only CMfcdemoApp object
  74.  
  75. CMfcdemoApp theApp;
  76. short gnPage;
  77.  
  78. /////////////////////////////////////////////////////////////////////////////
  79. // CMfcdemoApp initialization
  80.  
  81. BOOL CMfcdemoApp::InitInstance()
  82. {
  83.     AfxEnableControlContainer();
  84.  
  85.     m_nOpenMode = OPENMODE_FILE;
  86.     m_fOrderedDither = TRUE;
  87.     m_fAutoPalette = TRUE;
  88.     m_nBitonalScaling = BITONALSCALING_NORMAL;
  89.     gnPage = 1;
  90.  
  91.     // Standard initialization
  92.     // If you are not using these features and wish to reduce the size
  93.     //  of your final executable, you should remove from the following
  94.     //  the specific initialization routines you do not need.
  95.  
  96. #ifdef _AFXDLL
  97.     Enable3dControls();            // Call this when using MFC in a shared DLL
  98. #else
  99.     Enable3dControlsStatic();    // Call this when linking to MFC statically
  100. #endif
  101.  
  102.     LoadStdProfileSettings();  // Load standard INI file options (including MRU)
  103.  
  104.     // Register the application's document templates.  Document templates
  105.     //  serve as the connection between documents, frame windows and views.
  106.  
  107.     CMultiDocTemplate* pDocTemplate;
  108.     pDocTemplate = new CMultiDocTemplate(
  109.         IDR_MFCDEMTYPE,
  110.         RUNTIME_CLASS(CMfcdemoDoc),
  111.         RUNTIME_CLASS(CChildFrame), // custom MDI child frame
  112.         RUNTIME_CLASS(CMfcdemoView));
  113.     AddDocTemplate(pDocTemplate);
  114.  
  115.     // create main MDI Frame window
  116.     CMainFrame* pMainFrame = new CMainFrame;
  117.     if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
  118.         return FALSE;
  119.     m_pMainWnd = pMainFrame;
  120.  
  121.  
  122.     // The main window has been initialized, so show and update it.
  123.     pMainFrame->ShowWindow(m_nCmdShow);
  124.     pMainFrame->UpdateWindow();
  125.  
  126.     return TRUE;
  127. }
  128.  
  129. /////////////////////////////////////////////////////////////////////////////
  130. // CAboutDlg dialog used for App About
  131.  
  132. class CAboutDlg : public CDialog
  133. {
  134. public:
  135.     CAboutDlg();
  136.  
  137. // Dialog Data
  138.     //{{AFX_DATA(CAboutDlg)
  139.     enum { IDD = IDD_ABOUTBOX };
  140.     //}}AFX_DATA
  141.  
  142.     // ClassWizard generated virtual function overrides
  143.     //{{AFX_VIRTUAL(CAboutDlg)
  144.     protected:
  145.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  146.     //}}AFX_VIRTUAL
  147.  
  148. // Implementation
  149. protected:
  150.     //{{AFX_MSG(CAboutDlg)
  151.     //}}AFX_MSG
  152.     DECLARE_MESSAGE_MAP()
  153. };
  154.  
  155. CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
  156. {
  157.     //{{AFX_DATA_INIT(CAboutDlg)
  158.     //}}AFX_DATA_INIT
  159. }
  160.  
  161. void CAboutDlg::DoDataExchange(CDataExchange* pDX)
  162. {
  163.     CDialog::DoDataExchange(pDX);
  164.     //{{AFX_DATA_MAP(CAboutDlg)
  165.     //}}AFX_DATA_MAP
  166. }
  167.  
  168. BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
  169.     //{{AFX_MSG_MAP(CAboutDlg)
  170.     //}}AFX_MSG_MAP
  171. END_MESSAGE_MAP()
  172.  
  173. // App command to run the dialog
  174. void CMfcdemoApp::OnAppAbout()
  175. {
  176.     CAboutDlg aboutDlg;
  177.     aboutDlg.DoModal();
  178. }
  179.  
  180. /////////////////////////////////////////////////////////////////////////////
  181. // CMfcdemoApp commands
  182. int CMfcdemoApp::DisplayLEADError(int nCode)
  183. {
  184.     CString str;
  185.  
  186.     if((nCode == ERROR_DLG_CANCELED) || (nCode == ERROR_ISIS_CANCEL))
  187.        nCode = 0;
  188.  
  189.     if(nCode)
  190.     {
  191.         str.Format("A LEADTOOLS error has occured.\nCODE = %d", nCode);
  192.         m_pMainWnd->MessageBox(str);
  193.     }
  194.     return(nCode);
  195. }
  196.  
  197. void CMfcdemoApp::OpenDocument(int nMode)
  198. {
  199.     m_nOpenMode = nMode;
  200.     OnFileNew();
  201.     m_nOpenMode = OPENMODE_FILE;
  202. }
  203.  
  204. void CMfcdemoApp::OnFileCapturescreen() 
  205. {
  206.     OpenDocument(OPENMODE_CAPTURE);
  207. }
  208.  
  209. void CMfcdemoApp::OnEditPaste() 
  210. {
  211.     OpenDocument(OPENMODE_PASTE);
  212. }
  213.  
  214. void CMfcdemoApp::OnUpdateEditPaste(CCmdUI* pCmdUI) 
  215. {
  216.     CLead* pLead = GetMainLead();
  217.     if(pLead)
  218.     {
  219.         ASSERT(IsWindow(pLead->m_hWnd));
  220.         pCmdUI->Enable(pLead->Paste(PASTE_ISREADY));
  221.     }
  222. }
  223.  
  224. void CMfcdemoApp::OnFileAcquire() 
  225. {
  226.     OpenDocument(OPENMODE_TWAIN);
  227. }
  228.  
  229. void CMfcdemoApp::OnFileSelectsource() 
  230. {
  231.     CLead *pLead = GetMainLead();
  232.     pLead->SetEnableMethodErrors(FALSE);
  233.     int nRet = pLead->TwainSelect((OLE_HANDLE) m_pMainWnd->m_hWnd);
  234.      // show no error if the user clicks on Cancel
  235.     if( nRet && nRet != ERROR_TWAIN_CANCEL )
  236.         theApp.DisplayLEADError(nRet);
  237.     pLead->SetEnableMethodErrors(TRUE);
  238. }
  239.  
  240. CPtrArray *CMfcdemoApp::EnumAllDocuments( CDocument *pDocToExclude /*=NULL*/)
  241. {
  242.     CPtrArray* pArray;
  243. //    POSITION pos = m_templateList.GetHeadPosition();
  244.     POSITION pos = theApp.GetFirstDocTemplatePosition();
  245.  
  246.     pArray = new CPtrArray;        
  247.     while (pos != NULL)
  248.     {
  249. //        CDocTemplate* pTemplate = (CDocTemplate*)m_templateList.GetNext(pos);
  250.         CDocTemplate* pTemplate = theApp.GetNextDocTemplate(pos);
  251.         POSITION posDoc = pTemplate->GetFirstDocPosition();
  252.         while(posDoc != NULL)
  253.         {
  254.             CDocument* pDoc = pTemplate->GetNextDoc(posDoc);
  255.             if( pDoc != pDocToExclude )
  256.                 pArray->Add(pDoc);
  257.         }
  258.     }
  259.     return(pArray);
  260. }
  261.  
  262. void CMfcdemoApp::UpdateAllDocumentViews()
  263. {
  264. //    POSITION pos = m_templateList.GetHeadPosition();
  265.     POSITION pos = theApp.GetFirstDocTemplatePosition();
  266.  
  267.     while (pos != NULL)
  268.     {
  269. //        CDocTemplate* pTemplate = (CDocTemplate*)m_templateList.GetNext(pos);
  270.         CDocTemplate* pTemplate = theApp.GetNextDocTemplate(pos);
  271.         POSITION posDoc = pTemplate->GetFirstDocPosition();
  272.         while(posDoc != NULL)
  273.         {
  274.             CDocument* pDoc = pTemplate->GetNextDoc(posDoc);
  275.             pDoc->UpdateAllViews(NULL, (LPARAM) 0); 
  276.         }
  277.     }
  278. }
  279.  
  280. void CMfcdemoApp::OnPreferencesDitheringErrordiffusion() 
  281. {
  282.     m_fOrderedDither = FALSE;
  283.     UpdateAllDocumentViews();
  284. }
  285.  
  286. void CMfcdemoApp::OnPreferencesDitheringOrdered() 
  287. {
  288.     m_fOrderedDither = TRUE;
  289.     UpdateAllDocumentViews();
  290. }
  291.  
  292. CLead* CMfcdemoApp::GetMainLead()
  293. {
  294.     CMainFrame* pFrame;
  295.     pFrame = (CMainFrame*)m_pMainWnd;
  296.     if(!pFrame)
  297.         return(NULL);
  298.     return(pFrame->m_pLead);
  299. }
  300.  
  301. CLeadIsis* CMfcdemoApp::GetMainIsis()
  302. {
  303.     CMainFrame* pFrame;
  304.     pFrame = (CMainFrame*)m_pMainWnd;
  305.     if(!pFrame)
  306.         return(NULL);
  307.     return(pFrame->m_pLTIsis);
  308. }
  309.  
  310. void CMfcdemoApp::OnPreferencesPaletteAuto() 
  311. {
  312.     m_fAutoPalette = TRUE;
  313.     UpdateAllDocumentViews();
  314. }
  315.  
  316. void CMfcdemoApp::OnPreferencesPaletteFixed() 
  317. {
  318.     m_fAutoPalette = FALSE;
  319.     UpdateAllDocumentViews();
  320. }
  321.  
  322.  
  323. void CMfcdemoApp::OnPreferencesBitonalscalingFavorblack() 
  324. {
  325.     m_nBitonalScaling = BITONALSCALING_FAVORBLACK;
  326.     UpdateAllDocumentViews();
  327. }
  328.  
  329. void CMfcdemoApp::OnPreferencesBitonalscalingNormal() 
  330. {
  331.     m_nBitonalScaling = BITONALSCALING_NORMAL;
  332.     UpdateAllDocumentViews();
  333. }
  334.  
  335. void CMfcdemoApp::OnPreferencesBitonalscalingScaletogray() 
  336. {
  337.     m_nBitonalScaling = BITONALSCALING_SCALETOGRAY;
  338.     UpdateAllDocumentViews();
  339. }
  340.  
  341. void CMfcdemoApp::OnUpdatePreferencesDitheringErrordiffusion(CCmdUI* pCmdUI) 
  342. {
  343.     pCmdUI->SetCheck(m_fOrderedDither ? 0 : 1); 
  344. }
  345.  
  346. void CMfcdemoApp::OnUpdatePreferencesDitheringOrdered(CCmdUI* pCmdUI) 
  347. {
  348.     pCmdUI->SetCheck(m_fOrderedDither ? 1 : 0); 
  349. }
  350.  
  351. void CMfcdemoApp::OnUpdatePreferencesPaletteAuto(CCmdUI* pCmdUI) 
  352. {
  353.     pCmdUI->SetCheck(m_fAutoPalette ? 1 : 0); 
  354. }
  355.  
  356. void CMfcdemoApp::OnUpdatePreferencesPaletteFixed(CCmdUI* pCmdUI) 
  357. {
  358.     pCmdUI->SetCheck(m_fAutoPalette ? 0 : 1); 
  359. }
  360.  
  361. void CMfcdemoApp::OnUpdatePreferencesBitonalscalingFavorblack(CCmdUI* pCmdUI) 
  362. {
  363.     CLead* pLead = GetMainLead();
  364.     if(pLead)
  365.         pCmdUI->Enable(pLead->GetVersionLevel() == VERSIONLEVEL_EXP||pLead->GetVersionLevel() == VERSIONLEVEL_MEDICAL);
  366.     pCmdUI->SetCheck(m_nBitonalScaling == BITONALSCALING_FAVORBLACK);
  367. }
  368.  
  369. void CMfcdemoApp::OnUpdatePreferencesBitonalscalingNormal(CCmdUI* pCmdUI) 
  370. {
  371.     pCmdUI->SetCheck(m_nBitonalScaling == BITONALSCALING_NORMAL);
  372. }
  373.  
  374. void CMfcdemoApp::OnUpdatePreferencesBitonalscalingScaletogray(CCmdUI* pCmdUI) 
  375. {
  376.     CLead* pLead = GetMainLead();
  377.     if(pLead)
  378.         pCmdUI->Enable(pLead->GetVersionLevel() == VERSIONLEVEL_EXP||pLead->GetVersionLevel() == VERSIONLEVEL_MEDICAL);
  379.     pCmdUI->SetCheck(m_nBitonalScaling == BITONALSCALING_SCALETOGRAY);
  380.     
  381. }
  382.  
  383.  
  384. void CMfcdemoApp::OnFileColormerge() 
  385. {
  386.     OpenDocument(OPENMODE_COLORMERGE);
  387. }
  388.  
  389. void CMfcdemoApp::OnFileOpen() 
  390. {
  391.    CLeadDlg LTCommDlg;
  392.    RECT rcWin;
  393.    BOOL bContinue=FALSE;
  394.    int nRet;
  395.    
  396.    ::SetRect(&rcWin, 0, 0, 1, 1);
  397.  
  398.    if(LTCommDlg.Create(NULL,0,rcWin,m_pMainWnd,100))
  399.    {
  400.       LTCommDlg.SetEnableMethodErrors(FALSE);
  401.       LTCommDlg.SetFilter("Graphics|*.cmp;*.jpg;*.jff;*.jtf;*.bmp;*.tif;*.tga;*.pcx;*.cal;*.mac;*.mac;*.img;*.msp;*.wpg;*.wpg;*.ras;*.pct;*.pcd;*.eps;*.wmf");
  402.       LTCommDlg.SetFileDlgFlags(0);
  403.       LTCommDlg.SetDialogTitle("Open File");
  404.       LTCommDlg.SetUIFlags( DLG_FO_FILEINFO |
  405.                                DLG_FO_MULTIPAGE |
  406.                                DLG_FO_SHOWPREVIEW |
  407.                                DLG_FO_SHOWSTAMP |
  408.                                DLG_FO_95STYLE );
  409.       nRet = LTCommDlg.FileOpen((long)m_pMainWnd->m_hWnd);
  410.       if(nRet == 0)
  411.          bContinue = TRUE;
  412.       gnPage = (short)LTCommDlg.GetPageNumber();
  413.    }
  414.    if(bContinue)
  415.       OpenDocumentFile((LPCTSTR)LTCommDlg.GetFileName());
  416.    return;
  417. }
  418.  
  419. #ifndef _ALPHA_
  420.  
  421. void CMfcdemoApp::OnFileIsisSelectSource() 
  422. {
  423.    CLeadIsis LTIsis;
  424.    RECT rcWin;
  425.    int nRet;
  426.    
  427.    ::SetRect(&rcWin, 0, 0, 1, 1);
  428.  
  429.    if(LTIsis.Create(NULL,0,rcWin,m_pMainWnd,100))
  430.    {
  431.       LTIsis.SetEnableMethodErrors(FALSE);
  432.       nRet = LTIsis.ISISSelect((long)LTIsis.m_hWnd);
  433.  
  434. //      LTIsis.ISISLoadDriver();
  435. //      LTIsis.ISISSetScanOptions((long)LTIsis.m_hWnd);
  436. //      LTIsis.ISISUnloadDriver();
  437.  
  438.       if(nRet != ERROR_USER_ABORT)
  439.          theApp.DisplayLEADError(nRet);
  440.    }
  441. }
  442.  
  443. void CMfcdemoApp::OnFileIsisacquire() 
  444. {
  445.     OpenDocument(OPENMODE_ISIS);
  446. }
  447.  
  448.  
  449. void CMfcdemoApp::OnFileIsisacquiremulti() 
  450. {
  451.    CLeadDlg LTCommDlg;
  452.    CLeadIsis LTIsis;
  453.    RECT rcWin;
  454.    BOOL bContinue=FALSE;
  455.    int nRet;
  456.    char buf[1024];
  457.    long MaxPages;
  458.    
  459.    ::SetRect(&rcWin, 0, 0, 1, 1);
  460.  
  461.    if(LTCommDlg.Create(NULL,0,rcWin,m_pMainWnd,100))
  462.    {
  463.       LTCommDlg.SetEnableMethodErrors(FALSE);
  464.       LTCommDlg.SetFileDlgFlags(0);
  465.       LTCommDlg.SetSaveFormatFlags(DLG_FS_TIFF);
  466.       LTCommDlg.SetDialogTitle("Select Base Filename");
  467.       LTCommDlg.SetUIFlags( DLG_FS_95STYLE | DLG_FS_MULTIPAGE );
  468.       nRet = LTCommDlg.FileSave((long)m_pMainWnd->m_hWnd);
  469.       if(nRet == 0)
  470.          bContinue = TRUE;
  471.       else
  472.       {
  473.          theApp.DisplayLEADError(nRet);
  474.          return;
  475.       }
  476.    }
  477.    
  478.    if(bContinue)
  479.    {
  480.       ::SetRect(&rcWin, 0, 0, 1, 1);
  481.       if(LTIsis.Create(NULL,0,rcWin,m_pMainWnd,100))
  482.       {
  483.          LTIsis.SetEnableMethodErrors(FALSE);
  484.          nRet = LTIsis.ISISLoadDriver();
  485.          if(nRet == 0)
  486.          {
  487.             //enable ScanAhead, and set max pages to max ADF pages
  488.             LTIsis.ISISSetTag(TAG_SCANAHEAD, TAG_SCANAHEAD_YES);
  489.             LTIsis.ISISGetTag(TAG_MAXPAGES, &MaxPages);
  490.             LTIsis.ISISSetTag(TAG_SCANAHEAD_MAXPAGES, MaxPages);
  491.             if(LTCommDlg.GetSaveFormat() == FILE_CCITT_GROUP4)
  492.                LTIsis.ISISSetTag(TAG_SCANAHEAD_MAXPAGES, TAG_COMPRESSION_G4);
  493.             else
  494.                LTIsis.ISISSetTag(TAG_SCANAHEAD_MAXPAGES, TAG_COMPRESSION_NONE);
  495.  
  496.             nRet == LTIsis.ISISAcquireMulti((long)LTIsis.m_hWnd,
  497.                                             (LPCTSTR)LTCommDlg.GetFileName(),
  498.                                             ISIS_SHOWUI,
  499.                                             LTCommDlg.GetSaveFormat(),
  500.                                             (short)LTCommDlg.GetSaveMulti() );
  501.             LTIsis.ISISUnloadDriver();
  502.          }
  503.       }
  504.       if(nRet == 0)
  505.       {
  506.          wsprintf(buf, "Image(s) acquired to file(s) %s", (LPCTSTR)LTCommDlg.GetFileName());
  507.          AfxMessageBox(buf);
  508.       }
  509.       else if(nRet != ERROR_ISIS_CANCEL)
  510.          theApp.DisplayLEADError(nRet);
  511.    }
  512. }
  513.  
  514. void CMfcdemoApp::OnUpdateFileIsisacquire(CCmdUI* pCmdUI) 
  515. {
  516.    CLeadIsis *pLTIsis = GetMainIsis();
  517.    pCmdUI->Enable(pLTIsis->GetIsISISAvailable());
  518. }
  519.  
  520. void CMfcdemoApp::OnUpdateFileIsisacquiremulti(CCmdUI* pCmdUI) 
  521. {
  522.    CLeadIsis *pLTIsis = GetMainIsis();
  523.    pCmdUI->Enable(pLTIsis->GetIsISISAvailable());
  524. }
  525.  
  526. void CMfcdemoApp::OnUpdateFileIsisselectsource(CCmdUI* pCmdUI) 
  527. {
  528.    CLeadIsis *pLTIsis = GetMainIsis();
  529.    pCmdUI->Enable(pLTIsis->GetIsISISAvailable());
  530. }
  531.  
  532. #endif