In pseudo code, calling the Designer is done as follows (functions marked with '*' are optional calls):
<open
Job>
(LlJobOpen,
LlJobOpenLCID)
<define List &
Label-settings>*
(LlSetOption,
LlSetOptionString,
LlSetDebug,
LlSetFileExtensions,
LlSetNotificationMessage,
LlSetNotificationCallback)
<which
file?>*
(LlSelectFileDlgTitleEx)
<define
variables>
(LlDefineVariableStart,
LlDefineVariable,
LlDefineVariableExt,
LlDefineVariableExtHandle)
<define fields>*
(only
LL_PROJECT_LIST)
(LlDefineFieldStart,
LlDefineField,
LlDefineFieldExt,
LlDefineFieldExtHandle)
<disable
functions>*
(LlDesignerProhibitAction,
LlDesignerProhibitFunction)
<call
designer>
(LlDefineLayout)
<close
Job>
(LlJobClose)
It is sufficient for job management to get the job at the beginning of the program and to release it at the end; this job is then used both for Designer calls and printing. Normally a job handle can be retained for the whole lifetime of the application, so that it only has to be released at the end.
We recommend making global settings valid for all List & Label calls after LlJobOpen()/LlJobOpenLCID() and making local settings such as disabling menu items directly before calling the Designer or printing.