Christoph you're in luck. I very recently wrote up a wiki entry on using class member functions in calls to the OS. In general, if you haven't already, you might want to check out the wiki. In particular the FAQ page and How To pages. If you are going to write in C++ you might find other benefit in reading the remainder of the article on moving from C to C++.
One way to use the arbitrary void * parameter is to let you pass a class instance
the function. Then you use a static member function and cast the void * as the object then call its member function.
With a C++ class function its just a normal function that has hidden "This" pointer that gives it some way to
figure out what object its working on. In Passing this to a callback there is no way for the call back to know the "this"