| 
   Available in LEADTOOLS Imaging Pro, Vector, Document, and Medical Imaging toolkits.  | 
LTwain::QueryProperty
#include "ltwrappr.h"
virtual L_INT LTwain::QueryProperty (uCapability, ppltProperty, uStructSize)
| 
 L_UINT uCapability;  | 
 /* capability constant */  | 
| 
 pLTWAINPROPERTYQUERY * ppltProperty;  | 
 /* pointer to a pointer to a structure */  | 
| 
 L_UINT uStructSize;  | 
 /* size of the LTWAINPROPERTY structure, in bytes */  | 
Gets the available property values.
| 
 Parameter  | 
 Description  | 
| 
 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 LTwain::FreePropQueryStructure function  | 
| 
 uStructSize  | 
 Size of the LTWAINPROPERTYQUERY structure, in bytes, for versioning. Use sizeof(LTWAINPROPERTYQUERY).  | 
Returns
| 
 SUCCESS  | 
 The function was successful.  | 
| 
 <1  | 
 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:  | 
 LTwain::GetProperties, LTwain::SetCapability, LTwain::GetCapability, LTwain::InitSession, LTwain::EndSession.  | 
| 
 Topics:  | 
|
| 
 
  | 
Example
L_INT LTwain__QueryPropertyExample(L_INT16 uValue, CMyTwain *MyClass)
{
   L_INT                nRet, nIndex; 
   pLTWAINPROPERTYQUERY pltQuery = NULL; 
   // Query capability possible values
   nRet = MyClass->QueryProperty (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)&(pltQuery->pltwOneValue->Item);
         if (ptwFixVal->Whole == uValue)
         {
            nRet = MyClass->FreePropQueryStructure(&pltQuery); 
            if(nRet != SUCCESS)
               return nRet;
         }
      }
      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)
            {
               nRet = MyClass->FreePropQueryStructure (&pltQuery); 
               if(nRet != SUCCESS)
                  return nRet;
            }
         }
      }
      break; 
   }
   nRet = MyClass->FreePropQueryStructure (&pltQuery); 
   return nRet;
}