Der Wert des nMsg-Parameters unterscheidet die verschiedenen Aufgaben. Die Werte sind die Konstanten, die mit LL_CMND_xxxx beginnen, z. B. LL_CMND_TABLEFIELD zum Zeichnen des Hintergrunds eines Tabellenfeldes, oder LL_INFO_xxx sowie LL_NTFY_xxx-Nachrichten.
Abhängig von der Aufgabe, die Ihr Programm zu erledigen hat, erhält der Parameter lParam unterschiedliche Bedeutungen. Die einzelnen Bedeutungen stehen weiter unten bei den Aufgaben beschrieben. Es sind meist Strukturen (Records), auf die lParam zeigt, der Wert muss also über eine Typkonvertierung in einen Strukturzeiger verwandelt werden:
LRESULT
CALLBACK _extern LLCallback(INT wParam, LPARAM lParam,
UINT_PTR
lUserParam)
{
PSCLLTABLEFIELD
pSCF;
switch
(wParam)
{
case
LL_CMND_TABLEFIELD:
pSCF =
(PSCLLTABLEFIELD)lParam;
// do something using
pSCF;
break;
}
return(0);
}
Die Funktion muss immer einen definierten Wert zurückgeben. Wenn nicht anders gefordert, muss dieser Wert Null sein.
lUserParam ist der über
LlSetOption(hJob, LL_OPTION_CALLBACKPARAMETER, <Wert>);
übergebene Wert.
In objektorientierten Sprachen kann so ein Zeiger ("this", "self") übergeben werden.