Jump to content

Windows Template Library

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Uiweo (talk | contribs) at 14:51, 18 May 2007 (+ja). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The Windows Template Library (WTL) is an object-oriented Win32 encapsulation C++ library by Microsoft. The WTL supports an API for use by programmers. It was developed as a light-weight alternative to Microsoft Foundation Classes. WTL extends Microsoft's ATL, another lightweight API for using COM and for creating ActiveX controls. Though created by Microsoft, it is unsupported.

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 licensed under the Microsoft Permissive License. [1]

Most of the WTL API is a direct mirror of the standard Win32 calls, so the interface is familiar to most Windows programmers. Being an unsupported library, WTL has little formal documentation. Faced with this problem the "WTL Documentation" project [2] was started and now has a semi-complete documentation.

Overview

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 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.

WTL provides support for implementing various user interface elements, from frame and popup windows, to MDI, standard and common controls, common dialogs, property sheets and pages, 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.

See also