The ATL Roadmap

If you look at the source code for ATL, you'll find ATL consists of a collection of header files and C++ source code files. Most of it resides inside ATL's Include directory. Here's a rundown of some of the ATL files and what's inside each of them.

ATLBASE.H

This file contains:

  • ATL's function typedefs

  • Structure and macro definitions

  • Smart pointers for managing COM interface pointers

  • Thread synchronization support classes

  • Definitions for CComBSTR, CComVariant, threading, and apartment support

ATLCOM.H

This file contains:

  • Template classes for class object/class factory support

  • IUnknown implementations

  • Support for tear-off interfaces

  • Type information management and support

  • ATL's IDispatch implementation

  • COM enumerator templates

  • Connection point support

ATLCONV.CPP and ATLCONV.H

These two source code files include support for Unicode conversions.

ATLCTL.CPP and ATLCTL.H

These two files contain:

  • The source code for ATL's IDispatch client support and event firing support

  • CComControlBase

  • The OLE embedding protocol support for controls

  • Property page support

ATLIFACE.IDL and ATLIFACE.H

ATLIFACE.IDL (which generates ATLIFACE.H) includes an ATL-specific interface named IRegistrar.

ATLIMPL.CPP

ATLIMPL.CPP implements such classes as CComBSTR, which is declared in ATLBASE.H.

ATLWIN.CPP and ATLWIN.H

These files provide windowing and user-interface support, including:

  • A message-mapping mechanism

  • A windowing class

  • Dialog support

STATREG.CPP and STATREG.H

ATL features a COM component named the Registrar that handles putting appropriate entries into the Registry. The code for implementing this feature is in STATREG.H and STATREG.CPP.

Let's start our excursions into ATL by examining ATL's support for client-side COM development.



Programming Visual C++
Advanced 3ds max 5 Modeling & Animating
ISBN: 1572318570
EAN: 2147483647
Year: 1997
Pages: 331
Authors: Boris Kulagin

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net