活动模板库 (ATL) 概念

活动模板库 (ATL) 是一组基于模板的 C++ 类,可用于创建小型、便捷的组件对象模型 (COM) 对象。 它对关键 COM 功能提供特殊支持,包括常用实现、双重接口、标准 COM 枚举器接口、连接点、分离式接口和 ActiveX 控件。

如果进行大量 ATL 编程,你将希望了解关于 COM 和 .NET 属性的详细信息,这些属性可以简化 COM 编程。 有关详细信息,请参阅属性化编程。 (请勿将 COM 和 .NET 属性与 C++ 标准版中的 [[attribute]] 功能混淆。)

本节内容

COM 和 ATL 介绍
介绍组件对象模型 (COM) 背后的主要概念。 本文还简要介绍了 ATL 是什么以及何时应该使用它。

ATL COM 对象基础知识
讨论各种 ATL 类之间的关系以及这些类的实现方式。

双重接口和 ATL
从 ATL 角度介绍双重接口。

ATL 集合和枚举数
介绍 ATL 中集合和枚举器的实现与创建。

复合控件基础知识
提供创建复合控件的分步说明。 复合控件是一种 ActiveX 控件,可以包含其他 ActiveX 控件或 Windows 控件。

ATL 控件包含常见问题解答
涵盖与 ATL 承载控件相关的基本问题。

ATL COM 属性页
演示如何指定和实现 COM 属性页。

ATL 支持 DHTML 控件
提供创建 DHTML 控件的分步说明。

ATL 连接点
介绍什么是连接点以及 ATL 如何实现它们。

事件处理和 ATL
介绍使用 ATL 的 IDispEventImplIDispEventSimpleImpl 类处理 COM 事件所需执行的步骤。

ATL 和自由线程封送拆收器
提供关于 ATL 简单对象向导的允许类聚合自由线程封送拆收器 (FTM) 的选项的详细信息。

指定项目的线程模型
介绍可用于控制与项目中的线程相关的运行时性能的宏。

ATL Module 类
讨论 ATL 7.0 的全新模块类。 模块类实现 ATL 要求的基本功能。

ATL 服务
介绍实现服务时发生的事件的序列。 此外,还讨论一些与开发服务相关的概念。

ATL 窗口类
介绍如何在 ATL 中创建窗口并对窗口进行超分类和子分类。 ATL 窗口类不是 COM 类。

ATL 集合类
介绍如何在 ATL 中使用数组和映射。

ATL 注册表组件(注册器)
讨论 ATL 脚本语法和可替换参数。 它还介绍了如何设置指向注册机构的静态链接。

使用 ATL 和 C 运行时代码进行编程
讨论静态或动态链接到 C 运行时库 (CRT) 的优势。

使用 CComBSTR 进行编程
讨论使用 CComBSTR 进行编程时需要注意的几种情况。

编码引用
提供支持在 atlenc.h 中以一系列常见 Internet 标准(如 uuencode、十六进制和 UTF8)进行编码的函数和宏。

实用程序引用
提供以 CPathTCUrl 格式处理路径和 URL 的代码。 线程池 CThreadPool 可在自己的应用程序中使用。 可在 atlpath.h 和 atlutil.h 中找到此代码。

ATL 教程
可指导你完成控件的创建并在此过程中展示一些 ATL 基础知识。

ATL 示例
提供 ATL 示例程序的说明和相关链接。

创建 ATL 项目
包含关于 ATL 项目向导的信息。

ATL 控件向导
讨论如何添加类。

属性化编程
提供关于使用属性简化 COM 编程的概述,以及指向更详细主题的链接列表。

ATL 类概述
提供 ATL 类的参考信息和相关链接。