| Available in LEADTOOLS Imaging Pro, Vector, Document, and Medical Imaging toolkits. | 
L_TwainInitSession2
#include "lttwn.h"
L_LTTWN_API L_INT L_TwainInitSession2(phSession, pAppData, uFlags)
| pHTWAINSESSION phSession; | /* pointer to a TWAIN session handle */ | 
| pAPPLICATIONDATA pAppData; | /* pointer to the APPLICATIONDATA structure */ | 
| L_UINT uFlags; | /* optional flags */ | 
Initializes the TWAIN session.
| Parameter | Description | |
| phSession | Pointer to a TWAIN session handle. This handle is needed to acquire pages from the TWAIN source, and work with template files, containers, capabilities, and properties. | |
| pAppData | Pointer to an APPLICATIONDATA structure. This structure will have the handle of the parent window, in addition to other data about the application. | |
| uFlags | Flags that indicate the function behavior. Possible values are: | |
| 
 | Value | Meaning | 
| 
 | LTWAIN_INIT_MULTI_THREADED | [0x0001] Initialize the Twain session with multi threaded option. | 
| 
 | 0 | The function behavior will be like L_TwainInitSession | 
Returns
| SUCCESS | The function was successful. | 
| ! = SUCCESS | An error occurred. Refer to Return Codes. | 
Comments
L_TwainInitSession2 must be called before calling any other LEADTOOLS TWAIN toolkit functions.
When the handle to the TWAIN session is no longer needed, it should be freed by calling L_TwainEndSession. For every call to L_TwainInitSession2 there must be a call to L_TwainEndSession.
If you pass 0 to the uFlags parameter, then this function behavior will be like L_TwainInitSession, but if you pass LTWAIN_INIT_MULTI_THREADED to uFlags parameter, then the Twain session will be initialized with multi-threaded option.
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: | |
| Topics: | |
| 
 | TWAIN Functionality: Session Functions. | 
Example
 L_INT TwainInitSession2Example(HWND hWnd,HBITMAPLIST hBitmap)
{
   L_INT nRet;
   L_BOOL bAvailable;
   HTWAINSESSION hSession = NULL;
   APPLICATIONDATA AppData;
   /* Check to see if TWAIN is installed */
   bAvailable = L_IsTwainAvailable(hWnd);
 
   if (bAvailable) 
   {
      AppData.hWnd = hWnd;
      lstrcpy (AppData.szManufacturerName, TEXT("LEAD Technologies, Inc."));
      lstrcpy (AppData.szAppProductFamily, TEXT("LEAD Test Applications"));
      lstrcpy (AppData.szVersionInfo, TEXT("Version 1.0"));
      lstrcpy (AppData.szAppName, TEXT("TWAIN Test Application"));
      nRet = L_TwainInitSession2(&hSession, &AppData, LTWAIN_INIT_MULTI_THREADED);
      if (nRet != SUCCESS)
         return nRet;
      nRet = L_TwainAcquireList(hSession, hBitmap, NULL, LTWAIN_SHOW_USER_INTERFACE);
      if(nRet != SUCCESS)
         return nRet;
      nRet = L_TwainEndSession(&hSession);
      if(nRet != SUCCESS)
         return nRet;
   }
   return SUCCESS;
}