The anti-spam engine makes use of callback functions in various places. All callbacks take a
void *host as the first parameter. This parameter is not used by the engine at
all and is only passed through to allow the hosting application to pass data to the callback. If
the hosting application uses multiple instances of the engine simultaneously, the
host parameter can be used to identify the corresponding engine object to the
It is always valid to specify
NULL for the callback if you do not want to be
notified about the corresponding events.
The callbacks of the
enumerate_*() methods return a boolean value: if it is 0,
then enumeration is aborted immediately. Otherwise enumeration continues until it runs out of
enumerate_*() methods return the number of elements enumerated. If
the enumeration is aborted this way, then the return value only reflects the number of elements
actually visited. If an exception occurs during execution of the enumeration, the enumerator
returns a count of -1, even if the callback function has already been called.
Any data passed to a callback function is only valid for the duration of the callback. If you want to preserve the data for later access, then the data must be copied from inside the callback.