The following principle is to be understood by the expressions "callbacks and notifications": when List & Label needs information then it just asks your program. You don't have to pre-program all answers, just those for which you explicitly wish a modified behavior.
For example, there are objects which are program definable (user objects, see next chapter) which are handled by List & Label as a "black box". And when List & Label has to print such an object it turns to your program to ask it to carry out this function. This allows your application to extend the support for special objects, for example graphics with formats not implemented in List & Label. This is easier than a whole COM interface, because you need to supply only one function for the job.
Using the callback function you can add data to a page (important for labels: when needed you can add information like page no., print date or similar onto a page outside of the labels) which is controlled by the programmer (and consequently cannot be removed by the user in the Designer). Objects can be hidden (this can also be done with LlPrintEnableObject() or the appearance condition of an object).
All this is possible if you implement one of the following:
• a callback routine is defined and its address is passed on to List & Label by LlSetNotificationCallback(), or
• you react to messages sent by List & Label via Windows messages. These are sent by List & Label to the window which is stated with LlDefineLayout() and LlPrintWithBoxStart().
In both cases you obtain detailed information about the function which is to be carried out.
The rest of this chapter describes how to implement such a callback routine. For an overview of all available callbacks, see chapter Callback Reference.