| 
   Available in LEADTOOLS Imaging Pro, Vector, Document, and Medical Imaging toolkits.  | 
LTwain::AddCapabilityToFile
#include "ltwrappr.h"
virtual L_INT LTwain::AddCapabilityToFile (hFile, pCapability)
| 
 HTWAINTEMPLATEFILE hFile;  | 
 /* handle to an existing template file */  | 
| 
 pTW_CAPABILITY pCapability;  | 
 /* pointer to a structure */  | 
Adds a capability to a file.
| 
 Parameter  | 
 Description  | 
| 
 hFile  | 
 Handle to an existing template file.  | 
| 
 pCapability  | 
 Pointer to a structure that contains the capability to add.  | 
Returns
| 
 SUCCESS  | 
 The function was successful.  | 
| 
 < 1  | 
 An error occurred. Refer to Return Codes.  | 
Comments
In order to add a capability to a template file, the template file must first be opened for writing using the LTwain::OpenTemplateFile. Opening the file for writing will create a new empty file. The process of adding capabilities to the file will add them sequentially. When all capabilities have been added, save the file by calling LTwain::CloseTemplateFile. For more information on capabilities, refer to Getting and Setting Capabilities.
For more information on Template files, refer to Handling Template Files.
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
Example
// Create your own class Inherited from LTwain 
// to override the call back function
#ifdef CMyTwain
class CMyTwain : public LTwain
{
public:
   L_INT CapabilityCallBack(L_UINT uCap, pTW_CAPABILITY pCapability);
   L_VOID AcquireCallBack(L_INT nPage, L_TCHAR * pszFileName, L_BOOL bFinishScan);
   L_INT FindFastConfigCallBack(pFASTCONFIG pResConfig);
   L_INT SourceInfoCallBack(pLTWAINSOURCEINFO pSourceInfo);
   L_INT SetPropertyCallBack(L_UINT uCap, L_INT nStatus, L_VOID * pValue);
   L_INT BitmapCallBack(pBITMAPHANDLE pBitmap);
   HTWAINTEMPLATEFILE m_hFile;
};
#endif // #ifdef CMyTwain
// initialize session and call this function
L_INT LTwain__AddCapabilityToFileExample(CMyTwain *MyClass, HWND hWndParent)
{
   L_INT          nRet;
   OPENFILENAME   ofn;
   L_TCHAR        szFilePath [MAX_PATH];
   memset (&ofn, 0, sizeof(OPENFILENAME));
   memset (szFilePath, 0, MAX_PATH);
   ofn.lStructSize   = sizeof(OPENFILENAME);
   ofn.hwndOwner     = hWndParent;
   ofn.lpstrFile     = szFilePath;
   ofn.nMaxFile      = MAX_PATH;
   ofn.lpstrTitle    = TEXT("Save Template File");
   if (GetSaveFileName (&ofn))
   {
#if defined(FOR_WIN64)
      HTWAINTEMPLATEFILE* __unaligned  hfile=&MyClass->m_hFile;
#else 
      HTWAINTEMPLATEFILE*   hfile=&MyClass->m_hFile;
#endif
      nRet = MyClass->OpenTemplateFile(hfile, szFilePath, LTWAIN_TEMPLATE_OPEN_WRITE);
      if (nRet == SUCCESS)
      {
         MyClass->EnumCapabilities( LTWAIN_CAPABILITY_GETCURRENT );
         MyClass->CloseTemplateFile( MyClass->m_hFile);
      }
      else
         return nRet;
   }
   return SUCCESS;
}
L_INT CMyTwain::CapabilityCallBack(L_UINT uCap, pTW_CAPABILITY pCapability)
{
   UNREFERENCED_PARAMETER(uCap);
   L_INT nRet;
   if (!pCapability)
      return SUCCESS;
   if (!pCapability->hContainer)
      GlobalFree (pCapability);
   nRet = AddCapabilityToFile(m_hFile, pCapability);
   GlobalFree (pCapability->hContainer);
   GlobalFree (pCapability);
   return SUCCESS;
}