The Deactivate method should also release m_spObjectContext.Release(), by default.
Microsoft has changed its Web site, and many of the links listed in the chapter have changed.
Replace all of the items in the Further Reading section with:
To find out more information about threading in general, I recommend the book Advanced Windows published by Microsoft Press and authored by Jeffrey Richter.
An example of using ATL in an MFC server titled "MFCATL: Using ATL COM Objects in an MFC Server" can be read at http://msdn.microsoft.com/library/devprods/vs6/vc++/vcsample/_sample_atl_mfcatl.htm.
Another article discussing combining ATL and MFC is "Create an ATL Project that supports MFC" at http://msdn.microsoft.com/library/devprods/vs6/vc++/vccore/vchowcreateatlprojectthatsupportsmfc.htm.
Read more about serialization in the article "Serialization: Making a Serializable Class" at http://msdn.microsoft.com/library/devprods/vs6/vc++/vccore/_core_serialization.3a_.making_a_serializable_class.htm.
An overview of CObject can be found at http://msdn.microsoft.com/library/devprods/vs6/vc++/vccore/_core_cobject_class.3a_.specifying_levels_of_functionality.htm.
Find out more about creating worker threads in the article "Multithreading: Creating Worker Threads" at http://msdn.microsoft.com/library/devprods/vs6/vc++/vccore/_core_multithreading.3a_.creating_worker_threads.htm.