Each application has one and only one application object; this object coordinates other objects in the running program and is derived from CWinApp.
The Microsoft Foundation Class (MFC) Library supports multiple threads of execution within an application. All applications must have at least one thread; the thread used by your CWinApp object is this primary thread.
CWinThread encapsulates a portion of the operating system's threading capabilities. To make using multiple threads easier, MFC also provides synchronization object classes to provide a C++ interface to Win32 synchronization objects.