Using the proper synchronization objects is very
important on multithreaded applications, and the Win32 api offers a plethora of
sync objects you can use. However, using them is not always straightforward, and
there are too many apis to keep track of. To simplify their use in my personal
development, I created a few synchornization classes that wrap the most common
objects: Events, Mutexes, Semaphores and Critical Sections. Also, there's a nice
template that's very useful when you are working with events and critical
sections.

Grab the file here: winterdom_cpp.zip