Okay, head up bottom time.... I think you've cracked it, it must've been my addled brain at work this afternoon. I'm pretty sure I know what's wrong. One issue is the error handler (which turns out to be optional) seems to be completely different to the other three. I was initially trying to make that work. Looking again at the API, your code and an example i've found on sourceforge I think I know the way to continue.

I owe you a pint. Shame there's nothing work related going on in Cambridge.
_________________________
Cheers,

Andy M