| Available in LEADTOOLS Imaging Pro, Vector, Document, and Medical Imaging toolkits. | 
L_TwainQueryProperty
#include "lttwn.h"
L_LTTWN_API L_INT L_TwainQueryProperty (hSession, uCapability, ppltProperty, uStructSize)
| HTWAINSESSION hSession; | /* handle to an existing TWAIN session */ | 
| L_UINT uCapability; | /* capability constant */ | 
| pLTWAINPROPERTYQUERY * ppltProperty; | /* pointer to a pointer to a structure */ | 
| L_UINT uStructSize; | /* size, in bytes, of the structure pointed to by ppltProperty */ | 
Gets the available property values.
| Parameter | Description | 
| hSession | Handle to an existing TWAIN session. This handle is obtained by calling the L_TwainInitSession function. | 
| uCapability | This is a capability constant defined by the TWAIN 1.9 specification. For example if the user wants the value(s) for the transfer count, the uCapability will be ICAP_XFERCOUNT. | 
| ppltProperty | Pointer to a pointer to a LTWAINPROPERTYQUERY structure to be updated with the property values. | 
| 
 | The structure will be internally allocated if the function is successful. | 
| 
 | The structure should be freed by calling L_TwainFreePropQueryStructure function. | 
| uStructSize | Size, in bytes, of the structure pointed to by ppltProperty, for versioning. Use sizeof(TWAINPROPERTYQUERY). | 
Returns
| SUCCESS | The function was successful. | 
| ! = SUCCESS | An error occurred. Refer to Return Codes. | 
Comments
Getting these values can help in determining what values a certain TWAIN source supports for a certain capability or property.
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_TwainEndCapsNeg, L_TwainGetProperties, L_TwainSetCapability, L_TwainGetCapability, L_TwainInitSession, L_TwainEndSession. | 
| Topics: | |
| 
 | 
Example
 L_INT TwainQueryPropertyExample(L_INT16 uValue,HTWAINSESSION g_hSession) 
{
   L_INT nRet, nIndex;
   pLTWAINPROPERTYQUERY pltQuery = NULL;
   // Query capability possible values
   nRet = L_TwainQueryProperty (g_hSession, ICAP_XRESOLUTION, &pltQuery, sizeof(LTWAINPROPERTYQUERY));
   if (nRet != SUCCESS) 
      return nRet;
   // Check for the available values of the file transfer property
   switch (pltQuery->uType) 
   {
   case TWON_ONEVALUE: 
      if (pltQuery->pltwOneValue->ItemType == TWTY_FIX32)
      {
         pTW_FIX32 ptwFixVal = (pTW_FIX32)(INT_PTR)pltQuery->pltwOneValue->Item;
         if (ptwFixVal->Whole == uValue)
         {
            L_TwainFreePropQueryStructure(&pltQuery);
            return SUCCESS;
         }
      }
      break;
   case TWON_ENUMERATION: 
      if (pltQuery->pltwEnumeration->ItemType == TWTY_FIX32) 
      {
         pTW_FIX32 ptwFixVal;
         for (nIndex = 0;nIndex < (L_INT)pltQuery->pltwEnumeration->NumItems;nIndex ++)
         {
            ptwFixVal = (pTW_FIX32)(pltQuery->pltwEnumeration->ItemList)[nIndex];
            if (ptwFixVal->Whole == uValue)
            {
               L_TwainFreePropQueryStructure (&pltQuery);
               return SUCCESS;
            }
         }
      }
      break;
   }
   L_TwainFreePropQueryStructure (&pltQuery);
   return FAILURE;
}