FILESAVECALLBACK Function
#include "l_bitmap.h"
L_INT pEXT_CALLBACK YourFunction (pBitmap, pBuffer, uRow, uLines, pUserData)
pBITMAPHANDLE pBitmap; |
/* pointer to the bitmap handle */ |
/* pointer to a buffer for the caller's input data */ | |
L_UINT uRow; |
/* first line to write to the buffer */ |
L_UINT uLines; |
/* number of lines to write to the buffer */ |
/* pointer to additional parameters */ |
Provides input to the L_SaveFile, L_SaveFileOffset, LDicomDS::InsertImage, and LDicomDS::SetImage functions.
Parameter |
Description |
pBitmap |
Pointer to the bitmap handle that contains the image information. |
pBuffer |
Pointer to the caller's input buffer where the callback function must put the data. |
uRow |
The number of the first line that the callback function must put in the buffer. |
uLines |
The number of lines that the callback function must put in the buffer. |
pUserData |
A void pointer that you can use to access a variable or structure containing data that your callback function needs. This gives you a way to receive data indirectly from the function that uses this callback function. (This is the same pointer that you pass in the pUserData parameter of the calling function.) |
|
Keep in mind that this is a void pointer, which must be cast to the appropriate data type within your callback function. |
Returns
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
Comments
This type callback function is optional. If you provide a callback function, it must supply the image data. It can also do other useful things, such as updating a status bar. If you do not provide a callback function, the calling function saves data from the specified bitmap.
See Also
Functions |
L_SaveFile, L_SaveFileOffset, L_StartCompressBuffer, LDicomDS::InsertImage, LDicomDS::SetImage |
Example
/* This FILESAVECALLBACK function supplies image data from the LEAD bitmap,
to fulfill the minimum requirements of the callback */
L_INT L_EXPORT EXT_CALLBACK SaveImageCB (pBITMAPHANDLE pBitmap,
L_UCHAR L_FAR * pBuffer,
L_UINT nRowBegin,
L_UINT nRowsToGet,
L_VOID L_FAR * pUserData)
{
L_UINT i; /* Row counter */
L_UINT nRowLast = nRowBegin + nRowsToGet; /* Used when counting rows */
/* Put the required rows in the buffer */
for (i = nRowBegin; i < nRowLast; i++)
{
/* Get a row from the bitmap and put it in the buffer */
L_AccessBitmap (pBitmap);
L_GetBitmapRow (pBitmap, pBuffer, i, pBitmap->BytesPerLine);
L_ReleaseBitmap (pBitmap);
/* Move the pointer to the position in the buffer for the next row */
pBuffer += pBitmap->BytesPerLine;
}
return (SUCCESS);
}