On-demand multhreaded critical section creation

A question came up on an internal newsgroup recently – “How do I do on-demand initialization of critical sections in a multithread-aware library?”  The asker didn’t have an explicit Initialize function in which his critical section could be created, and instead wanted to know what the right approach was for creating one on demand. Below…