#include "lttwn.h"
L_LTTWN_API L_INT L_TwainGetCapabilityFromFile (hSession, hFile, ppCapability, uIndex)
Gets the capability, at the specified index, in the specified file.
Handle to an existing TWAIN session. This handle is obtained by calling the L_TwainInitSession or L_TwainInitSession2 function.
Handle to an existing template file.
Pointer to a pointer to a TW_CAPABILITY structure. This structure will be allocated internally.
Index of the capability to get from the file. This is a zero-based index.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
! = SUCCESS | An error occurred. Refer to Return Codes. |
To get a capability stored in a file; the file must be opened for reading by calling L_TwainOpenTemplateFile function. The user must declare a variable of type pTW_CAPABILITY and pass the address of this to the function. This parameter will be updated with a pointer to the capability at the specified index.
Note: If the function is successful, the user must:
Free the container of the TW_CAPABILITY structure by a calling L_TwainFreeContainer function.
Free the value referenced by the contents of the ppCapability using GlobalUnlock and GlobalFree.
Required DLLs and Libraries
L_INT TwainGetCapabilityFromFileExample(HTWAINTEMPLATEFILE hFile,
HWND hDlg, // Parent dialog handle
HTWAINSESSION g_hSession)
{
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 = hDlg;
ofn.lpstrFile = szFilePath;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrTitle = TEXT("Load Template File");
if (GetOpenFileName (&ofn))
{
nRet = L_TwainOpenTemplateFile (g_hSession, &hFile, szFilePath, LTWAIN_TEMPLATE_OPEN_READ);
if (nRet == SUCCESS)
{
L_UINT uIndex, uCapCount = 0;
pTW_CAPABILITY ptwCapability = NULL;
nRet = L_TwainGetNumOfCapsInFile (g_hSession, hFile, &uCapCount);
if (nRet == SUCCESS)
{
for (uIndex = 0 ;uIndex < uCapCount ;uIndex ++)
{
nRet = L_TwainGetCapabilityFromFile (g_hSession, hFile, &ptwCapability, uIndex);
if (nRet == SUCCESS)
{
nRet = L_TwainSetCapability (g_hSession, ptwCapability, LTWAIN_CAPABILITY_SET);
if(nRet != SUCCESS)
return nRet;
}
else
{
return nRet;
}
if (ptwCapability)
{
GlobalFree (ptwCapability->hContainer);
GlobalUnlock(ptwCapability);
GlobalFree (ptwCapability);
}
}
}
else
return nRet;
nRet = L_TwainCloseTemplateFile (g_hSession, hFile);
if(nRet != SUCCESS)
return nRet;
}
else
return nRet;
}
return SUCCESS;
}