>>110-112
解説ありがとうございます。

> CCriticalSection csForFoo ; // 非AUTO
>  :
> csForFoo.Lock() ;
> strFoo += strBar ;
> csForFoo.Unlock() ;

この使い方が当初の疑問だったのですが、
このローカル変数としての使い方って、意味ありますか?
試しに同じような処理を作って、複数のスレッドから同時に呼んでみても、
全く排他制御されているように見えなかったのですが。