Win32の話ですが
InterlockedIncrement()はなんでガードしないと行けないんですか?
4バイトのインクリメントならアセンブラでincとかになるから、
ロックはいらない気がするんですが。