ATL provides welcome relief to developers of COM objects. Just as MFC more or less renders writing WndProcs unnecessary, ATL saves you from repeatedly writing IUnknown and the related COM support functions. In addition, the ATL COM AppWizard gives you most of the options you'll want for developing a variety of different servers. All you need to do is become a bit more familiar with the AppWizard and the Object Wizard. (Unfortunately, the ATL documentation doesn't completely describe what each of the check boxes and buttons does.) Once you understand exactly what the AppWizard and Object Wizard options do, you're better prepared to take the fullest advantage of ATL.
If you examine the Object Wizard closely, you'll notice we've left out some COM classes, including the OLEDB templates and the various kinds of ActiveX controls you can produce. The OLEDB templates are beyond the scope of this book. However, we cover the various kinds of ActiveX controls in Chapter 10.