Changes to ATL Classes

New Classes

The following classes are new since ATL 2.1:

Composite Control CComCompositeControl
Connection Points IDispEventImpl
MMC Snap-In Support CSnapInItemImpl

CSnapInPropertyPageImpl

Service Provider Support IServiceProviderImpl
Windows Support CAxDialogImpl

CAxWindow

CSimpleDialog

CWinTraits

CWinTraitsOR

CDialogImplBase — see CDialogImpl


See Also

ATL Class Overview

Changes to IObjectSafetyImpl

See the IObjectSafetyImpl section in Porting from ATL 2.1.

Classes Moved to Another Header File

These classes were moved from Atlctl.h to Atlcom.h, to better group the functionality:

CComDispatchDriver

IDispEventImpl

IPersistPropertyBagImpl

IPersistStreamInitImpl

Changes to CComPtr and CComQIPtr

The following methods were added to CComPtr and CComQIPtr, for increased functionality. (The following links go to the CComPtr topics.)

The second template argument to CComQIPtr now defaults to __uuidof(T) where T is the first template argument. As a result, in most cases, you no longer must specify the second template parameter. The exception to this rule is for CComQIPtr objects that are of type IUnknown. They must still be declared using the two-template parameter syntax:

CComQIPtr<IUnknown, &IID_IUnknown> spUnk;

This limitation is minor, because it is unusual to use a CComQIPtr for holding an IUnknown.

Changes to CWindow

CWindow has the following new methods:

Changes to CWindowImpl, CDialogImpl, and CContainedWindow

CWindowImpl, CDialogImpl, and CContainedWindow now do automatic unsubclassing when required.

These classes also have the following new template arguments: