Enumerate WIA Devices

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

This tutorial shows you 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 implement 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 WiaEnumDevTutor.
  5. In the Location dialog box, use the Examples\ClassLibrary\MSVC directory of your LEAD installation. For example, if you installed LEADTOOLS in C:\LEADTOOLS21\, enter C:\LEADTOOLS21\Examples\ClassLibrary\MSVC, then click OK. Then click Next.
  6. Choose Dialog based and click Finish.
  7. Click the Solution Explorer tab, and then click the "WiaEnumDevTutor" project to expand it. Click the Header files, then Open WiaEnumDevTutor.h.
  8. Add the following line immediately before the class CWiaEnumDevTutorApp declaration, (keep in mind, 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 WiaEnumDevTutor classes branch.
  11. Click CWiaEnumDevTutorApp, and then double-click the CWiaEnumDevTutorApp(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 WiaEnumDevTutor folder to open it.
    3. Right-click the Source files folder and select 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 WiaEnumDevTutor folder to open it.
  16. Double-click the Header Files folder to open it. Then double-click the WiaEnumDevTutorDlg.h file to open it.
  17. Add the following class declaration before the CWiaEnumDevTutorDlg class.

    class LMyWia : public LWia 
    { 
       LEAD_DECLAREOBJECT(LMyWia); 
    public: 
       LMyWia(); 
       virtual ~LMyWia(); 
       virtual L_INT EnumDevicesCallBack(pLWIADEVICEID pDeviceID); 
    }; 

  18. Click the Solution Explorer tab.

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

    LEAD_IMPLEMENTOBJECT(LMyWia); 
    LMyWia::LMyWia() 
    { 
       EnableCallBack(TRUE); 
    } 
    LMyWia::~LMyWia() 
    { 
    } 
    L_INT LMyWia::EnumDevicesCallBack(pLWIADEVICEID pDeviceID) 
    { 
       L_TCHAR szDeviceInfo[MAX_PATH] = TEXT(""); 
       If(pDeviceID != NULL) 
       { 
          wsprintf(szDeviceInfo, 
          TEXT("Device ID: %s\nDevice Name: %s\nDevice Desc.:%s"), 
          pDeviceID->pszDeviceId, 
          pDeviceID->pszDeviceName, 
          pDeviceID->pszDeviceDesc); 
          MessageBox(szDeviceInfo, TEXT("Available WIA Devices"), MB_OK); 
       } 
       return WIA_SUCCESS; 
    } 

  22. Click the Class View tab.

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

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

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

  27. From the Properties windows 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 WiaEnumDevTutor folder to open it.
  31. Double-click the Resource Files folder to open it. Then double-click the WiaEnumDevTutor.rc file to open it, then double-click Dialog, and then double-click IDD\_WIAENUMDEVTUTOR\_DIALOG.
  32. Now, drag and drop 1 button, and change its properties as follows: a. Control: Button1
    b. ID: IDC_ENUM_WIA_DEVICE
    c. Caption: Enumerate WIA Devices

  33. From the View menu, select the Other Windows menu, then select the Resource View menu, then select Dialog, and select IDD\_WIAENUMDEVTUTOR\_DIALOG

  34. Double-click the Select Source button, and add the following code:
    m_MyWia.EnumDevices(); 
  35. Compile and test the program.
Help Version 21.0.2021.7.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS WIA C++ Class Library Help
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.