This behavior is observed in version 10.0.40219.1 SP1Rel
atlbase.h contains this code in CAtlExeModuleT
HANDLE StartMonitor() throw()
m_hEventShutdown = ::CreateEvent(NULL, false, false, NULL);
if (m_hEventShutdown == NULL)
HANDLE hThread = ::CreateThread(NULL, 0, MonitorProc, this, 0, &dwThreadID);
Note the "if(hThread==NULL)" branch - the handle is closed, but the member variable is not set to null. This is likely an error - the handle should be set to null once closed to avoid accidential double close. If the code is actually okay then a comment explaining the idea behind the code is needed.