#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. |
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
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
LEADTOOLS WIA supports both 32-bit and 64-bit image acquisition for both WIA 1.0 (XP and earlier) and WIA 2.0 (VISTA and later).
Functions: |
L_WiaAcquire, L_WiaAcquireToFile, L_WiaAcquireSimple, L_WiaInitSession, L_WiaEndSession, LWIAENUMDEVICESCALLBACK. |
Topics: |
|
|
|
|
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_INT WiaEnumDevicesExample(HWIASESSION hSession)
{
L_INT nRet;
nRet = L_WiaEnumDevices(hSession, WiaEnumDevicesCB, NULL);
if (nRet != WIA_SUCCESS)
return FALSE;
return SUCCESS;
}