This class implements IUnknown for a nonaggregated object, but does not increment the module lock count in the constructor.
class CComObjectNoLock :
Your class, derived from CComObjectRoot or CComObjectRootEx, as well as from any other interface you want to support on the object.
CComObjectNoLock is similar to CComObject in that it implements IUnknown for a nonaggregated object; however, CComObjectNoLock does not increment the module lock count in the constructor.
ATL uses CComObjectNoLock internally for class factories. In general, you will not use this class directly.