1.Objects
a.Simple Object:用于实现业务逻辑,无用户界面(User Interface)。只实现了IUnknown和default 厂类。
b.Add-in Object:用于实现创建整合到VC IDE的COM组件。支持Toolbar和Event Handling,允许实现对VS commands的响应。支持并且实现了IDSAddln接口(此接口用于VC IDE和对象的交互)。
c.Internet Explorer Object:包含了IE的所需的接口,没有用户界面(UI)。实现IObjectWithSite接口,用于将对象嵌入容器,于IE交互。ATL通过IObjectWithSiteImpl<>模板实现。
d.ActiveX Server Component:没有UI的服务器端对象,在IIS下的ASP页面里执行。可以用来处理Request, Session, Response, Application, 和 Server对象。
e.MMC SnapIn:用于创建一个MMC的扩展的COM框架。支持对象持久化和与MMC GUI交互的COM接口。
f.MTS Component:用于创建一个运行于MTC环境中的对象。可选择是否支持IObjectControl接口。IObjectControl接口用于对象在MTS环境中激活和钝化过程中的初始化和清理工作。
g.Component Registrar Object:用于创建IComponentRegistrar接口的对象。此接口允许你通过程序控制组件的注册和卸载过程。虽然ATL已经为定义在Object Map中的对象提供了必要的操作,但是如果想要选择性的注册或卸载组件中对象,这就是你要找的。
2.Controls
有3种不同的GUI ActiveX控件,每种都有Full和Lite版本。其中Full版本提供了ActiveX容器所需的所有的接口,而Lite版本只提供了最小的接口集合。相应的Full版本也许会让你实现一些你不会使用到接口,而Lite版本可能会引起兼容问题。
a.Full/Lite Controls:一般的ActiveX控件。支持用于屏幕呈现(screen rendering),属性持久化,和in-place activation所需接口。
b.Full/Lite Composite Controls:一种可以包含其他控件的控件。可以通过拖拽来组合控件。
c.Full/Lite HTML Controls:支持DHTML的控件。允许你访问IE对象模型,提供rendering, scripting, 和browsing功能。
d.Property Page:这不是控件,这是提供在开发过程中配置控件的机制。
3.Miscellaneous
a.Dialog:用于插入一个Dialog Box到你的工程里,只是简单的对WIN32 API的封装,没有COM的功能。
4.Data Access
用于创建一个使用OLE DB (OLE database) 协议的ATL对象。