Windows Template Library: Difference between revisions

Content deleted Content added
Bender the Bot (talk | contribs)
m External links: HTTP to HTTPS for SourceForge
 
(89 intermediate revisions by 73 users not shown)
Line 1:
{{Short description|C++ template library for Win32 development}}
The '''Windows Template Library''' ('''WTL''') is an [[Object-oriented programming|object-oriented]] [[Win32]] encapsulation [[C++]] [[Library (computer science)|library]] by [[Microsoft]]. The WTL supports an [[Application programming interface|API]] for use by [[programmer]]s. It was developed as a light-weight alternative to [[Microsoft Foundation Classes]]. WTL extends Microsoft's [[Active Template Library|ATL]], another lightweight API for using [[Component Object Model|COM]] and for creating [[ActiveX]] controls. Though created by Microsoft, it is unsupported.
{{Infobox software
| name = Windows Template Library (WTL)
| developer = [[Microsoft]]
| latest release version = 10.0.10320
| latest release date = {{Start date and age|2020|11|16}}
| repo = {{URL|https://sourceforge.net/p/wtl/git/}}
| programming language = [[C++]]
| operating system = [[Microsoft Windows]]
| genre = [[Library (computing)|Library]]
| license = [[Common Public License]], [[Microsoft Public License]]
}}
The '''Windows Template Library''' ('''WTL''') is ana [[free software]], [[Object-oriented programming|object-oriented]] [[Win32]] encapsulation [[C++]] template [[Library (computer sciencecomputing)|library]] byfor [[MicrosoftWin32]] development. The WTL supportswas ancreated by [[Application programming interface|APIMicrosoft]] employee Nenad Stefanovic for internal use byand later released as an unsupported add-on to [[programmerMicrosoft Visual Studio|Visual Studio]]s. and the Win32 Framework SDK. It was developed primarily as a light-weight alternative to the [[Microsoft Foundation Classes]]. and WTLbuilds extendsupon Microsoft's [[Active Template Library|ATL]], another lightweight API forwidely used to usingcreate [[Component Object Model|COM]] and for creating [[ActiveX]] controls. Though created by Microsoft, it is unsupportedlibraries.
 
==Overview==
Microsoft made the [[source code]] of WTL freely available under an open source license. Releasing it under the [[Common Public License]], Microsoft posted the source on [[SourceForge]], an [[Internet]] repository for open-source code. As of version 7.5, the library was also [[dual license]]d under the [[Microsoft Permissive License]]. [http://www.microsoft.com/resources/sharedsource/licensingbasics/permissivelicense.mspx]
WTL provides support for implementing various user interface elements, from frame and popup windows, to [[Multiple document interface|MDI]], standard and common controls, common dialogs, property sheets and pages, [[Graphics Device Interface|GDI]] objects, and other common UI elements, such as scrollable windows, splitter windows, toolbars and command bars. WTL's main objective is to deliver small and efficient code, close in size and speed to "straight" [[Software development kit|SDK]] programs while providing a higher-level and more flexible object model to developers. Other classes such as a string wrapper that is syntax-compatible with MFC's <code>CString</code> and some templated collections are also included.
 
Most of the WTL API is a direct mirror of the standard Win32 calls, so the interface istends to be familiar to most Windows programmers. BeingAlthough anno unsupportedofficial librarydocumentation from Microsoft exists, the ''WTL hasDocumentation littleProject'' formalis documentation.attempting Facedto withcreate thisa problemcomprehensive thereference "WTLfor Documentation" projectthe library.<ref>[http://www.viksoe.dk/code/wtldoc.htm WTL documentation project]</ref> wasThe startedWTL andis nownot hassupported aby semi-complete[[Product documentationSupport Services|Microsoft Product Support Services]].
 
==OverviewLicensing==
While WTL is a template library and therefore code-based, the original license was similar to the one used for the [[Microsoft Foundation Class Library]] (MFC) source code, although it contained no usage or distribution restrictions. In 2004 Microsoft made the complete [[source code]] available under the [[Common Public License]] and released it through [[SourceForge]]. Since version 9.1, the library is licensed under the [[Microsoft Public License]].<ref>[https://sourceforge.net/projects/wtl/files/ Download pages for WTL version 7.5, 8.0, 9.0, 9.1 and 10]</ref>
Windows Template Library, or WTL, is a set of classes that extend ATL to support more complex user interfaces for either applications or various UI components, while maintaining the big advantage of [[Active Template Library|ATL]]—small and fast code. WTL classes were designed to be the best and the easiest way to implement rich [[Win32]] based UI for ATL based applications, servers, components, and controls.
 
==See also==
WTL provides support for implementing various user interface elements, from frame and popup windows, to [[Multiple document interface|MDI]], standard and common controls, common dialogs, property sheets and pages, [[Graphics Device Interface|GDI]] objects, UI updating, scrollable windows, splitter windows, command bars, etc. The WTL classes are mostly templated and use minimal instance data and inline functions. They were not designed as a framework, so they do not impose a particular application model, and can accommodate any. The classes do not use hooks or thread local storage, so they have no restrictions that those techniques impose. They also have no inter-dependencies and can be freely mixed with straight [[SDK]] code. In summary, WTL delivers very small and efficient code, very close in size and speed to [[SDK]] programs, while presenting a more logical, object oriented model to a programmer.
{{Portal|Free and open-source software}}
* [[Category:MicrosoftActive APIs|Template Library]]
* [[Microsoft Foundation Class Library]]
* [[Visual Component Library]]
* [[Object Windows Library]]
* [[Windows Runtime Library]]
 
==References==
{{Refimprove|date=September 2009}}
{{reflist}}
 
==External links==
* [http://{{sourceforge.net/projects/|wtl/ The SourceForge WTL project]}}
* [http://www.microsoft.com/downloads/details.aspx?FamilyID=48cb01d7-112e-46c2-bb6e-5bb2fe20e626&DisplayLang=en Microsoft's download page] for WTL 7.5
* [http://www.microsoft.com/downloads/details.aspx?familyid=E5BA5BA4-6E6B-462A-B24C-61115E846F0C&displaylang=en Microsoft's download page] for WTL 8.0
* [https://sourceforge.net/projects/wtl/files/WTL%208.1/WTL%208.1.11324/ WTL 8.1 (2011-11-21)]
* [http://www.viksoe.dk/code/wtldoc.htm WTL Documentation] - An Effort to Create Documentation for the WTL Programming Library.
* [http://www.gamedev.net/page/resources/_/technical/general-programming/using-the-windows-template-library-part-1-gett-r2042 "Using the Windows Template Library Part 1"] {{Webarchive|url=https://web.archive.org/web/20130514011937/http://www.gamedev.net/page/resources/_/technical/general-programming/using-the-windows-template-library-part-1-gett-r2042 |date=May 14, 2013 }}
* [http://www.gamedev.net/reference/programming/features/wtl1/ "Using the Windows Template Library"] article from GameDev.net, excellent introduction to library.
* [http://www.gamedev.net/page/resources/_/technical/general-programming/using-the-windows-template-library-part-2-r2161 "Using the Windows Template Library Part 2"]
* [http://www.codeproject.com/wtl/wtl4mfc1.asp "WTL for MFC Programmers"] &ndash; A series of tutorials aimed at MFC programmers who want to start using WTL.
* [http://wtl.wikispaces.com/ The WTL Wiki] - A wiki dedicated to the Windows Template Library (WTL)
 
{{Windows-stubMicrosoft FOSS}}
{{Widget toolkits}}
{{Use mdy dates|date=October 2018}}
 
[[Category:Free development toolkits and libraries]]
[[Category:Microsoft APIs|Template Library]]
[[Category:C++ libraries]]
[[Category:Free development toolkits andcomputer libraries]]
[[Category:Free software projects]]
[[Category:Microsoft application programming interfaces|Template Library]]
[[Category:Object-oriented programming]]
[[Category:Windows-only free software]]
 
[[Category:Software using the Common Public License]]
[[ru:WTL]]
[[Category:Software using the MS-PL license]]