#include "l_bitmap.h"
L_LTSCR_API L_INT L_CaptureSelectedObject(pBitmap, uBitmapStructSize, pObjectOptions, uOptionsStructSize, pCaptureInfo, uInfoStructSize, pfnCaptureCallback, pUserData)
pBITMAPHANDLE pBitmap; |
pointer to the bitmap handle |
L_UINT uBitmapStructSize; |
size in bytes, of the structure pointed to by pBitmap |
pLEADCAPTUREOBJECTOPTION pObjectOptions; |
pointer to an object options structure |
L_UINT uOptionsStructSize; |
size in bytes, of the structure pointed to by pObjectOptions |
pLEADCAPTUREINFO pCaptureInfo; |
pointer to info structure |
L_UINT uInfoStructSize; |
size in bytes, of the structure pointed to by pCaptureInfo |
CAPTURECALLBACK pfnCaptureCallback; |
optional callback function |
L_VOID * pUserData; |
pointer to more parameters for the callback |
Captures an image of the selected window's object.
Parameter |
Description |
pBitmap |
Pointer to a bitmap handle that references the captured data. |
uBitmapStructSize |
Size in bytes, of the structure pointed to by pBitmap, for versioning. Use sizeof(BITMAPHANDLE). |
pObjectOptions |
Address of a LEADCAPTUREOBJECTOPTION structure to be filled with specific options for the L_CaptureSelectedObject function. Pass NULL if you dont want to use this parameter. |
uOptionsStructSize |
Size in bytes, of the structure pointed to by pObjectOptions, for versioning. Use sizeof(LEADCAPTUREOBJECTOPTION). |
pCaptureInfo |
Address of LEADCAPTUREINFO structure to be filled with information regarding the captured image's source. Pass NULL if you are not interested in extra information about the capture. |
uInfoStructSize |
Size in bytes, of the structure pointed to by pCaptureInfo, for versioning. Use sizeof(LEADCAPTUREINFO). |
pfnCaptureCallback |
Optional callback function for additional processing. |
|
If you do not provide a callback function, use NULL as the value of this parameter. |
|
If you do provide a callback function, use the function pointer as the value of this parameter. |
|
The callback function must adhere to the function prototype described in CAPTURECALLBACK Function. |
pUserData |
Void pointer that you can use to pass one or more additional parameters that the callback function needs. |
|
To use this feature, assign a value to a variable or create a structure that contains as many fields as you need. Then, in this parameter, pass the address of the variable or structure, casting it to L_VOID ;*. The callback function, which receives the address in its own pUserData parameter, can cast it to a pointer of the appropriate data type to access your variable or structure. |
|
If the additional parameters are not needed, you can pass NULL in this parameter. |
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
This function allows the user to select an object to capture, and then captures that object to a bitmap. Any Windows object, such as a window, tool bar, or icon, can be captured. The callback can be used to do multiple captures, depending on the options set using L_SetCaptureOption.
The hot key needs to be pressed to complete the capture.
Required DLLs and Libraries
LTSCR For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application. |
Functions: |
L_SetCaptureOption, L_SetCaptureOptionDlg, L_GetDefaultObjectOption, CAPTURECALLBACK, L_CaptureObjectOptionDlg |
Topics: |
|
|
#define MAKE_IMAGE_PATH(pFileName) TEXT("C:\\Users\\Public\\Documents\\LEADTOOLS Images\\")pFileName
static L_INT EXT_CALLBACK pfnCaptureCallback(pBITMAPHANDLE pBitmap,
pLEADCAPTUREINFO pCaptureInfo,
L_VOID * pUserData)
{
UNREFERENCED_PARAMETER(pCaptureInfo);
UNREFERENCED_PARAMETER(pUserData);
/* save the captured image */
return(L_SaveBitmap (MAKE_IMAGE_PATH(TEXT("SelectedObject.bmp")), pBitmap, FILE_BMP, 0, 0, NULL));
}
L_INT CaptureSelectedObjectExample(L_VOID)
{
BITMAPHANDLE Bitmap;
LEADCAPTUREOBJECTOPTION ObjectOptions;
LEADCAPTUREINFO CaptureInfo;
memset(&CaptureInfo, 0, sizeof(LEADCAPTUREINFO));
/* To call the L_CaptureSelectedObject & L_GetDefaultObjectOption */
/* get the default object options */
L_INT nRet = L_GetDefaultObjectOption(&ObjectOptions, sizeof(LEADCAPTUREOBJECTOPTION));
if (nRet != SUCCESS)
return nRet;
ObjectOptions.uBorderWidth = 3;
if(nRet == SUCCESS)
{
nRet = L_CaptureSelectedObject (&Bitmap, sizeof(BITMAPHANDLE),
&ObjectOptions, sizeof(LEADCAPTUREOBJECTOPTION),
&CaptureInfo, sizeof(LEADCAPTUREINFO),
pfnCaptureCallback,
NULL);
if (Bitmap.Flags.Allocated)
L_FreeBitmap (&Bitmap);
}
return nRet;
}