Active Template Library

Active Template Library
Developer(s)Microsoft
Written inC++
Operating systemMicrosoft Windows
TypeLibrary or framework
LicenseProprietary

The Active Template Library (ATL) is a set of template-based C++ classes developed by Microsoft, intended to simplify the programming of Component Object Model (COM) objects. The COM support in Microsoft Visual C++ allows developers to create a variety of COM objects, OLE Automation servers, and ActiveX controls.[1][2] ATL includes an object wizard that sets up primary structure of the objects quickly with a minimum of hand coding. On the COM client side ATL provides smart pointers that deal with COM reference counting. The library makes heavy use of the curiously recurring template pattern.

History

COM objects can also be created with Microsoft Foundation Classes (MFC), but this leads to larger binaries that require support DLLs.[3] ATL, on the other hand, is a more lightweight alternative in situations where the graphical user interface parts of MFC are not required.[4]

Older versions of ATL (ATL prior to version 7.1, pre-Visual Studio 2005) are incompatible with DEP because it places executable thunks in data heap.[5][6][7] This problem can be mitigated with DEP-ATL thunk emulation with performance penalty.[8][9]

In ATL version 7 (Visual Studio 2003), which directly succeeded version 3 (Visual Studio 6.0), a number of MFC classes like CString were made available in ATL, or more precisely moved to an ATLMFC common layer which is shared by both libraries. ATL version 7 also introduced attributes in C++ in an attempt to provide something similar to CLI attributes, however these have not been particularly successful, and have been deemphasized in ATL version 8 (Visual Studio 2005); the various wizards no longer generate them by default. Version 7 also introduced new string conversion classes.

On July 28, 2009, Microsoft released a patch to ATL to fix a bug that could allow ActiveX controls created using ATL to be vulnerable to a remote code execution security flaw.[10]

Since Visual Studio 2013 (ATL version 12), all ATL code is static, eliminating the DLL.[11][12]

ATL version defined by ATL_VER macros and can be queried via AtlGetVersion() function.[13]

Support classes

ATL includes many RAII classes to simplify management of COM types. The most commonly used classes include:

  • CComPtr<T>[14] general-purpose smart-pointer,
  • CComBSTR[15] BSTR wrapper,
  • CComVariant[16] VARIANT wrapper, and
  • CComSafeArray<T>[17] SAFEARRAY wrapper.

Compiler COM support

Although not formally part of ATL, Microsoft Visual C++ also includes additional C++ RAII classes to simplify management of COM types. These compiler COM support classes can be used as replacement for or in combination with ATL, and includes:

  • _com_ptr_t[18] smart-pointer that decorates the COM interface name with a "Ptr" suffix,
  • _bstr_t[19] BSTR wrapper,
  • _variant_t[20] VARIANT wrapper, and
  • _com_error[21] HRESULT wrapper.

Note that as of Visual Studio 2012, the compiler COM support classes does not include a SAFEARRAY wrapper.

See also

References

  1. ^ Grimes, Richard (1998). "ATL and COM". ATL COM (1st ed.). Wrox Press. p. 6. ISBN 1-86100-249-1.
  2. ^ Grimes, Richard (1999). "Building and calling a COM object using ATL". Beginning ATL 3 COM Programming (1st ed.). Wrox Press. p. 63. ISBN 978-1-86100-120-7.
  3. ^ Williams, Mickey (2000). "Active Documents". Visual C++ 6 Unleashed (1st ed.). Sams. p. 733. ISBN 978-0-672-31241-0.
  4. ^ Microsoft MSDN: Recommendations for Choosing Between ATL and MFC
  5. ^ http://web.archive.org/web/20080130115007/http://blogs.msdn.com/michael_howard/archive/2008/01/29/new-nx-apis-added-to-windows-vista-sp1-windows-xp-sp3-and-windows-server-2008.aspx
  6. ^ https://learn.microsoft.com/en-us/archive/blogs/michael_howard/new-nx-apis-added-to-windows-vista-sp1-windows-xp-sp3-and-windows-server-2008
  7. ^ https://msrc.microsoft.com/blog/2009/06/understanding-dep-as-a-mitigation-technology-part-1/
  8. ^ http://web.archive.org/web/20090123222148/http://support.microsoft.com/kb/948468
  9. ^ https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-updateprocthreadattribute
  10. ^ "ATL Security Update". MSDN. Microsoft. 2009-07-28. Retrieved 2011-09-19.
  11. ^ http://web.archive.org/web/20130827013146/http://blogs.msdn.com/b/vcblog/archive/2013/08/20/atl-and-mfc-changes-and-fixes-in-visual-studio-2013.aspx
  12. ^ https://devblogs.microsoft.com/cppblog/atl-and-mfc-changes-and-fixes-in-visual-studio-2013/
  13. ^ https://learn.microsoft.com/en-us/cpp/atl/reference/atl-text-encoding-functions?view=msvc-170#atlgetversion
  14. ^ Microsoft MSDN: CComPtr Class
  15. ^ Microsoft MSDN: CComBSTR Class
  16. ^ Microsoft MSDN: CComVariant Class
  17. ^ Microsoft MSDN: CComSafeArray Class
  18. ^ Microsoft MSDN: _com_ptr_t Class
  19. ^ Microsoft MSDN: _bstr_t Class
  20. ^ Microsoft MSDN: _variant_t Class
  21. ^ Microsoft MSDN: _com_error Class

Read other articles:

401st Air Expeditionary Group General Dynamics F-16 Fighting Falcon 81-0788 of the 612th Tactical Fighter Squadron.Active1943–1945; 1947–1951; 1954–1957; 1957–1994; 2001–presentCountry United StatesBranch United States Air ForceRoleManage deployed forcesMotto(s)Latin: Cælum Arena Nostra – The Sky is Our ArenaEngagementsEuropean theater of World War IIDecorationsDistinguished Unit CitationAir Force Outstanding Unit Award w/Combat V DeviceAir Force Outstanding Unit AwardC...

 

РеданжRédange   Країна  Франція Регіон Гранд-Ест  Департамент Мозель  Округ Тьйонвіль Кантон Фонтуа Код INSEE 57565 Поштові індекси 57390 Координати 49°29′41″ пн. ш. 5°55′13″ сх. д.H G O Висота 299 - 425 м.н.р.м. Площа 5,5 км² Населення 996 (01-2020[1]) Густота 182,36 ос./км² Розміщ...

 

IG Bergbau und Energie (IG BE) Gründung 1946 Sitz Bochum Vorläufer Verband der Bergbauindustriearbeiter (1946),IG Wismut (1990),IG Bergbau-Energie (1990) Nachfolger IG Bergbau, Chemie, Energie Auflösung Oktober 1997 Zweck Gewerkschaft Mitglieder 331.000 (1990) Gebäude mit dem Sitz der IG Bergbau und Energie in Bochum (Fritz-Husemann-Haus) Die Industriegewerkschaft Bergbau und Energie (IGBE/IG BE) war eine Gewerkschaft des Deutschen Gewerkschaftsbunds (DGB) mit Sitz in Bochum. Sie wur...

Die Bioverfügbarkeit ist eine pharmakologische Messgröße für den Anteil eines Wirkstoffes, der unverändert im Blutkreislauf zur Verfügung steht.[1] Sie gibt an, wie schnell und in welchem Umfang der Stoff (meistens Arzneistoff) aufgenommen (resorbiert) wird und unverändert am Wirkort zur Verfügung steht.[2][3] Bioverfügbarkeit nach intravenöser Gabe (per Definition 100 %, rot, i.v.) und nach oraler Gabe (schwarz, grau, p.o.): Sind die Flächen unter den ...

 

Ten minste één Wikipediagebruiker vindt dat de tekst van Strijd tegen het water in dit artikel ingevoegd zou moeten worden of dat er een duidelijkere afbakening tussen deze artikelen dient te worden gemaakt. Als de tekst wordt ingevoegd, dient dat artikel een doorverwijzing te worden (bekijk voorstel). Voor algemene informatie over waterbeheer, zie Waterbeheer. Bevolkingsdichtheid in Nederland versus hoogte boven de zeespiegel Hemelwaterinfiltratiegebied Het waterbeheer in Nederland is het ...

 

Palais de la FemmeVue générale de l'entrée principale.PrésentationType ImmeubleArchitecte Auguste Labussière et Célestin LongereyConstruction 1910Propriétaire PrivéPatrimonialité Inscrit MH (2003)LocalisationPays  FranceRégion Île-de-FranceCommune ParisAdresse 94 rue de CharonneCoordonnées 48° 51′ 14″ N, 2° 22′ 58″ ELocalisation sur la carte de FranceLocalisation sur la carte de Parismodifier - modifier le code - modifier Wikidata ...

Halaman ini berisi artikel tentang pengangkutan kargo dengan cara apapun. Untuk lainnya, lihat Pengapalan (disambiguasi). Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Pengapalan – berita · surat kabar · buku · cendekiawan · JSTOR (Maret 2009) Pengapalan...

 

Pro Duta FCNama lengkapPro Duta Futbol ClubJulukanKuda PegasusKuda KeratonBerdiri1986Dibubarkan2017[1]StadionStadion Baharuddin Siregar,Kecamatan Lubuk Pakam, Kabupaten Deli Serdang, Provinsi Sumatera Utara(Kapasitas: 20.000)PemilikPT. Pro Duta FCKetua(jabatan lowong)SekretarisBelinda SiahaanManajerHandoyo SubositoLigaLiga 32013Juara (playoff) Pro Duta FC adalah sebuah klub sepak bola swasta profesional yang saat ini bermarkas di Stadion Baharuddin Siregar. Pada musim Liga Prima Indon...

 

Richard-von-Weizsäcker-Platzehemals: Kaiser-Wilhelm-Platz Platz in Berlin Die Gedenktafel „Orte des Schreckens, die wir niemals vergessen dürfen“ auf dem Richard-von-Weizsäcker-Platz Basisdaten Ort Berlin Ortsteil Schöneberg Angelegt 1893 Neugestaltet 2006–2007 Einmündende Straßen Hauptstraße,Kolonnenstraße,Crellestraße Bauwerke Springbrunnen Nutzung Nutzergruppen Fußgänger, Radfahrer, Straßenverkehr, ÖPNV Platz um 1895 mit Kaiser-Wilhelm-Denkmal und dem zweiten Rathaus Sch...

American singer This biography of a living person needs additional citations for verification. Please help by adding reliable sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately from the article and its talk page, especially if potentially libelous.Find sources: Tony Orlando – news · newspapers · books · scholar · JSTOR (April 2022) (Learn how and when to remove this template message) Tony ...

 

Spanish singer For the Mexican human rights activist, see Miriam Rodríguez Martínez. In this Spanish name, the first or paternal surname is Rodríguez and the second or maternal family name is Gallego. Miriam RodríguezRodríguez in 2018.Background informationBirth nameMiriam Rodríguez GallegoBorn (1996-09-30) 30 September 1996 (age 27)Pontedeume, A Coruña, SpainGenres Pop · pop rock Occupation(s)Singer, songwriter, actressInstrument(s)Voice, guitar, ukuleleYears active2013...

 

Radio station in Reading, Ohio WMKVReading, OhioBroadcast areaCincinnati, OhioFrequency89.3 MHzBrandingFlagship Station of the Maple Knoll Village network.ProgrammingFormatBig band/adult standards/nostalgiaOwnershipOwnerMaple Knoll CommunitiesHistoryFirst air date1995Call sign meaningMaple Knoll VillageTechnical informationClassAERP410 wattsHAAT72 meters (236 ft)Repeater(s)WLHS at 89.9 MHz in West Chester plus audiostream.LinksWebcastListen liveWebsitewww.wmkvfm.org WMKV (89.3 FM) is a r...

NASCAR crew chief This article needs to be updated. Please help update this article to reflect recent events or newly available information. (December 2022) Tony Eury Jr.Eury Jr. in 2012Personal informationBirth nameAnthony Eury Jr.Nationality AmericanBorn (1973-01-03) January 3, 1973 (age 50)Kannapolis, North Carolina, U.S.SportCountryUnited StatesSportNASCAR Cup SeriesTeam50. The Money Team Racing Anthony Eury Jr. (born January 3, 1973) is an American professional stock car racing...

 

2007 video gameRecord of Agarest WarEuropean cover art of the PlayStation 3 versionDeveloper(s)Idea FactoryRed EntertainmentCompile HeartLaughing Jackal (PC)HyperDevbox (Android, iOS)Publisher(s)JP: Compile HeartEU: GhostlightNA: Aksys GamesJP: HyperDevbox (Android, iOS)Director(s)Kenta SuganoComposer(s)Kenji KanekoPlatform(s)PlayStation 3, Xbox 360, Microsoft Windows, Android, iOS, Nintendo SwitchReleasePlayStation 3JP: September 27, 2007EU: October 30, 2009Xbox 360JP: November 27, 2008[...

 

2009 film by Desmond Elliot Guilty PleasuresFilm poster designDirected byDaniel AdeminokanDesmond ElliotScreenplay byUyai Ikpe EtimBola AduwoProduced byDesmond ElliotEmem IsongStarringRamsey NouahMajid MichelNse Ikpe EtimMercy JohnsonOmoni OboliDesmond ElliotCinematographyAustine NwaolieEdited byUche Alex MooreProductioncompanyRoyal Arts AcademyRelease date 29 November 2009 (2009-11-29) [1]CountryNigeriaLanguageEnglish Guilty Pleasures is a 2009 Nigerian drama film dire...

Historic house in West Virginia, United States United States historic placePurinton HouseU.S. National Register of Historic Places Purinton House, September 2012Show map of West VirginiaShow map of the United StatesLocationUniversity Ave., Morgantown, West VirginiaCoordinates39°38′5″N 79°57′20″W / 39.63472°N 79.95556°W / 39.63472; -79.95556Area0.3 acres (0.12 ha)Built1904ArchitectFulton, J. CharlesArchitectural styleClassical Revival, Colonial Rev...

 

British children's television series (1988–1992) This article is about the British children's TV show. For other uses, see Motormouth (disambiguation). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Motormouth – news · newspapers · books · scholar · JSTOR (July 2010) (Learn how and when to remove this tem...

 

Warrington rail crashDetailsDate29 June 1867 11:35LocationWalton Junction, near Warrington Bank Quay railway stationCoordinates53°21′41″N 2°37′31″W / 53.3615°N 2.6253°W / 53.3615; -2.6253CountryEnglandLineLondon and North Western RailwayCausePoints incorrectly setStatisticsTrains2Passengers300Deaths8Injured33List of UK rail accidents by year The Warrington rail crash occurred at Walton Junction just south of the town of Warrington in Lancashire on 29 June 1...

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada November 2022. Potret Kokorinov, karya Dmitry Levitsky. Alexander Filippovich Kokorinov (Rusia: Александр Филиппович Кокориновcode: ru is deprecated ) (10 Juli 1726 – 21 Maret 1772) adalah seorang arsitek dan pengajar Rusi...

 

1955 short story by Philip K. Dick For former military personnel, see Veteran. War Veteran was published in the March 1955 issue of If War Veteran is a science fiction short story by American writer Philip K. Dick.[1] It was first published in If magazine in March 1955. Plot summary The plot concerns an old man who claims to have travelled back in time from a future in which Earth has lost a devastating war to its own Martian and Venusian colonies. The man turns out to be a synthetic ...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!