#include "lttwn.h"
L_LTTWN_API L_INT L_TwainGetDeviceEventCapability (hSession, pDeviceCap)
Gets the device event capability (CAP_DEVICEEVENT) values for the current TWAIN session.
Handle to an existing TWAIN session. This handle is obtained by calling the L_TwainInitSession or L_TwainInitSession2 function.
Pointer to a TW_CAPABILITY structure that references the required device event capability. This structure must be allocated and it will be filled with data corresponding to the required capability to get.
| Value | Meaning |
|---|---|
| SUCCESS | The function was successful. |
| < 1 | An error occurred. Refer to Return Codes. |
To set the CAP_DEVICEEVENT capability value, call L_TwainSetDeviceEventCapability function.
To reset the CAP_DEVICEEVENT capability value to the default value, call L_TwainResetDeviceEventCapability.
To get the status for each device event, call L_TwainSetDeviceEventCallback function.
To get the device event information, call L_TwainGetDeviceEventData function.
This function should be called after calling L_TwainStartCapsNeg function and before calling L_TwainEndCapsNeg function.
Required DLLs and Libraries
L_INT GetDeviceEventCapabilityExample(HTWAINSESSION hSession){L_INT nRet = SUCCESS;TW_CAPABILITY twCap;memset(&twCap, 0, sizeof(TW_CAPABILITY));L_TwainStartCapsNeg(hSession);nRet = L_TwainGetDeviceEventCapability(hSession, &twCap);if (nRet != SUCCESS)return nRet;if (twCap.Cap == CAP_DEVICEEVENT){pTW_ARRAY ptwArray = (pTW_ARRAY)GlobalLock(twCap.hContainer);int count = ptwArray->NumItems;for (int i = 0; i < count; i++){pTW_UINT16 ptwItems = (pTW_UINT16)ptwArray->ItemList;TW_UINT16 capValue = ptwItems[i];switch (capValue){case TWDE_CHECKBATTERY:MessageBox(NULL, TEXT("Device event checks the battery"), TEXT("Notice!"), MB_OK);break;case TWDE_CHECKRESOLUTION:MessageBox(NULL, TEXT("Device event checks the resolution"), TEXT("Notice!"), MB_OK);break;case TWDE_DEVICEREADY:MessageBox(NULL, TEXT("Device event is ready"), TEXT("Notice!"), MB_OK);break;}}GlobalUnlock(twCap.hContainer);GlobalFree(twCap.hContainer);memset(&twCap, 0, sizeof(TW_CAPABILITY));twCap.Cap = CAP_DEVICEEVENT;twCap.ConType = TWON_ARRAY;twCap.hContainer = (TW_HANDLE)GlobalAlloc(GHND, sizeof(TW_ARRAY)+ sizeof(TW_UINT16) * 5);ptwArray = (pTW_ARRAY)GlobalLock(twCap.hContainer);ptwArray->ItemType = TWTY_UINT16;ptwArray->NumItems = 5;TW_UINT16 twItems[5];twItems[0] = TWDE_DEVICEREADY;twItems[1] = TWDE_CHECKDEVICEONLINE;twItems[2] = TWDE_CHECKBATTERY;twItems[3] = TWDE_CHECKPOWERSUPPLY;twItems[4] = TWDE_CHECKRESOLUTION;memcpy((void *)&ptwArray->ItemList, twItems, sizeof(TW_UINT16)*5);GlobalUnlock(twCap.hContainer);nRet = L_TwainSetDeviceEventCapability(hSession, &twCap);if (nRet == SUCCESS)MessageBox(NULL, TEXT("DeviceEvent is changed successfully"), TEXT("Notice!"), MB_OK);nRet = L_TwainResetDeviceEventCapability(hSession, &twCap);if (nRet == SUCCESS)MessageBox(NULL, TEXT("DeviceEvent is reset to default values successfully"), TEXT("Notice!"), MB_OK);}L_TwainEndCapsNeg(hSession);return SUCCESS;}