Acquire Images from a WIA Source

The LEADTOOLS WIA driver is available in LEADTOOLS version 16 or higher.

This tutorial shows a quick and easy way to generate a WIA program. For more in-depth WIA programming, refer to the WIA demo.

Take the following steps to create and run a program that implements LEADTOOLS WIA features.

  1. Start Microsoft Visual Studio
  2. Select the File->New menu option, then click the Project menu.
  3. From Project Types select Other Languages to expand it, then select Visual C++ to expand it, then select MFC. From the right window select MFC Application.
  4. In the Project Name dialog box, enter WiaAcquireTutor.
  5. In the Location dialog box, use the Examples\ClassLibrary\MSVC directory of your LEAD installation. For example, if you installed LEADTOOLS in C:\LEADTOOLS 20\, enter C:\LEADTOOLS 20\Examples\ClassLibrary\MSVC1, then click OK. Then click Next.
  6. Choose Dialog based and click Finish.
  7. Click the Solution Explorer tab, and then click the WiaAcquireTutor project to expand it. Click the Header files, then Open WiaAcquireTutor.h.
  8. Add the following line immediately before the class CWiaAcquireTutorApp declaration (but keep in mind that you may have to change the path to where the header files reside):

    #include "..\..\..\..\include\ClassLib\ltwrappr.h" 

  9. Click the Class View tab.

  10. Click to open the WiaAcquireTutor classes branch.
  11. Click CWiaAcquireTutorApp, and then double-click the CWiaAcquireTutorApp(void) constructor.
  12. Add the following lines after //TODO: add construction code here:

    LBase::LoadLibraries(LT_ALL_LEADLIB);   
    L_TCHAR * pszLicenseFile = L"Replace this with the path to the LEADTOOLS license file";   
    L_TCHAR * pszDeveloperKey = L"Replace this with your developer key";   
    LSettings::SetLicenseFile(pszLicenseFile, pszDeveloperKey);   

  13. Create a new file called Imports.cpp and place it beside your project files.

    1. In the Project Workspace, click the Solution Explorer tab.
    2. Double-click the WiaAcquireTutor folder to open it.
    3. Right-click the Source files folder and select the Add New item.
    4. Expand the Visual C++ tree if it is not already expanded.
    5. Select Code from the sub-tree.
    6. Select C++ File (.cpp) from the right window.
    7. In the Name text box, specify Imports.cpp.
    8. Click the Add button.
    9. Double-click the Imports.cpp in the Solution Explorer and add the following lines:
      #include "StdAfx.h"   
      #if defined(WIN64)    
         #pragma comment(lib, "..\\..\\..\\..\\Lib\\CDLLVC10\\x64\\Ltwvc_x.lib")   
      #else   
         #pragma comment(lib, "..\\..\\..\\..\\Lib\\CDLLVC10\\Win32\\Ltwvc_u.lib")   
      #endif // #if defined(WIN64)  
  14. Click the Solution Explorer tab.

  15. Double-click the WiaAcquireTutor folder to open it.
  16. Double-click the Header Files folder to open it. Then double-click the WiaAcquireTutorDlg.h file to open it.
  17. Add the following class declaration before CWiaAcquireTutorDlg class:

    class LMyWia : public LWia 
    { 
       LEAD_DECLAREOBJECT(LMyWia); 
    public: 
       LMyWia(); 
       virtual ~LMyWia(); 
       virtual L_INT AcquireCallBack(pBITMAPHANDLE pBitmap, L_TCHAR * pszFilename, L_UINT32 uPercent, L_UINT32 uFlags); 
    }; 

  18. Click the Solution Explorer tab.

  19. Double-click the WiaAcquireTutor folder to open it.
  20. Double-click the Source Files folder to open it. Then double-click the WiaAcquireTutorDlg.cpp file to open it.
  21. Add the following class:

    LEAD_IMPLEMENTOBJECT(LMyWia); 
    LMyWia::LMyWia() 
    { 
       EnableCallBack(TRUE); 
    } 
    LMyWia::~LMyWia() 
    { 
    } 
    L_INT LMyWia::AcquireCallBack(pBITMAPHANDLE pBitmap, L_TCHAR * pszFilename, L_UINT32 uPercent, L_UINT32 uFlags) 
    { 
       //Copy the acquired bitmap here 
       return SUCCESS; 
    } 

  22. Click the Class View tab.

  23. Right-click CWiaAcquireTutorDlg and select Add Add Variable....
  24. For Variable Type enter LMyWia, and for Variable Declaration put m_MyWia. Leave Access as Public and click OK.
  25. Click to open the CWiaAcquireTutorDlg branch. Double-click the OnInitDialog() function and add the following code after line:

    // TODO: Add extra initialization here   
    m_MyWia.InitSession(WiaVersion1); 

  26. Right-click the CWiaAcquireTutorDlg branch, and choose Properties.

  27. From the Properties window toolbar, click the Messages icon. Then click the empty area beside the item WM_DESTROY and choose OnDestroy.
  28. Add the following code after the opening bracket {:

    m_MyWia.EndSession();   
    LBase::UnloadLibraries(LT_ALL_LEADLIB); 

  29. Click the Solution Explorer tab.

  30. Double-click the WiaAcquireTutor folder to open it.
  31. Double-click the Resource Files folder to open it. Then double-click the WiaAcquireTutor.rc file to open it, then double-click Dialog and then double-click IDD_WIAACQUIRETUTOR_DIALOG.
  32. Now, drag and drop 2 buttons, and change their properties as follows:

    Control ID Caption
    Button1 IDC_SELECT_SRC Select Source
    Button2 IDC_ACQUIRE Acquire
  33. From the View menu, select the Other Windows menu, then select the Resource View menu, then select Dialog, and select IDD_WIAACQUIRETUTOR_DIALOG.

  34. Double-click the Select Source button, and add the following code:

    m_MyWia.SelectDeviceDlg(WiaDeviceTypeDefault, L_WIA_SELECT_DEVICE_NODEFAULT); 

  35. From the View menu, select the Other Windows menu, then select the Resource View menu, then select Dialog, and select IDD_WIAACQUIRETUTOR_DIALOG.

  36. Double-click the Acquire button, and add the following code:

    m_MyWia.m_MyWia.Acquire(L_WIA_SHOW_USER_INTERFACE | L_WIA_DEVICE_DIALOG_USE_COMMON_UI, NULL, NULL, NULL, NULL);  

  37. Compile and test the program.

Help Version 20.0.2020.4.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS WIA C++ Class Library Help