The following classes define a threading model and critical section:
CComMultiThreadModel Provides thread-safe methods for incrementing and decrementing a variable. Provides a critical section.
CComMultiThreadModelNoCS Provides thread-safe methods for incrementing and decrementing a variable. Does not provide a critical section.
CComSingleThreadModel Provides methods for incrementing and decrementing a variable. Does not provide a critical section.
CComObjectThreadModel Determines the appropriate threading-model class for a single object class.
CComGlobalsThreadModel Determines the appropriate threading-model class for an object that is globally available.
CComAutoCriticalSection Contains methods for obtaining and releasing a critical section. The critical section is automatically initialized.
CComCriticalSection Contains methods for obtaining and releasing a critical section. The critical section must be explicitly initialized.
CComFakeCriticalSection Mirrors the methods in CComCriticalSection without providing a critical section. The methods in CComFakeCriticalSection do nothing.