#include "l_bitmap.h"
L_INT pEXT_CALLBACK YourFunction (pBitmap, pBuffer, nLines, pUserData)
pBITMAPHANDLE pBitmap; |
pointer to the bitmap handle |
L_UCHAR* pBuffer; |
pointer to a buffer of the caller's output data |
L_INT nLines; |
number of lines in the buffer |
L_VOID* pUserData; |
pointer to additional parameters |
Handles the converted image data that the L_ColorResBitmap function has written to a buffer.
Parameter |
Description |
pBitmap |
The pointer to the bitmap handle referencing the bitmap that contains the image information. |
pBuffer |
A pointer to a buffer containing one or more lines of output image data that the calling function has already converted. |
nLines |
The number of lines in the pBuffer 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. |
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
This is an optional callback function for additional processing. (The bitmap is modified the same way, whether you provide a callback function or not.) For an explanation of how the callback function is used, refer to L_ColorResBitmap.
Required DLLs and Libraries
LTKRN For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application |
This COLORRESCALLBACK function paints the image as the image is processed.
/* Structure used for the callback function's user data */
typedef struct tagIMAGECBPARM
{
HWND hwnd; /* Current window */
HDC hdc; /* Device context for the current window */
L_INT nRow; /* First row in the input buffer */
HPALETTE hpalPaint; /* Paint palette handle */
RECT rLeadDest; /* Destination rectangle for painting */
RECT rLeadSource; /* Source rectangle for painting */
} IMAGECBPARM, * LPIMAGECBPARM;
/*******************************************************************************/
L_INT EXT_CALLBACK ColorResCallback (pBITMAPHANDLE pBitmap,
L_UCHAR *pBuffer, L_INT nLines,
L_VOID * pColorResUserData)
{
LPIMAGECBPARM pUserData = (LPIMAGECBPARM) pColorResUserData;
/* If this is the first call (row 0), select and realize the palette */
if( pUserData->nRow == 0 )
{
SendMessage (pUserData->hwnd, WM_QUERYNEWPALETTE, 0, 0L);
SelectPalette( pUserData->hdc, pUserData->hpalPaint, TRUE );
RealizePalette(pUserData->hdc);
}
/* Paint the buffer to the specified device context */
L_PaintDCBuffer( pUserData->hdc, /* Device context - from function parameter */
pBitmap, /* Bitmap handle - from function parameter */
&pUserData->rLeadSource, /* Source rect - set globally in WM_CREATE */
&pUserData->rLeadSource, /* Source clip rect - same as source rect */
&pUserData->rLeadDest, /* Destination rect - set globally in WM_CREATE */
&pUserData->rLeadDest, /* Destination clip rect - same as destination rect */
SRCCOPY, /* ROP code for normal painting */
pBuffer, /* Input buffer - from function parameter */
pUserData->nRow, /* First row in buffer - from function parameter */
nLines ); /* Number of lines in the buffer - from function parameter */
/* Increment the current row by the number of lines in the buffer */
pUserData->nRow += nLines;
return( SUCCESS );
}
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET