Mnjul, you don't
have to QueryInterface, a mere typecast to IMessenger3* will do the trick (not pretty though I admit).
CMI, if you want to fire off a new thread in C++, just use the following function call:
code:
_beginthread(<funcname>, <stacksize>, <arglist>);
I've only used it with a function that takes a single argument, so I'm not sure how it would handle multiple arguments, but a quick search on MSDN should help. My guess is that you'd have to do a little bit of processing yourself: others on the forums may be able to help you more.
Also, remember to #include <process.h>, or it won't compile.
Don't worry about ending the thread: once the function returns, the thread is terminated by Windows.