L_TwainGetDeviceEventCapability

#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.

Parameters

HTWAINSESSION hSession

Handle to an existing TWAIN session. This handle is obtained by calling the L_TwainInitSession or L_TwainInitSession2 function.

pTW_CAPABILITY 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

Value Meaning
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 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

See Also

Functions

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; 
} 
Help Version 21.0.2021.4.7
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS TWAIN C API Help