| Available in LEADTOOLS Imaging Pro, Vector, Document, and Medical Imaging toolkits. | 
L_WiaEnumDevices
#include "ltwia.h"
L_LTWIA_API L_INT EXT_FUNCTION L_WiaEnumDevices(hSession, pfnCallBack, pUserData)
| HWIASESSION hSession; | /* handle to an existing WIA session */ | 
| LWIAENUMDEVICESCALLBACK pfnCallBack; | /* pointer to an optional callback function */ | 
| L_VOID * pUserData; | /* pointer to additional parameters */ | 
Enumerates all available system WIA devices connected to the user machine.
| Parameter | Description | 
| hSession | Handle to an existing WIA session. This handle is obtained by calling the L_WiaInitSession function. | 
| pfnCallBack | Pointer to an optional callback the user can use to retrieve information about the found WIA device such as device ID, device name and device description. | 
| pUserData | Void pointer that you can use to pass one or more additional parameters that the callback function needs. | 
| 
 | To use this feature, assign a value to a variable or create a structure that contains as many fields as you need. Then, in this parameter, pass the address of the variable or structure, casting it to L_VOID *. The callback function, which receives the address in its own pUserData parameter, can cast it to a pointer of the appropriate data type to access your variable or structure. | 
| 
 | If the additional parameters are not needed, you can pass NULL in this parameter. | 
Returns
| SUCCESS | The function was successful. | 
| < 1 | An error occurred. Refer to Return Codes. | 
Comments
This feature is available in version 16 or higher.
This function will enumerate all available system WIA devices connected to the user machine. It uses a callback that sends the user information about each WIA device found, like device ID, device name and device description.
Required DLLs and Libraries
| LTWIA For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application. | 
Platforms
Earlier and later operating systems than Windows XP for WIA Version 1.
Windows VISTA or later for WIA Version 2.
See Also
| Functions: | L_WiaAcquire, L_WiaAcquireToFile, L_WiaAcquireSimple, L_WiaInitSession, L_WiaEndSession, LWIAENUMDEVICESCALLBACK. | 
| Topics: | |
| 
 | |
| 
 | 
Example
static L_INT CALLBACK WiaEnumDevicesCB(HWIASESSION hSession, 
                                       pLWIADEVICEID pDeviceID, 
                                       L_VOID * pUserData)
{
   UNREFERENCED_PARAMETER(pUserData);
   L_INT nRet;
   L_UINT uDevType;
   L_TCHAR szSelectedDeviceID[MAX_PATH] = TEXT("");
   L_TCHAR szMsg[MAX_PATH] = TEXT("");
   /* Select the received device */
   if(pDeviceID)
   {
      if(pDeviceID->pszDeviceId)
      {
         nRet = L_WiaSelectDevice(hSession, pDeviceID->pszDeviceId);
      }
   }
   /* Get the selected device type */
   nRet = L_WiaGetSelectedDeviceType(hSession, &uDevType);
   if(nRet != WIA_SUCCESS)
      return nRet;
   if(uDevType == WiaDeviceTypeScanner)
   {
      /* Make sure the device was selected successfully */
      lstrcpy(szSelectedDeviceID, L_WiaGetSelectedDevice(hSession));
      wsprintf(szMsg, TEXT("Scanner device with the device ID <%s> selected."), szSelectedDeviceID);
      MessageBox(NULL, szMsg, TEXT("Information"), MB_OK|MB_ICONINFORMATION);
   }
   return WIA_SUCCESS;
}
L_LTWIATEX_API L_INT WiaEnumDevicesExample(HWIASESSION hSession)
{
   L_INT nRet;
   nRet = L_WiaEnumDevices(hSession, WiaEnumDevicesCB, NULL);
   if (nRet != WIA_SUCCESS)
      return FALSE; 
   return SUCCESS;
}