L'Active Template Library (abr. ATL) est une bibliothèque de classes pour le langage de programmation C++ développée par Microsoft dans le but de simplifier la programmation des composants logiciels Component Object Model (COM).
Utilisée avec Visual C++, Active Template Library permet aux développeurs de créer une multitude d'objets COM, de serveurs d'automations (OLE), et de contrôles ActiveX. Modelé d'après la bibliothèque STL (Standard Template Library), ATL possède un assistant d'objet (object wizard) qui configure très rapidement la structure primaire des objets avec un minimum de codage à la main.
Les contrôles destinés à une diffusion sur Internet auraient pu être réalisés avec les classes MFC (Microsoft Foundation Classes), mais cela nécessite qu'ils soient compacts et de taille réduite pour que l'on puisse les télécharger en réseau depuis des serveurs Web. Les applications MFC ont tendance à être lourdes et à nécessiter des bibliothèques DLL supplémentaires. ATL permet de créer des micro-contrôles sans aucune DLL : c'est donc une alternative légère aux MFC pour un environnement de contrôles COM.
Une utilisation répandue de l'ATL dans les pages ASP (Active Server Pages) consiste à construire des objets qui peuvent être appelés depuis un script. VBScript, qui est pourtant très limité, permet tout de même de faire appel à du code C++ contenu dans des objets COM.