Task:
Enables the programmer to place additional drawings in a label or file card project (an individual label, for example).
This callback only occurs with label and file card projects. With list objects, it would be identical to LL_CMND_PAGE.
Activation:
LlSetOption(hJob, LL_OPTION_CALLBACKMASK,
<other Flags> | LL_CB_PROJECT);
Parameters:
lParam points to an scLlProject structure:
_nSize: Size of the structure, sizeof(scLlProject)
_bPreDraw: TRUE for a call before List
& Label draws the page.
FALSE for a call after List & Label has drawn
the page.
_bDesignerPreview: TRUE if the call takes
place from the Designer preview.
FALSE if the call takes place during the
WYSIWYG preview or print.
_hPaintDC: Device Context for the print
_hRefDC: Device Context for references
_rcPaint: Rectangle in which the object should be drawn. The mapping mode is in the normal drawing units, mm/10, inch/100 or inch/1000.
Return Value:
0
Hints:
In this callback no List & Label function may be called which will produce output (LlPrint(), etc.)! Functions like LlPrintGetCurrentPage(), LlPrintGetOption() or LlPrintEnableObject() are allowed.
See: Hints on the use of GDI-objects.
This function is called twice per page, once with _bPreDraw = TRUE, then with _bPreDraw = FALSE.
Example:
case LL_CMND_PROJECT:
pSCP =
(PSCLLPROJECT)pSC->_lParam;
if
(pSCP->_bPreDraw)
{
FillRect(pSCL->_hPaintDC,
pSCL->_rcPaint,
GetStockObject(LTGRAY_BRUSH);
}
break;