>> what is the corresponding standard lib function of Win32's WideCharToMultiByte()?
there are two options available; use the ctype<> facet or the codecvt<> facet. the following example uses ctype<> for conversion.
>> In addition the CreateEvent() function.
there is no threading support in c++98. a proposal for a thread library (based on boost.thread) is part of TR2, yet to be accepted into c++0x. for a portable solution, you could use boost.thread. but the equivalent of win32 Event mechanism is not provided by the library; instead java style condition variables are available. this would require some reworking of your code, but would probably result in a solution that has more technical merit. see http://www.boost.org/doc/html/thread/rationale.html#thread.rationale.events