#include "l_bitmap.h"
L_LTSCR_API L_INT L_CaptureFromExe(pBitmap, uBitmapStructSize, pszFileName, nResType, pResID, bCaptureByIndex, clrBackGnd, pfnCaptureCallback, pUserData)
pBITMAPHANDLE pBitmap; |
pointer to the bitmap handle |
L_UINT uBitmapStructSize; |
size in bytes, of the structure pointed to by pBitmap |
L_TCHAR * pszFileName; |
filename to capture from |
L_INT nResType; |
resource type to capture |
L_TCHAR *pResID; |
resource ID to be captured |
L_BOOL bCaptureByIndex; |
flag |
COLORREF clrBackGnd; |
background color to be used for icons. |
CAPTURECALLBACK pfnCaptureCallback; |
optional callback function |
L_VOID * pUserData; |
pointer to more parameters for the callback |
Captures an image from the specified resource stored in an EXE or DLL.
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). | |
pszFileName | Character string containing the name of the exe (or dll) from which the resource should be captured. | |
nResType | Specifies the type of resource to capture. Possible values for RETYPEENUM are: | |
Value | Meaning | |
RESTYPE_BITMAP | Capture a bitmap resource | |
RESTYPE_ICON | Capture an icon resource | |
RESTYPE_CURSOR | Capture a cursor resource | |
pResID | Specifies the index of the resource to capture. You can use MAKEINDEX or MAKERESOURCEID macros to convert the resource ids to strings. | |
bCaptureByIndex | Flag of the requested resource. Possible values are: | |
Value | Meaning | |
TRUE | Indicates that pResID is the index position of the requested resource. | |
FALSE | Indicates that pResID is the resource ID of the requested resource. | |
clrBackGnd | Background color for icons. | |
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 is similar to L_CaptureFromExeDlg, but does not display a dialog box. It simply captures the resource identified by nResType and pResID, from pszFileName. The captured bitmap may or may not have a region, depending on the transparency information of the captured resource.
Use L_CaptureGetResCount to determine the number of resources in an executable.
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_CaptureFromExeDlg, CAPTURECALLBACK, L_StopCapture, L_CaptureGetResCount |
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("FromEXE.bmp")), pBitmap, FILE_BMP, 0, 0, NULL));
}
L_INT CaptureFromEXEExample(L_VOID)
{
BITMAPHANDLE Bitmap;
/*To call the L_CaptureFromExe*/
L_INT nRet = L_CaptureFromExe(&Bitmap, sizeof(BITMAPHANDLE),
MAKE_IMAGE_PATH(TEXT("ExeWithResources.exe")),
RESTYPE_ICON,
0,
TRUE,
RGB(255,192,192),
pfnCaptureCallback,
NULL);
if (Bitmap.Flags.Allocated)
L_FreeBitmap (&Bitmap);
return nRet;
}