Windows Template Library
Windows Template Library (WTL) はマイクロソフトによるWin32をラップ(カプセル化)するオブジェクト指向のC++ライブラリ。WTLはプログラマが利用するAPIの1つである。MFCの軽量な代替として開発された。WTLはマイクロソフトの ATL(COMやActiveXのためのもう1つの軽量API)を拡張する。マイクロソフトによって開発されたがサポートはされていない。
マイクロソフトはオープンソースライセンスに基づいてWTLのソースコードを自由に利用できるようにした。マイクロソフトはSourceForgeというインターネット上のオープンソースコードのためのリポジトリにソースコードを投稿し、Common Public Licenseに基づいてリリースした。このライブラリはバージョン7.5の時点で、Microsoft Permissive Licenseとの二重ライセンスでもあった[1]。
WTLの多くのAPIは標準のWin32と直接的に対応しており、多くのWindowsプログラマーにとってなじみの深いインターフェイスである。未サポートのライブラリであるため正式なドキュメントはあまりない。この問題に立ち向かうため"WTL Documentation"プロジェクト[2]がスタートしたが現在でもまだドキュメントは完全ではない。
概要
Windows Template Library(WTL)は、小さくて高速なコードという大きな利点のあるATLに対して、アプリケーションや様々なUIコンポーネントの両方のために、より複雑なユーザーインターフェイスをサポートするようにATLを拡張するクラスのセットである。WTLのクラスは、ATLベースのアプリケーション、サーバー、コンポーネント、コントロールに対して、リッチなWin32ベースのUIを実装するための最適かつ簡単な方法であるように設計された。
WTLは、フレームやポップアップウィンドウを初めとして、MDI、標準・コモンコントロール、コモンダイアログ、プロパティシートやページ、GDIオブジェクト、UIのアップデート、スクロールバーウィンドウ、スプリッターウィンドウ、コマンドバーなど、様々なユーザーインターフェイスの要素をサポートする。WTLのクラスは主にテンプレートであり、最小限のインスタンスデータとインライン関数を使う。これらはフレームワークとしてデザインされたものではないため、特定のアプリケーションモデルを強制せず、どのようなスタイルでも受け入れられる。クラスはフックやスレッドローカルのメモリ領域を利用しないのでこれらのテクニックの押しつけに制約されない。これらには従属関係が無く、ストレートなSDKのコードと自由に混ぜることができる。要するに、WTLは、より論理的でオブジェクト指向的なモデルをプログラマに提供しつつも、SDKによるプログラムと比べてもサイズとスピードでほとんど遜色のない非常に小さくて効率的なコードを出力する。
関連項目
外部リンク
- SourceForgeのWTLプロジェクト
- WTL 7.5 マイクロソフトのダウンロードページ
- WTL Documentation - WTLプログラミングライブラリのドキュメント作成運動。
- "Using the Windows Template Library Part 1"
- "Using the Windows Template Library Part 2"
- "WTL for MFC Programmers" – WTLを使い始めたいMFCプログラマーのための入門集。
- The WTL Wiki - Windows Template Library (WTL)のためのwiki。