| Available in LEADTOOLS Imaging Pro, Vector, Document, and Medical Imaging toolkits. | 
L_TwainGetDeviceEventCapability
#include "lttwn.h"
L_LTTWN_API L_INT L_TwainGetDeviceEventCapability (hSession, pDeviceCap)
| HTWAINSESSION hSession; | /* handle to an existing TWAIN session */ | 
| pTW_CAPABILITY pDeviceCap; | /* pointer to a structure */ | 
Gets the device event capability (CAP_DEVICEEVENT) values for the current TWAIN session.
| Parameter | Description | 
| hSession | Handle to an existing TWAIN session. This handle is obtained by calling the L_TwainInitSession function. | 
| pDeviceCap | 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. | 
Returns
| SUCCESS | The function was successful. | 
| < 1 | An error occurred. Refer to Return Codes. | 
Comments
To set the CAP_DEVICEEVENT capability value, call L_TwainSetDeviceEventCapability function.
To rest the CAP_DEVICEEVENT capability value to the default, call L_TwainResetDeviceEventCapability function.
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
| LTTWN For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application. | 
See Also
| Functions: | L_TwainStartCapsNeg, L_TwainSetDeviceEventCallback, L_TwainGetDeviceEventData, L_TwainSetDeviceEventCapability, L_TwainResetDeviceEventCapability, LTWAINDEVICEEVENTCALLBACK | 
| Topics: | |
| 
 | 
Example
 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;
}