diff foosdk/wtl/ReadMe.html @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/foosdk/wtl/ReadMe.html	Mon Jan 05 02:15:46 2026 -0500
@@ -0,0 +1,2581 @@
+<html>
+
+<head>
+	<meta http-equiv="Content-Language" content="en-us">
+	<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+	<title>Windows Template Library</title>
+	<style type="text/css">
+		html, body {
+			width: 800px;
+			font-family: Arial;
+			font-size: 10pt;
+		}
+		.wtl10 {
+			font-family: Arial;
+			font-size: 12pt;
+		}
+		.table1 {
+			font-family: Arial;
+			font-size: 10pt;
+		}
+		.code1 {
+			font-family: Courier;
+			font-size: 10pt;
+			margin-left:4ch
+		}
+	</style>
+</head>
+
+<body>
+
+<table class="table1" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
+	<tr>
+		<td>
+			<span class="wtl10"><b>Windows Template Library - WTL 10</b></span>
+			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+			version 10.0.10077 (2020-03-17)
+		</td>
+	</tr>
+	<tr>
+		<td><hr></td>
+	</tr>
+	<tr>
+		<td>Copyright &#169; 2020 Microsoft Corporation, WTL Team. All rights reserved.</td>
+	</tr>
+	<tr>
+		<td><br></td>
+	</tr>
+	<tr>
+		<td>
+			This file is a part of the Windows Template Library.<br>
+			The use and distribution terms for this software are covered by the<br>
+			Microsoft Public License (<a target="_blank" href="http://opensource.org/licenses/MS-PL">http://opensource.org/licenses/MS-PL</a>)<br>
+			which can be found in the file MS-PL.txt at the root folder.
+		</td>
+	</tr>
+	<tr>
+		<td><hr></td>
+	</tr>
+</table>
+<p style=margin:0px><br></p>
+
+<p>Welcome to the Windows Template Library, version 10. This document contains the following topics:</p>
+
+<ul>
+	<li><a href="#Introduction">Introduction</a></li>
+	<li><a href="#Features and Installation">Features and Installation</a></li>
+	<li><a href="#Packing List">Packing List</a></li>
+	<li><a href="#Class Overview">Class Overview</a></li>
+	<li><a href="#ATL/WTL AppWizard">ATL/WTL AppWizard</a></li>
+	<li><a href="#WTL in MFC">How to use WTL in an MFC project</a></li>
+	<li><a href="#WTL Releases">WTL Releases</a></li>
+</ul>
+<p style=margin:0px><br></p>
+
+<h3 style=margin:0px>Introduction</h3>
+<p>
+	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.
+</p>
+
+<p>
+	WTL provides support for implementing many 
+	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 force 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.
+</p>
+<p style=margin:0px><br></p>
+
+<h3 style=margin:0px><a name="Features and Installation"></a>Features and Installation</h3>
+
+<p>
+	This is the ninth public release of WTL. This version is released 
+	under the Microsoft Public License, enabling developers from the WTL community to 
+	contribute to the library.
+</p>
+<p>
+	WTL classes can be used with all versions of VC++ from 2005 to the newest, 2019. 
+	AppWizard for Visual Studio is included.
+</p>
+<p>
+	The WTL classes are provided in header files located in the include directory. 
+	The only header files that must be included is atlapp.h, while others can be used when needed. 
+	The name of the file doesn't mean that you have to create an application, just that 
+	atlapp.h contains base definitions required for WTL projects.
+</p>
+<p>
+	To install WTL, just copy the whole directory structure, or unpack the archive file, 
+	to the location of your choice. Please be sure to <b>add the WTL\include directory</b> 
+	to the list of include directories in VC++, so that the compiler 
+	can find them when you include them in your projects.
+</p>
+<p>
+	Setup programs for the AppWizard are provided. After executing the setup script, 
+	ATL/WTL AppWizard will appear in the list of AppWizards when you select File.New.Project 
+	in VC++ IDE. The file AppWiz\setup.js is the setup script for all supported versions of Visual Studio.
+</p>
+<p>
+	To manually install AppWizard for VC++ 2005, copy all WTLAppWiz.* files from AppWiz\Files to VC++ 
+	projects directory, %VCDIR%\VC\vcprojects, where %VCDIR% is the directory 
+	where VC++ 2005 is installed. After that, open WTL10AppWiz.vsz and modify the 
+	line that contains ABSOLUTE_PATH to contain %WTLDIR%\AppWiz\Files, where 
+	%WTLDIR% is the directory where WTL files are.
+</p>
+
+<p style=margin:0px>Compiler/IDE/ATL support:</p>
+<ul style=margin:0px>
+	<li>Visual C++ 2005&nbsp;&nbsp;&nbsp; (ATL 8.0)</li>
+	<li>Visual C++ 2008&nbsp;&nbsp;&nbsp; (ATL 9.0)</li>
+	<li>Visual C++ 2010&nbsp;&nbsp;&nbsp; (ATL 10.0)</li>
+	<li>Visual C++ 2012&nbsp;&nbsp;&nbsp; (ATL 11.0)</li>
+	<li>Visual C++ 2013&nbsp;&nbsp;&nbsp; (ATL 12.0)</li>
+	<li>Visual C++ 2015&nbsp;&nbsp;&nbsp; (ATL 14.0)</li>
+	<li>Visual C++ 2017&nbsp;&nbsp;&nbsp; (ATL 14.0)</li>
+	<li>Visual C++ 2019&nbsp;&nbsp;&nbsp; (ATL 14.0)</li>
+</ul>
+<p style=margin:0px><br></p>
+
+<p style=margin:0px>Windows SDK support (optional):</p>
+<ul style=margin:0px>
+	<li>Windows SDK 6.0 or newer</li>
+</ul>
+<p style=margin:0px><br></p>
+<p style=margin:0px><br></p>
+
+<h3 style=margin:0px><a name="Packing List"></a>Packing List</h3>
+<p style=margin:0px><br></p>
+
+<table class="table1" border="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="497">
+  <tr>
+    <td width="136">File Name:</td>
+    <td width="358">Description:</td>
+  </tr>
+  <tr>
+    <td width="494" colspan="2"><hr></td>
+  </tr>
+  <tr>
+    <td width="136">readme.html</td>
+    <td width="358">this file</td>
+  </tr>
+  <tr>
+    <td width="136">MS-PL.txt</td>
+    <td width="358">Microsoft Public License</td>
+  </tr>
+  <tr>
+    <td width="494" colspan="2">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="494" colspan="2">include\</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlapp.h</td>
+    <td width="358">message loop, interfaces, 
+    general app stuff</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlcrack.h</td>
+    <td width="358">message cracker macros</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlctrls.h</td>
+    <td width="358">standard and common control 
+    classes</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlctrlw.h</td>
+    <td width="358">command bar class</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlctrlx.h</td>
+    <td width="358">bitmap button, check list view, 
+    and other controls</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlddx.h</td>
+    <td width="358">data exchange for dialogs and 
+    windows</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atldlgs.h</td>
+    <td width="358">common dialog classes, property 
+    sheet and page classes</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atldwm.h</td>
+    <td width="358">DWM support classes</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlfind.h</td>
+    <td width="358">Find/Replace support for Edit 
+	and RichEdit</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlframe.h</td>
+    <td width="358">frame window classes, MDI, 
+    update UI classes</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlgdi.h</td>
+    <td width="358">DC classes, GDI object classes</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlmisc.h</td>
+    <td width="358">WTL ports of CPoint, CRect, 
+    CSize, CString, etc.</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlprint.h</td>
+    <td width="358">printing and print preview</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlres.h</td>
+    <td width="358">standard resource IDs</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlribbon.h</td>
+    <td width="358">RibbonUI support</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlscrl.h</td>
+    <td width="358">scrollable windows</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlsplit.h</td>
+    <td width="358">splitter windows</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atltheme.h</td>
+    <td width="358">Windows XP theme classes</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atluser.h</td>
+    <td width="358">menu class, USER object classes</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; atlwinx.h</td>
+    <td width="358">extensions of ATL windowing 
+    support</td>
+  </tr>
+  <tr>
+    <td width="494" colspan="2">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="494" colspan="2">Samples\</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; Aero\...</td>
+    <td width="358">Vista Aero glass showcase</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; Alpha\...</td>
+    <td width="358">Windows XP 32-bit (alpha) 
+    toolbar images</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; BmpView\...</td>
+    <td width="358">bitmap file view sample</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; GuidGen\...</td>
+    <td width="358">WTL version of the GuidGen 
+    sample</td>
+  </tr>
+	<tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; MDIDocVw\...</td>
+    <td width="358">WTL version of the MDI sample</td>
+  </tr>
+	<tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; MemDlg\...</td>
+    <td width="358">In-memory dialog sample</td>
+  </tr>
+	<tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; MTPad\...</td>
+    <td width="358">multithreaded notepad sample</td>
+  </tr>
+	<tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; MTPad7\...</td>
+    <td width="358">MTPad with RibbonUI</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; TabBrowser\...</td>
+    <td width="358">Web browser using TabView</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; Wizard97Test\...</td>
+    <td width="358">Wizard97 showcase 
+    sample</td>
+  </tr>
+  <tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; WTLExplorer\...</td>
+    <td width="358">Explorer-like application 
+    sample</td>
+  </tr>
+  <tr>
+    <td width="494" colspan="2">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="494" colspan="2">AppWiz\</td>
+  </tr>
+	<tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; setup.js</td>
+    <td width="358">AppWizard setup program for all versions of 
+    Visual Studio</td>
+  </tr>
+	<tr>
+    <td width="136">&nbsp;&nbsp;&nbsp; Files\...</td>
+    <td width="358">WTL AppWizard files</td>
+  </tr>
+  </table>
+<p style=margin:0px><br></p>
+<p style=margin:0px><br></p>
+
+<h3 style=margin:0px><a name="Class Overview"></a>Class Overview</h3>
+<p style=margin:0px><br></p>
+
+<table class="table1" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
+  <tr>
+    <td>usage:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
+    <td><b>mi base</b></td>
+    <td>&nbsp;&nbsp; -</td>
+    <td>&nbsp;&nbsp; a base class (multiple inheritance)</td>
+  </tr>
+  <tr>
+    <td>&nbsp;</td>
+    <td><b>client</b></td>
+    <td>&nbsp;&nbsp; -</td>
+    <td>&nbsp;&nbsp; wrapper class for a handle</td>
+  </tr>
+  <tr>
+    <td>&nbsp;</td>
+    <td><b>as-is</b></td>
+    <td>&nbsp;&nbsp; -</td>
+    <td>&nbsp;&nbsp; to be used directly</td>
+  </tr>
+  <tr>
+    <td>&nbsp;</td>
+    <td><b>impl</b></td>
+    <td>&nbsp;&nbsp; -</td>
+    <td>&nbsp;&nbsp; implements a window (has 
+    WindowProc) or other support</td>
+  </tr>
+  <tr>
+    <td>&nbsp;</td>
+    <td><b>helper</b></td>
+    <td>&nbsp;&nbsp; -</td>
+    <td>&nbsp;&nbsp; a helper class</td>
+  </tr>
+  <tr>
+    <td>&nbsp;</td>
+    <td><b>base</b></td>
+    <td>&nbsp;&nbsp; -</td>
+    <td>&nbsp;&nbsp; implementation base class</td>
+  </tr>
+</table>
+<p style=margin:0px><br></p>
+
+<table class="table1" border="1" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="600">
+  <tr>
+    <td width="220"><b>class name:</b></td>
+    <td width="114"><b>usage:</b></td>
+    <td width="253"><b>description:</b></td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>App/module support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CAppModule</b></td>
+    <td width="115">as-is</td>
+    <td width="255">app support, CComModule derived</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CServerAppModule</b></td>
+    <td width="115">as-is</td>
+    <td width="255">module for COM servers</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CMessageLoop</b></td>
+    <td width="115">as-is</td>
+    <td width="255">message loop</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CMessageFilter</b></td>
+    <td width="115">mi base</td>
+    <td width="255">message filter interface</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CIdleHandler</b></td>
+    <td width="115">mi base</td>
+    <td width="255">idle time handler interface</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Frame windows</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CFrameWindowImplBase</b></td>
+    <td width="115">base</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CFrameWindowImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">frame window support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>COwnerDraw</b></td>
+    <td width="115">impl mi base</td>
+    <td width="255">owner-draw msg map and handlers</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CDialogResize
+    </b></td>
+    <td width="115">impl mi base</td>
+    <td width="255">support for resizing dialogs</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CDoubleBufferImpl
+    </b></td>
+    <td width="115">impl mi</td>
+    <td width="255">double-buffer painting support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CDoubleBufferWindowImpl
+    </b></td>
+    <td width="115">impl</td>
+    <td width="255">double-buffer painting window</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>MDI windows</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CMDIWindow</b></td>
+    <td width="115">client</td>
+    <td width="255">MDI methods</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CMDIFrameWindowImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">MDI frame window</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CMDIChildWindowImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">MDI child window</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Update UI</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CUpdateUIBase</b></td>
+    <td width="115">base</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CUpdateUI</b></td>
+    <td width="115">mi base class</td>
+    <td width="255">provides support for UI update</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CDynamicUpdateUI</b></td>
+    <td width="115">mi base class</td>
+    <td width="255">provides dynamic support for UI update</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Standard controls</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CStatic</b></td>
+    <td width="115">client</td>
+    <td width="255">static ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CButton</b></td>
+    <td width="115">client</td>
+    <td width="255">button ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CListBox</b></td>
+    <td width="115">client</td>
+    <td width="255">list box ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CComboBox</b></td>
+    <td width="115">client</td>
+    <td width="255">combo box ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CEdit</b></td>
+    <td width="115">client</td>
+    <td width="255">edit ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CEditCommands</b></td>
+    <td width="115">mi</td>
+    <td width="255">standard edit command support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CScrollBar</b></td>
+    <td width="115">client</td>
+    <td width="255">scroll bar ctrl</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Common controls</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CImageList</b></td>
+    <td width="115">client</td>
+    <td width="255">image list</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CListViewCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">list view ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CTreeViewCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">tree view ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CTreeItem</b></td>
+    <td width="115">helper</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CTreeViewCtrlEx</b></td>
+    <td width="115">client</td>
+    <td width="255">uses CTreeItem</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CHeaderCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">header bar ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CToolBarCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">toolbar ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CStatusBarCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">status bar ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CTabCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">tab ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CToolTipCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">tool tip ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CToolInfo</b></td>
+    <td width="115">helper</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CTrackBarCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">trackbar ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CUpDownCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">up-down ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CProgressBarCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">progress bar ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CHotKeyCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">hot key ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CAnimateCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">animation ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CRichEditCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">rich edit ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CRichEditCommands</b></td>
+    <td width="115">mi</td>
+    <td width="255">std rich edit commands support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CDragListBox</b></td>
+    <td width="115">client</td>
+    <td width="255">drag list box</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CDragListNotifyImpl</b></td>
+    <td width="115">impl mi class</td>
+    <td width="255">support for notifications</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CReBarCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">rebar ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CComboBoxEx</b></td>
+    <td width="115">client</td>
+    <td width="255">extended combo box</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CDateTimePickerCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">date-time ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CFlatScrollBarImpl</b></td>
+    <td width="115">mi impl</td>
+    <td width="255">flat scroll bars support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CFlatScrollBar</b></td>
+    <td width="115">as-is</td>
+    <td width="255">flat scroll bars support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CIPAddressCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">IP address ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CMonthCalendarCtrl</b></td>
+    <td width="115">client</td>
+    <td width="255">month calendar ctrl</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CCustomDraw</b></td>
+    <td width="115">impl mi class</td>
+    <td width="255">custom draw handling support</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Property sheet &amp; page</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPropertySheetWindow</b></td>
+    <td width="115">client</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPropertySheetImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">property sheet </td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPropertySheet</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPropertyPageWindow</b></td>
+    <td width="115">client</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPropertyPageImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">property page</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPropertyPage</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CAxPropertyPageImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">property page with ActiveX</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CAxPropertyPage</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CWizard97SheetWindow</b></td>
+    <td width="115">client</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CWizard97SheetImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">Wizard97 property sheet</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CWizard97Sheet</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CWizard97PageWindow</b></td>
+    <td width="115">client</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CWizard97PageImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">Wizard97 property page</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CWizard97ExteriorPageImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">Wizard97 exterior page</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CWizard97InteriorPageImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">Wizard97 interior page</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CAeroWizardFrameWindow</b></td>
+    <td width="115">client</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CAeroWizardFrameImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">Aero Wizard frame</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CAeroWizardFrame</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CAeroWizardPageWindow</b></td>
+    <td width="115">client</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CAeroWizardPageImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">Aero Wizard page</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CAeroWizardPage</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CAeroWizardAxPageImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">Aero Wizard page with ActiveX</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CAeroWizardAxPage</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Common dialogs</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CFileDialogImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">GetOpenFileName/GetSaveFileName</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CFileDialog</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CSimpleFileDialog</b></td>
+    <td width="115">as-is</td>
+    <td width="255">no customization</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CMultiFileDialogImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">Multi-select GetOpenFileName</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CMultiFileDialog</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CShellFileDialogImpl</b></td>
+    <td width="115">base</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CShellFileOpenDialogImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">Shell File Open dialog</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CShellFileOpenDialog</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CShellFileSaveDialogImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">Shell File Save dialog</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CShellFileSaveDialog</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CFolderDialogImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">directory picker</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CFolderDialog</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CFontDialogImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">ChooseFont common dialog</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CFontDialog</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CRichEditFontDialogImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">ChooseFont for rich edit</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CRichEditFontDialog</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CColorDialogImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">ChooseColor common dialog</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CColorDialog</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPrintDialogImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">PrintDlg common dialog</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPrintDialog</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPrintDialogExImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">new Win2000 print dialog</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPrintDialogEx</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPageSetupDialogImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">PageSetupDlg common dialog</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPageSetupDialog</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CFindReplaceDialogImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">FindText/ReplaceText</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CFindReplaceDialog</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>User support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CMenu</b></td>
+    <td width="115">client</td>
+    <td width="255">menu support</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CMenuItemInfo</b></td>
+    <td width="115">as-is</td>
+    <td width="255">MENUITEMINFO wrapper</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CAccelerator</b></td>
+    <td width="115">client</td>
+    <td width="255">accelerator table</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CIcon</b></td>
+    <td width="115">client</td>
+    <td width="255">icon object</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CCursor</b></td>
+    <td width="115">client</td>
+    <td width="255">cursor object</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CResource</b></td>
+    <td width="115">client</td>
+    <td width="255">generic resource object</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>GDI support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CDC</b></td>
+    <td width="115">client</td>
+    <td width="255">DC support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPaintDC</b></td>
+    <td width="115">client</td>
+    <td width="255">for handling WM_PAINT</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CClientDC</b></td>
+    <td width="115">client</td>
+    <td width="255">for GetDC</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CWindowDC</b></td>
+    <td width="115">client</td>
+    <td width="255">for GetWindowDC</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CMemoryDC</b></td>
+    <td width="115">client</td>
+    <td width="255">in-memory DC</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPen</b></td>
+    <td width="115">client</td>
+    <td width="255">GDI pen object</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CBrush</b></td>
+    <td width="115">client</td>
+    <td width="255">GDI brush object</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CLogFont</b></td>
+    <td width="115">as-is</td>
+    <td width="255">LOGFONT wrapper</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CFont</b></td>
+    <td width="115">client</td>
+    <td width="255">GDI font object</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CBitmap</b></td>
+    <td width="115">client</td>
+    <td width="255">GDI bitmap object</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPalette</b></td>
+    <td width="115">client</td>
+    <td width="255">GDI palette object</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CRgn</b></td>
+    <td width="115">client</td>
+    <td width="255">GDI region object</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Enhanced controls</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CCommandBarCtrlImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">command bar</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CCommandBarCtrl</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CBitmapButtonImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">bitmap button</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CBitmapButton</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CCheckListViewCtrlImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">check list box</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CCheckListViewCtrl</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CHyperLinkImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">hyper link control</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CHyperLink</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CWaitCursor</b></td>
+    <td width="115">as-is</td>
+    <td width="255">wait cursor</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CCustomWaitCursor</b></td>
+    <td width="115">as-is</td>
+    <td width="255">custom and animated wait cursor</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CMultiPaneStatusBarCtrlImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">status bar with multiple panes</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CMultiPaneStatusBarCtrl</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPaneContainerImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">pane window container</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPaneContainer</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CSortListViewImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">sorting list view control</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CSortListViewCtrlImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CSortListViewCtrl</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CTabViewImpl;</b></td>
+    <td width="115">impl</td>
+    <td width="255">tab view window</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CTabView</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Scrolling window support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CScrollImpl</b></td>
+    <td width="115">impl mi</td>
+    <td width="255">scrolling support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CScrollWindowImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">scrollable window</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CMapScrollImpl</b></td>
+    <td width="115">impl mi</td>
+    <td width="255">scrolling support with map modes</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CMapScrollWindowImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">scrollable window with map modes</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CZoomScrollImpl</b></td>
+    <td width="115">impl mi</td>
+    <td width="255">zooming support</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CZoomScrollWindowImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">zooming window</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CScrollContainerImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">scroll container window</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CScrollContainer</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Splitter window support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CSplitterImpl</b></td>
+    <td width="115">impl mi</td>
+    <td width="255">splitter support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CSplitterWindowImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">splitter window</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CSplitterWindow</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Theming support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CTheme</b></td>
+    <td width="115">client</td>
+    <td width="255">Windows XP theme</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CThemeImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">theming support for a window</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Buffered paint and animation support</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CBufferedPaint</b></td>
+    <td width="115">as-is</td>
+    <td width="255">buffered paint</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CBufferedPaintImpl</b></td>
+    <td width="115">impl mi</td>
+    <td width="255">buffered paint support</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CBufferedPaintWindowImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">window with buffered paint</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CBufferedAnimation</b></td>
+    <td width="115">as-is</td>
+    <td width="255">buffered animation</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CBufferedAnimationImpl</b></td>
+    <td width="115">impl mi</td>
+    <td width="255">buffered animation support</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CBufferedAnimationWindowImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">window with buffered animation</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Edit and RichEdit Find/Replace support</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CEditFindReplaceImplBase</b></td>
+    <td width="115">base</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CEditFindReplaceImpl</b></td>
+    <td width="115">mi</td>
+    <td width="255">Edit Find/Replace support</td>
+  </tr>
+	<tr>
+    <td width="221"><b>CRichEditFindReplaceImpl</b></td>
+    <td width="115">mi</td>
+    <td width="255">RichEdit Find/Replace support</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Printing support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPrinterInfo</b></td>
+    <td width="115">as-is</td>
+    <td width="255">print info support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPrinter</b></td>
+    <td width="115">client</td>
+    <td width="255">printer handle wrapper</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CDevMode</b></td>
+    <td width="115">client</td>
+    <td width="255">DEVMODE wrapper</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPrinterDC</b></td>
+    <td width="115">client</td>
+    <td width="255">printing DC support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPrintJobInfo</b></td>
+    <td width="115">client</td>
+    <td width="255">print job info</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPrintJob</b></td>
+    <td width="115">client</td>
+    <td width="255">print job support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPrintPreview</b></td>
+    <td width="115">mi</td>
+    <td width="255">print preview support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPrintPreviewWindowImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">print preview window</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CPrintPreviewWindow</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CZoomPrintPreviewWindowImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">zooming print preview window</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CZoomPrintPreviewWindow</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Miscellaneous</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CWinDataExchange</b></td>
+    <td width="115">mi</td>
+    <td width="255">data exchange for controls</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CRecentDocumentList</b></td>
+    <td width="115">mi or as-is</td>
+    <td width="255">support for MRU list</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CFindFile</b></td>
+    <td width="115">as-is</td>
+    <td width="255">file search support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CRegProperty</b></td>
+    <td width="115">as-is</td>
+    <td width="255">registry properties support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CRegPropertyImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">registry properties via map</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>In-memory dialog</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CDialogBaseUnits</b></td>
+    <td width="115">helper</td>
+    <td width="255">dialog units helper</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CMemDlgTemplate</b></td>
+    <td width="115">as-is</td>
+    <td width="255">In-memory dialog template</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CIndirectDialogImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">In-memory dialog class</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Task dialog</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CTaskDialogImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">Task Dialog in Vista</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CTaskDialog</b></td>
+    <td width="115">as-is</td>
+    <td width="255">&nbsp;</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>DWM classes</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CDwm</b></td>
+    <td width="115">client</td>
+    <td width="255">DWM handle warapper</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CDwmImpl</b></td>
+    <td width="115">impl base</td>
+    <td width="255">DWM support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CDwmWindow</b></td>
+    <td width="115">impl</td>
+    <td width="255">DWM window support</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CDwmThumbnail</b></td>
+    <td width="115">client</td>
+    <td width="255">DWM thumbnail wrapper</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CAeroControlImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">support for Aero controls</td>
+  </tr>
+  <tr>
+    <td colspan="3" width="593"><br>Ribbon classes</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CRibbonUpdateUI</b></td>
+    <td width="115">mi base</td>
+    <td width="255">automatic mapping of ribbon UI elements</td>
+  </tr>
+  <tr>
+    <td width="221"><b>RibbonUI::CtrlImpl</b></td>
+    <td width="115">base impl</td>
+    <td width="255">base class for all ribbon controls</td>
+  </tr>
+  <tr>
+    <td width="221"><b>RibbonUI::CommandCtrlImpl</b></td>
+    <td width="115">base impl</td>
+    <td width="255">base class for ribbon controls</td>
+  </tr>
+  <tr>
+    <td width="221"><b>RibbonUI::CollectionImplBase</b></td>
+    <td width="115">base</td>
+    <td width="255">base class for all RibbonUI collections</td>
+  </tr>
+  <tr>
+    <td width="221"><b>RibbonUI::CollectionImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">RibbonUI collections</td>
+  </tr>
+  <tr>
+    <td width="221"><b>RibbonUI::CollectionCtrlImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">specializable class for ribbon collection controls</td>
+  </tr>
+  <tr>
+    <td width="221"><b>RibbonUI::ToolbarGalleryCtrlImpl</b></td>
+    <td width="115">base impl</td>
+    <td width="255">base class for ribbon toolbar gallery controls</td>
+  </tr>
+  <tr>
+    <td width="221"><b>RibbonUI::CRibbonImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">Ribbon implementation class</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CRibbonFrameWindowImplBase</b></td>
+    <td width="115">base</td>
+    <td width="255">base frame class for Ribbon</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CRibbonFrameWindowImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">Ribbon frame window class</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CRibbonMDIFrameWindowImpl</b></td>
+    <td width="115">impl</td>
+    <td width="255">Ribbon MDI frame window class</td>
+  </tr>
+  <tr>
+    <td width="221"><b>CRibbonPersist</b></td>
+    <td width="115">as-is</td>
+    <td width="255">Ribbon persistance support</td>
+  </tr>
+</table>
+<p style=margin:0px><br></p>
+<p style=margin:0px><br></p>
+
+<h3 style=margin:0px><a name="ATL/WTL AppWizard"></a>ATL/WTL AppWizard</h3>
+
+<p>ATL/WTL AppWizard generates starting code for a WTL application. It has options to create code for different application types and features.</p>
+<p style=margin:0px>You can choose the following options:</p>
+<ul style='margin-top:0px;margin-bottom:0px'>
+	<li>Application type (SDI, multi thread SDI, MDI, TabView, Explorer, dialog based)</li>
+	<li>Support for hosting ActiveX controls</li>
+	<li>COM server support</li>
+	<li>Class implementation in .CPP files</li>
+	<li>Common Control manifest</li>
+	<li>Unicode character set</li>
+	<li>Toolbar, rebar, command bar, status bar</li>
+	<li>View window, and it's type (generic, dialog form, or a list box, edit, list view, tree view, rich edit, HTML page, scroll window)</li>
+	<li>For dialog based apps or a form based view window - support for hosting ActiveX controls in the dialog</li>
+</ul>
+<p style=margin:0px><br></p>
+
+<p style=margin:0px>ATL/WTL AppWizard supports VC++ 2005, 2008, 2010, 2012, 2013, 2015, 2017, and 2019.</p>
+<p style=margin:0px><br></p>
+<p style=margin:0px><br></p>
+
+<h3 style=margin:0px><a name="WTL in MFC"></a>How to use WTL in an MFC project</h3>
+
+<p>If you want to use WTL in an MFC project, you need to put these 2 lines before including atlapp.h:</p>
+<p class="code1">
+	namespace ATL { using ::CString; };<br>
+	#define _WTL_NO_AUTOMATIC_NAMESPACE
+</p>
+<p>The first line tells WTL to use CString from global namespace, because CString is defined that way in MFC. 
+The second line prevents name collisions between WTL and MFC. Use the WTL namespace prefix explicitly.</p>
+
+<p style=margin:0px><br></p>
+<p style=margin:0px><br></p>
+
+<p><hr></p>
+
+<h3 style=margin:0px><a name="WTL Releases"></a>WTL Releases</h3>
+<p style=margin:0px><br></p>
+
+<h4>History</h4>
+<table class="table1" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
+	<tr>
+		<td width="20"> </td>
+		<td width="100">WTL 10</td>
+		<td>?</td>
+	</tr>
+	<tr>
+		<td width="20"> </td>
+		<td width="100">WTL 9.1</td>
+		<td>2015</td>
+	</tr>
+	<tr>
+		<td width="20"> </td>
+		<td width="100">WTL 9.0</td>
+		<td>2014</td>
+	</tr>
+	<tr>
+		<td width="20"> </td>
+		<td width="100">WTL 8.0</td>
+		<td>2007</td>
+	</tr>
+	<tr>
+		<td width="20"> </td>
+		<td width="100">WTL 7.5</td>
+		<td>2005</td>
+	</tr>
+	<tr>
+		<td width="20"> </td>
+		<td width="100">WTL 7.1</td>
+		<td>2003</td>
+	</tr>
+	<tr>
+		<td width="20"> </td>
+		<td width="100">WTL 7.0</td>
+		<td>2002</td>
+	</tr>
+	<tr>
+		<td width="20"> </td>
+		<td width="100">WTL 3.1</td>
+		<td>2000</td>
+	</tr>
+	<tr>
+		<td width="20"> </td>
+		<td width="100">WTL 3.0</td>
+		<td>1999</td>
+	</tr>
+</table>
+<p style=margin:0px><br></p>
+
+<h4>Changes Between WTL 10 and 9.1</h4>
+<p style=margin:0px>TODO</p>
+<p style=margin:0px><br></p>
+
+<h4>Changes Between WTL 9.1 and 9.0</h4>
+<p style=margin:0px>New and improved:</p>
+<blockquote style='margin-top:0px;margin-bottom:0px'>
+	<p style=margin:0px>
+		Full compatibility with VS2015<br>
+		NuGet support and package<br>
+		Microsoft Public License (MS-PL)<br>
+		New sample: MemDlg - demonstrates use of in-memory dialogs
+	</p>
+</blockquote>
+<p style=margin:0px><br></p>
+
+<p style=margin:0px>Fixes and enhancements:</p>
+<blockquote style='margin-top:0px;margin-bottom:0px'>
+	<p style=margin:0px>
+		Fixes for code analysis warnings<br>
+		Fixes for strict const-qualification conformance (/Zc:strictStrings)<br>
+		CEditFindReplaceImpl::UseShadowBuffer(): Use AtlGetCommCtrlVersion() instead of GetProcAddress()<br>
+		Misc improvements: missing initialization, undefined messages, better #ifdefs<br>
+		CFrameWndClassInfo: Use GetSystemMetrics() for icon sizes<br>
+		BEGIN_MSG_MAP_EX and BEGIN_DDX_MAP: Fix for C4555: expression has no effect<br>
+		CResource::LoadEx(): Fix for the wrong order for parameters to ::FindResourceEx()<br>
+		CPaneContainerImpl:
+	</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>New extended styles: PANECNT_DIVIDER and PANECNT_GRADIENT</li>
+		<li>Fixed background drawing for close button</li>
+	</ul>
+	<p style=margin:0px>
+		CImageListManaged: Fix for assert when using attach or operator =<br>
+		WTLExplorer sample cleanup<br>
+		GenericWndClass::Register(): Fix for Windows CE<br>
+		App Wizard: Improved code for generating project configurations<br>
+		CSplitterImpl::OnCaptureChanged(): Fixed so it moves splitter bar only if move was in progress<br>
+		CDynamicUpdateUI::UIRemoveUpdateElement() leaks memory if UPDUI_TEXT is set<br>
+		CToolInfo and CToolTipCtrl: nIDTool argument should be UINT_PTR instead of UINT<br>
+		CSplitterImpl: Added GetSplitterPosPct()<br>
+		CCommandBarCtrlImpl: Fixed incorrect use of m_wndParent when AttachToWindow() is used
+	</p>
+</blockquote>
+<p style=margin:0px><br></p>
+
+<h4>Changes Between WTL 9.0 and 8.0</h4>
+<p style=margin:0px>New and improved:</p>
+<blockquote style='margin-top:0px;margin-bottom:0px'>
+	<p style=margin:0px>
+		Full compatibility with VS2008, VS2010, VS2012, and VS2013<br>
+		New CRegKeyEx class for uniform support for registry<br>
+		New MinCrtHelper functions for uniform support for _ATL_MIN_CRT<br>
+		New DWM classes in atldwm.h<br>
+		New Ribbon classes in atlribbon.h<br>
+		New CDialogBaseUnits class<br>
+		Extended DDX support to TabCtrl, ComboBox, ListBox and ListView selection index<br>
+		Improved font handling in CHyperLink, CPaneContainer, CTabView<br>
+		CHyperlink: Added options for auto-create link font and single-line mode<br>
+		CBitmapButtonImpl: Added checked state, GetCheck()/SetCheck(), and check mode extended styles<br>
+		UpdateUI: Added support for radio menu items for popup menus<br>
+		Added support for new VersionHelpers.h in WinSDK 8.1 - GetVersionEx() is now deprecated<br>
+		Improved global support for old SDK headers, and for original headers in VC6 and VC7.x<br>
+		Global support for builds with NOMINMAX defined<br>
+		Global support for builds with STRICT_TYPED_ITEMIDS defined<br>
+		Global support for builds with _ATL_ALL_USER_WARNINGS defined<br>
+		Splitter Window:
+	</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Added keyboard handling</li>
+		<li>Added default position for splitter bar</li>
+		<li>Changed orientation from template argument to data member to reduce memory use</li>
+		<li>Added SPLIT_GRADIENTBAR and SPLIT_FIXEDBARSIZE extended styles</li>
+	</ul>
+	<p style=margin:0px>
+		Added CImageListManaged to manage the lifetime of wrapped image list<br>
+		Added Vista standard menu bar look option for Command bar<br>
+		Added new Rich Edit wrappers for _RICHEDIT_VER >= 0x0800<br>
+		Added new Win8 methods to Theme classes<br>
+		Added override of SubclassWindow() to CSplitterWindowImpl, CPaneContainerImpl, CTabViewImpl,<br>
+		&nbsp;&nbsp;CScrollImpl, CMapScrollImpl, CZoomScrollImpl, and CScrollContainerImpl<br>
+		CZoomScrollImpl:
+	</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Added zoom child windows option</li>
+		<li>Added zoom scale max limit</li>
+	</ul>
+	<p style=margin:0px>
+		AppWizard:
+	</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Support for VS2008, VS2010, VS2012, and VS2013</li>
+		<li>New universal setup for all versions of Visual Studio</li>
+		<li>Support for ribbon control</li>
+	</ul>
+	<p style=margin:0px>
+		Updated samples and added VS2005 project files<br>
+		New sample: MTPad7 - demonstrates Ribbon UI
+	</p>
+</blockquote>
+<p style=margin:0px><br></p>
+
+<p style=margin:0px>Fixes and enhancements:</p>
+<blockquote style='margin-top:0px;margin-bottom:0px'>
+	<p style=margin:0px>General:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fixed security warning for _vstprintf in atlapp.h</li>
+		<li>Added RunTimeHelper::IsThemeAvailable that detects if themes can be used in the app</li>
+		<li>VS2012: DLL version functions are defined as they are removed from ATL11</li>
+		<li>Added CWndProcThunk initialization for _ATL_VER >= 0x0800</li>
+		<li>Added RunTimeHelper::SizeOf_TOOLINFO() for different Windows versions at runtime</li>
+		<li>Added AtlCreateControlFont()</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Controls:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Extended CListViewCtrl::SelectItem() to multi-selection list view controls</li>
+		<li>Added another variant of CListViewCtrl::FindItem for strings</li>
+		<li>Added new CToolBarCtrl methods - InsertSeparator() and AddSeparator()</li>
+		<li>Added CToolBarCtrl::GetItemDropDownRect()</li>
+		<li>Added another variant of CToolTipCtrl::TrackActivate()</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Cracked Handlers:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fixed handlers with menu arguments</li>
+		<li>Fixed MSG_WM_SYSCOMMAND handler</li>
+		<li>Added MSG_WM_MOUSEHWHEEL handler</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>App Wizard:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix for TabView project code generation</li>
+		<li>Improved generated code for VC++ Express to support various versions of ATL</li>
+		<li>Fix for missing UIUpdateChildWindows() in dialog projects</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>App Wizard CE / App Wizard Mobile:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Updated AppWizCE for VS2008 - used different CLSID for Platforms object</li>
+		<li>Fix: VS2008 uses _SECURE_ATL code only</li>
+		<li>Fix for resource creation failure</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Misc:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix: CLogFont uses ::GetDeviceCaps with wrong default hDC = NULL</li>
+		<li>Fixed CPen::GetExtLogPen</li>
+		<li>Fixed CFrameWindowImpl::OnToolTipText*() handlers not to reset text buffer</li>
+		<li>Added support for chevron menus for multi-line toolbars</li>
+		<li>Fix: CFileDialog(false) fails on Windows Mobile 5 or 6</li>
+		<li>Fix: CFolderDialog::SetOKText should use lParam for string</li>
+		<li>Added CFolderDialog::SetPidlRoot()</li>
+		<li>Fixed CMemDlgTemplate::AddControl</li>
+		<li>Added option to disable item dragging in CTabViewImpl</li>
+		<li>Fixed CTabView::ShowTabControl(false) and UpdateLayout() to hide empty space</li>
+		<li>CTabView: Fixed value of the active page when inserting pages before it</li>
+		<li>PaneContainer: Added support for vertical title bar text</li>
+		<li>atlsplit.h: Added missing support for WM_PRINTCLIENT</li>
+		<li>Fix: CScrollImpl should not scroll horizontally if not needed</li>
+		<li>Fixed CScrollImpl<T>::ScrollToView() to use offset correctly</li>
+		<li>Fixed CPrintDialogExImpl::GetDefaults()</li>
+		<li>atltheme.h: Added CBufferedAnimation::StopAllAnimations()</li>
+		<li>Added support for I64 format to CString::Format()</li>
+		<li>Fix: CStdIndirectDialogImpl - DLGTEMPLATEEX not supported on Mobile devices</li>
+		<li>Fix: Missing CRichInkCtrlT::SetSel(), added CRichInkCtrlT::Undo()</li>
+	</ul>
+</blockquote>
+<p style=margin:0px><br></p>
+
+<h4>Changes Between WTL 8.0 and 7.5</h4>
+<p style=margin:0px>New and improved:</p>
+<blockquote style='margin-top:0px;margin-bottom:0px'>
+  <p style=margin:0px>RunTimeHelper functions for 
+	correct struct sizes on different versions of Windows<br>ModuleHelper functions for uniform support of ATL3 and ATL7 module classes<br>SecureHelper functions for support of secure and non-secure run-time 
+	functions<br>Support for new Vista features:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Support for new messages for common controls, dialogs, etc.</li>
+		<li>Support for TaskDialog</li>
+		<li>New Shell file dialogs (IFileOpenDialog and IFileSaveDialog)</li>
+		<li>New Aero Wizard support classes</li>
+		<li>New classes for Buffered Paint and Buffered Animation</li>
+	</ul>
+	<p style=margin:0px>
+		New TabView classes<br>New dialog class that uses in-memory dialog templates<br>New CMultiFileDialogImpl and CMultiFileDialog classes that support 
+		multi-select file dialogs<br>Added message cracker handler prototypes for all handlers<br>Replaced use of _alloca with CTempBuffer everywhere (and added CTempBuffer 
+		version for ATL3)<br>New classes for find/replace support for Edit or RichEdit<br>New class CFileDialogEx that supports GetOpenFileNameEx for Windows Mobile 5<br>
+		New features for the App Wizard:
+	</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>New default version values</li>
+		<li>Unicode build option</li>
+		<li>Support for TabView applications</li>
+		<li>Support for Explorer applications</li>
+	</ul>
+	<p style=margin:0px>Updates for the desktop App Wizard:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Added calls to set font for views based on controls that use font</li>
+		<li>Added scroll window as another view type</li>
+	</ul>
+	<p style=margin:0px>Support for VC2005 Express:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Setup for VS2005x</li>
+		<li>Changes in default.js to take into account that VC2005x does not have a resource editor</li>
+		<li>Generated code allows use of ATL3 from the Platform SDK</li>
+	</ul>
+	<p style=margin:0px>New AppWizard for Mobile 2003 and 2005 platforms<br>
+		New samples:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Aero - demonstrates the Vista Glass UI</li>
+		<li>MiniPie - Windows Mobile 2005 PPC and Smartphone sample</li>
+		<li>TabBrowser - a web browser using TabView class</li>
+	</ul>
+	<p style=margin:0px>MTPad sample updated to show usage of CRichEditFindReplaceImpl and CEditCommands/CRichEditCommands</p>
+</blockquote>
+<p style=margin:0px><br></p>
+
+<p style=margin:0px>Fixes and enhancements:</p>
+<blockquote style='margin-top:0px;margin-bottom:0px'>
+  <p style=margin:0px>Command Bar:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Added support for menu items with bitmaps on Vista</li>
+		<li>Fix: Keyboard cues shown even if the window is disabled</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CFolderDialog:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Added support for PIDLs in addition to the file path</li>
+		<li>Replaced use of SHGetMalloc with CoTaskMemFree</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Scroll Windows:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix: CZoomScrollImpl - some methods should be overridable</li>
+		<li>Added support for WM_MOUSEHWHEEL in CScrollImpl</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>App Wizard:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix: AppWizard fails to add files if C:\Temp does not exist</li>
+		<li>Fix: App Wizard generates security warning when loaded</li>
+		<li>Fix: App Wizard generates level 4 warning for modal dlg project</li>
+		<li>Fix: App Wizard setupXX.js scripts silently fail on Vista</li>
+		<li>Fix: Added code to unregister message filer and idle processing</li>
+		<li>Fix: Added WS_CLIPSIBLINGS to dialog forms to avoid rebar drawing problems</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>App Wizard CE:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix: App Wizard CE should not have rich edit as a view option</li>
+		<li>Fix: App Wizard CE generates level 4 warnings for single instance apps</li>
+		<li>Added support for Windows Mobile 6 SDKs</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Cracked Handlers:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix: Corrected MSG_WM_TIMER and handler prototype, removed unused argument (breaking change)</li>
+		<li>Fix: atlcrack.h does not support WTL namespace</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CDialogResize:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Added SetIcon(NULL, FALSE) for CDialogResize to remove the generic icon for resizable dialogs</li>
+		<li>Fix: Enabled size/move for both X and Y</li>
+		<li>Added center flags for controls</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CFrameWindowImpl:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix: Const issue with title argument of AddSimpleReBarBand</li>
+		<li>Fix: DECLARE_FRAME_WND_CLASS definition missing WTL namespace</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Windows CE:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix: Some symbols not defined for CE 4.0</li>
+		<li>Fix: Incorrect WinCE exclusions</li>
+		<li>Fix: Pocket PC - assert after navigating a CHyperLink</li>
+		<li>Fix: Property sheet with listview on WM5.0 causes stack overflow</li>
+		<li>Fix: CFindFile::GetFilePath() fails on diskless root requests</li>
+		<li>Fix: VS 2005 dialog editor bug - DS_FIXEDSYS used but not defined</li>
+		<li>Fix: Windows Mobile 2005 compatibility issues</li>
+		<li>Fix: CFullScreenFrame on Smartphone 20003</li>
+		<li>Fix: SmartPhone back key handling in CAppWindow</li>
+		<li>Added orientation aware support to CAppStdDialogImpl</li>
+		<li>Added CAxDialogImpl base for CStdDialogImpl, CStdDialogResizeImpl and CStdOrientedDialogImpl</li>
+		<li>Added various CStdDialogxxx enhancements</li>
+		<li>Fix: CStdDialogBase does not scale dialog title on VGA</li>
+		<li>Fix: DIBINFO16 triggers code analysis warning</li>
+		<li>Added LPCTSTR AtlLoadString(UINT uID) - CE only overload</li>
+		<li>Added imaging draw support to CZoomScrollImpl</li>
+		<li>Added CBottomTabViewImpl and CBottomTabView classes for PPC</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CFindFile:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix: CFindFile class uses CRT functions</li>
+		<li>Fix: FindFile() uses lstrcpy without checking length</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>General:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix: Adding ReBar bands fails with new Windows SDK</li>
+		<li>Added support for relative include paths</li>
+		<li>Fix: Using std::min and std::max</li>
+		<li>Fix: Problems using WTL with MFC</li>
+		<li>Improved support for Secure CRT</li>
+		<li>Changed implementation of CSize, CPoint, CRect, and CString to be inside class definitions</li>
+		<li>atltheme.h: Corrected method signatures for differences in uxtheme.h versions</li>
+		<li>Replaced malloc/free with new/delete where appropriate</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Misc:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix: CString::FormatV can cause GPF with Unicode strings</li>
+		<li>CHyperLink: Added handler for WM_SIZE</li>
+		<li>Fix: CTheme needs constructor from HTHEME handle</li>
+		<li>Added Add* methods to several control classes in atlctrls.h to augment Insert* methods</li>
+		<li>Fix: Incorrect casting in CRichEditCtrl::GetLine()</li>
+		<li>Fix: CTreeViewCtrl::GetItemState changed to return only state-bits as specified by mask</li>
+		<li>Fix: CBitmapButton::DoPaint - wrong button image</li>
+		<li>Added another variant of CDCT::Drawtext with LPTSTR argument that allows text change</li>
+		<li>Fix: CRecentDocumentListBase::AddToList() uses lstrcpy</li>
+		<li>Fix: AtlLoadString(uID, lpBuffer, nBufferMax) has unnecessary code</li>
+		<li>Fix: CCursor::LoadOEMCursor asserts on IDC_HAND</li>
+		<li>Fix: Memory leak when using CRT functions while printing</li>
+		<li>Fix: Undefined CString namespace</li>
+		<li>CPaneContainer: Added border styles</li>
+		<li>CSplitterImpl: Added SetSplitterPosPct, and changed App Wizard code to use it</li>
+	</ul>
+</blockquote>
+<p style=margin:0px><br></p>
+<p style=margin:0px><br></p>
+
+<p style=margin:0px><b>Changes Between WTL 7.5 and 7.1</b></p>
+<p style=margin:0px><br></p>
+<p style=margin:0px>New and improved:</p>
+<blockquote style='margin-top:0px;margin-bottom:0px'>
+	<p style=margin:0px>
+		VS2005 Compatibility:
+		Added support for Visual Studio 2005 - both desktop and Windows CE<br>
+		Classes for icons, cursors, accelerator tables<br>
+		CSortListViewImpl, CSortListViewCtrlImpl, and CSortListViewCtrl classes<br>
+		Impl classes for Wizard 97 style wizards: CWizard97Sheet,
+		CWizard97Page, CWizard97ExteriorPage, CWizard97InteriorPage<br>
+		CMemoryDC and CDoubleBufferWindowImpl classes<br>
+		Windows CE specific classes in new header, atlwince.h<br>
+		CScrollContainer class<br>
+		CZoomScrollImpl and CZoomScrollWindowImpl classes<br>
+		CZoomPrintPreviewWindowImpl and CZoomPrintPreviewWindow classes<br>
+		Global functions: AtlGetBitmapResourceInfo,
+		AtlGetBitmapResourceBitsPerPixel<br>
+		New REFLECT_* macros to enable selective reflection of messages<br>
+		App Wizard: Added App Wizard for VS2005<br>
+		App Wizard: Added App Wizard for Windows CE for VS2005<br>
+		New samples: WTLExplorer, ImageView, SPControls<br>
+	</p>
+</blockquote>
+<p style=margin:0px><br></p>
+
+<p style=margin:0px>Fixes and enhancements:</p>
+<blockquote style='margin-top:0px;margin-bottom:0px'>
+	<p style=margin:0px>Command Bar:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>DrawBitmapDisabled() doesn't work correctly on Longhorn</li>
+		<li>Submenu size not correct if command bar is off-screen</li>
+		<li>Added handler for WM_SETTINGCHANGE to improve theme color changes</li>
+		<li>Better support for 8/16/24-bit images</li>
+		<li>Command Bar with 2 Levels of submenus remains active</li>
+		<li>Hook procedure fails to call next hook</li>
+		<li>OnDestroy() should not decrement hook use if AttachToWindow() is used</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>MDI Command Bar:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Grows bigger if you switch between two maximized MDI child window types</li>
+		<li>Move all hook messages processing to a separate function and use pT</li>
+		<li>MDI icon &amp; buttons should have themed background</li>
+		<li>Should make MDI buttons gray when inactive<br>&nbsp;</li>
+	</ul>
+	<p style=margin:0px>CString:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Helper functions not overloaded properly</li>
+		<li>Some return types are 'const CString&amp;' and could be just 'CString&amp;'</li>
+		<li>FormatV() passes size in characters to _alloca, should be in bytes</li>
+		<li>Fixed stack corruption in FormatV()</li>
+		<li>Improved boundaries checking for integer overflows/underflows<br>&nbsp;</li>
+	</ul>
+	<p style=margin:0px>CScrollImpl:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Scroll bars problem when changing range</li>
+		<li>SetScrollOffset() doesn't move child windows</li>
+		<li>Range and thumb drawing problems</li>
+		<li>Possible overflow in OnMouseWheel()</li>
+		<li>Support for SIF_DISABLENOSCROLL</li>
+		<li>Added ScrollToView methods</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CMapScrollImpl:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>SetScrollSize() incorrectly inverts xMin and xMax</li>
+		<li>SetScrollSize() uses bRedraw = NULL</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CTheme:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>GetThemeFont() bad parameter ordering</li>
+		<li>Uses LOGFONT and TEXTMETRIC incorrectly (SDK header problem)</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CFrameWindowImpl:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Improved sizing for Windows CE</li>
+		<li>CreateSimpleToolBarCtrl() should handle 24-bit bitmaps</li>
+		<li>Changed WinCE CCECommandBarCtrl typedef and added a PPC CMenuBarCtrl</li>
+		<li>UpdatesBarPosition() doesn't take Windows CE command bar into account</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CDialogResize:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Enabled use for Windows CE</li>
+		<li>Add WS_EX_DLGMODALFRAME to prevent empty icon</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CReBarCtrl:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Background not painted when resized</li>
+		<li>Fixed typo in LockBands()</li>
+		<li>MaximizeBand needs BOOL fIdeal argument</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CRichEdit:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>GetSelText() should support UNICODE strings</li>
+		<li>GetSelText() uses lpstr instead of lpstrText</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CHyperLink:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Added _xttoi() helper to avoid CRT in _ATL_MIN_CRT</li>
+		<li>Fixed resource leak by destroying tooltip window<br>&nbsp;</li>
+	</ul>
+	<p style=margin:0px>CPropertySheetImpl:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Improved support for Windows CE</li>
+		<li>Sheet without title generates a memory fault on Windows CE</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CFolderDialog:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Add a way to set an initial folder</li>
+		<li>Uses BFFM_IUNKNOWN which is not always defined</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Update UI:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Add support to dynamically add UpdateUI elements</li>
+		<li>UIUpdateMenuBarElement() should use EnableMenu() instead of SetMenuItemInfo() for Windows CE</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CDC:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>FillSolidRect() should restore background color</li>
+		<li>GetClipRgn() method missing</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Printing:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>CPrinter::CreatePrinterDC() and CreatePrinterIC() members should be const</li>
+		<li>CDevMode::CopyToHDEVMODE() is missing a call to GlobalUnlock()</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>AppWizard:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Use WTL subfolder to create WTL category for VC7.x and VC8</li>
+		<li>Rename files from WTLApp7x to WTLAppWiz, and add VS2005 setup file</li>
+		<li>Fixed setup for x64</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>General:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Redefinition of _MAX_FNAME with Dinkumware Standard C++ Library on Windows CE</li>
+		<li>Added ATLVERIFY macro for ATL3</li>
+		<li>Support warning level 4</li>
+		<li>Missing methods CToolBarCtrl::SetButtonInfo, InsertButton, CTabCtrl::SetItem, CComboBoxEx::InsertItem, SetItem</li>
+		<li>Missing support for WM_PRINTCLIENT</li>
+		<li>Removed usage of IsBad* functions</li>
+		<li>Fixed various compiler warnings</li>
+		<li>TCHAR bugs in various files</li>
+		<li>Improved Windows CE support and changes for Visual Studio 2005</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Misc:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>CMDIChildWindowImpl: HMENU should be destroyed in OnDestroy()</li>
+		<li>CStatic: Should use STM_SETIMAGE instead of STM_SETICON for SetIcon() on Windows CE</li>
+		<li>CButton: GetButtonStyle() uses wrong mask</li>
+		<li>CImageList: Made Duplicate() method const</li>
+		<li>CListViewCtrl: Made SubItemHitTest() method const</li>
+		<li>CTreeViewCtrl: GetItem() and SetItem() incorrectly restricted to _WIN32_IE &gt;= 0x0500</li>
+		<li>CMonthCalendarCtrl: GetMonthRange() should be GetMaxTodayWidth()</li>
+		<li>CDateTimePickerCtrl: SetFormat() should have const argument</li>
+		<li>CBitmapButtonImpl: Fixed resource leak by destroying tooltip window</li>
+		<li>CMultiPaneStatusBarCtrlImpl: Cannot handle wide panes without resource strings</li>
+		<li>CCheckListViewCtrlImpl: Call CheckSelectedItems() through pT</li>
+		<li>CPaneContainerImpl: SetPaneContainerExtendedStyle() should use pT to call CalcSize()</li>
+		<li>CFindFile: Enabled for Windows CE</li>
+		<li>CPropertyPageImpl: Added handlers for callback messages</li>
+		<li>atlcrack.h: Added return value for MSG_WM_APPCOMMAND</li>
+		<li>CMenu: New method variants: AppendMenu, InsterMenu, ModifyMenu</li>
+		<li>CFont: Added arguments for bold and italic to CreatePointFont()</li>
+		<li>CSize: Added scalar operators for WTL::CSize and ATL::CSize</li>
+		<li>CRecentDocumentList: Allow changing the &quot;DocumentCount&quot; and &quot;Document%i&quot; registry values strings</li>
+		<li>CSplitterWindowImpl: Enabled use for Windows CE</li>
+	</ul>
+</blockquote>
+<p style=margin:0px><br></p>
+
+<h4>Changes Between WTL 7.1 and 7.0</h4>
+<p style=margin:0px>New and improved:</p>
+<blockquote style='margin-top:0px;margin-bottom:0px'>
+	<p style=margin:0px>VC7 Compatibility: Support for ATL7 Module classes and critical sections and AppWizard setup for VC++ 7.1</p>
+	<p style=margin:0px>Windows CE Support: Full compatibility with Windows CE platforms and AppWizard for eMbedded Visual C++</p>
+	<p style=margin:0px>Namespace Support: Automatic &quot;using ATL&quot; (ATL7 only) or &quot;using WTL&quot; can now be turned off</p>
+	<p style=margin:0px>CHyperLink New Features: not underlined, underlined when hover, command button, link tags</p>
+	<p style=margin:0px>CCustomWaitCursor class supports custom and animated wait cursors</p>
+	<p style=margin:0px>AtlCreateBoldFont() for creating bold version of an existing font</p>
+</blockquote>
+<p style=margin:0px><br></p>
+<p style=margin:0px>Fixes and enhancements:</p>
+<blockquote style='margin-top:0px;margin-bottom:0px'>
+	<p style=margin:0px>CFrameWindowImpl:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>CreateSimpleToolBarCtrl() - remove dead code, improve error checking, add a global function that uses it</li>
+		<li>Fix - PrepareChevronMenu() fails to  get toolbar strings for Unicode</li>
+		<li>CFrameWindowImplBase::Create() - improve ASSERT not to use m_hWnd if creation fails</li>
+		<li>Fix - CFrameWndClassInfo::Register - should use %p formatting only for _WIN32_WINNT &gt;= 0x0500 or for _WIN64</li>
+		<li>Fix - Chevron menus not positioned correctly with RTL</li>
+		<li>Fix - CMDIChildWindowImpl: Problems creating maximized child windows and handling focus</li>
+		<li>Fix - CMDIChildWindowImpl: Should activate on WM_MOUSEACTIVATE</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>UpdateUI:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix - Incorrectly clears default item from the system menu in MDI apps</li>
+		<li>Added UISetCheck with bool instead of int for the check state</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>DDX:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix - Doesn't provide a way to change floating point precision</li>
+		<li>Added DDX_CONTROL_HANDLE for non-CWindowImpl objects</li>
+		<li>Added DDX_Check variant with bool instead of int for the check state</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Command Bar:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix - OnDrawItem() and OnMeasureItem() don't do a good check for owner-draw menu items</li>
+		<li>Fix - Disabled 32-bit images not painted correctly in 3D menu mode</li>
+		<li>Fix - Popup menus not positioned correctly with RTL</li>
+		<li>Fix - Uses GCL_HICONSM instead of GCLP_HICONSM with GetClassLongPtr()</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>MDI Command Bar:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix - Doesn't refresh icon if MDI children are different</li>
+		<li>OnAllHookMessages() - improve code to handle MDI child window class icon</li>
+		<li>Fix - OnNcLButtonDown() uses TPM_VERPOSANIMATION without checking Windows version</li>
+		<li>Fix - Maximized MDI buttons in wrong place for RTL</li>
+		<li>Should adjust cxIdeal for rebar bands for IE4</li>
+		<li>Add support for different top-level menu widths by handling ideal size for rebar bands</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>AppWizard:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix - Doesn't support MSDI application as a COM Server</li>
+		<li>Fix - MDI with Form View - stack overflow closing maximized MDI child windows</li>
+		<li>Fix - Generates VERSION resource name 'test1' regardless of the project name</li>
+		<li>Fix - Dialog project with control hosting doesn't derive a dialog from CAxDialogImpl</li>
+		<li>Fix - COM Server doesn't register type library</li>
+		<li>Fix - COM Server doesn't register AppID properly</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CTreeViewCtrl:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix - GetItemData() needs better return value</li>
+		<li>Fix - GetItemState() should use TVM_GETITEMSTATE instead of TVM_GETITEM for IE5</li>
+		<li>GetItem() and SetItem() - added new variants that use TVITEMEX</li>
+		<li>Fix - SortChildren() should add recurse flag argument</li>
+		<li>Fix - CTreeItem doesn't support CTreeViewCtrlExT that has different TBase than CWindow</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CThemeImpl:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix - Uses scalar delete instead of the vector one</li>
+		<li>Fix - EnableThemeDialogTexture() argument is BOOL instead of DWORD</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CFolderDialog:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix - EnableOK() passes wrong arguments to BFFM_ENABLEOK</li>
+		<li>Fix - Always clears m_hWnd, which causes problem for nested messages</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CDialogResize:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix - DlgResize_Init() forces dialog to be visible by using SetRedraw()</li>
+		<li>Forcing WS_THICKFRAME is not enough to make dialog resizable</li>
+		<li>Min track size should be used for child dialogs as well</li>
+		<li>Fix - DlgResize_PositionControl() incorrectly checks return value from MapWindowPoints()</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CAppModule:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix - CAppModule methods not thread-safe</li>
+		<li>Fix - AddSettingChangeNotify() unusable in multithreaded apps because of delayed initialization</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CString:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix - Delete() doesn't allow deleting more than the length of the string</li>
+		<li>Fix - Append() can cause buffer overrun</li>
+		<li>Fix - MakeReverse() can cause an infinite loop</li>
+		<li>Fix - _cstrstr() unnecessarily inefficient</li>
+		<li>Fix - FindOneOf() is not DBCS-aware</li>
+		<li>Fix - Format() does not recognize %E</li>
+		<li>Fix - TrimLeft() and TrimRight() are only half-way DBCS-aware</li>
+		<li>Fix - May cause assertions or undefined behavior with SBCS</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CRecentDocumentList:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix - SetMaxEntries() has an incorrect ASSERT</li>
+		<li>Add CString variant of the GetFromList() method</li>
+		<li>Add a way to replace command IDs used for the MRU list</li>
+		<li>Add a way to replace registry key name</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Misc:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>CMessageLoop::Run() - improve the loop by checking bDoIdle before calling PeekMessage()</li>
+		<li>CServerAppModule: Clean-up unused code</li>
+		<li>Fix - CServerAppModule::MonitorProc() - no need to call _endthreadex()</li>
+		<li>Fix - CListBox::GetText() and CComboBox::GetLBText() (CString variants) don't check for LBERR/CB_ERR</li>
+		<li>Fix - CAxPropertyPageImpl doesn't create ActiveX controls with ATL7</li>
+		<li>Fix - CDC::GetTextExtentExPoint() missing</li>
+		<li>CDC::SetWindowExt() should have default value NULL for the lpSizeRet argument</li>
+		<li>Fix - CPropertySheetWindow missing methods for PSM_INSERTPAGE, PSM_SETHEADERTITLE, and PSM_SETHEADERSUBTITLE;
+				AddPage should return BOOL</li>
+		<li>Fix - CMapScrollImpl::SetScrollSize() uses wrong variable</li>
+		<li>Fix - CHyperLink: WM_UPDATEUISTATE causes repaint without WM_PAINT</li>
+		<li>Fix - CUpDownCtrl::GetPos() returns incorrect value</li>
+		<li>Fix - CUpDownCtrl::GetPos32() doesn't have default arg value</li>
+		<li>Fix - CMultiPaneStatusBarCtrl: Always uses size grip for positioning panes</li>
+		<li>Fix - CTabCtrl::InsertItem() should return int, not BOOL</li>
+		<li>CReBarCtrl: Added LockBands() method</li>
+		<li>Fix - CFont: uninitialized variable passed to DPtoLP</li>
+		<li>Fix - CPrintDialogImpl: Crash when displaying Print Setup dialog</li>
+		<li>Fix - CPageSetupDialogImpl::PaintHookProc() - should use T* and return UINT_PTR instead of UINT</li>
+		<li>Fix - CPrintJob doesn't support printing to a file</li>
+		<li>Fix - CSplitterImpl: Doesn't handle WM_CAPTURECHANGED - can get in an invalid state</li>
+		<li>CRichEditCtrl: Add method for EM_SETTABSTOPS</li>
+		<li>Fix - CFindFile::GetFilePath() checks for a trailing slash, but doesn't use that info</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>General:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix - Problems compiling with /Zc:forScope ('for' loop scope conformance)</li>
+		<li>Use named constants instead of values for pixel sizes, buffer lengths, etc.</li>
+		<li>Support building with Managed C++ (/CLR)</li>
+		<li>CMenuItemInfo - add run-time support for different versions of Windows</li>
+		<li>CommCtrl.h change - additional fields in IMAGELISTDRAWPARAMS now depend on _WIN32_IE instead of _WIN32_WINNT</li>
+		<li>Fix - Incorrect usage of CRegKey::QueryStringValue()</li>
+		<li>Fix - Operator = for GDI and USER wrappers leaks handle if it's managed variant</li>
+		<li>Fix - GDI and USER wrappers break under self-assignments</li>
+		<li>Fix - Chaining messages with cracked handlers broken with ATL7</li>
+		<li>Initialize all variables and structures prior to use</li>
+		<li>Use new common control struct names</li>
+	</ul>
+</blockquote>
+<p style=margin:0px><br></p>
+
+<h4>Changes Between WTL 7.0 and 3.1</h4>
+<p style=margin:0px>New classes and features:</p>
+<blockquote style='margin-top:0px;margin-bottom:0px'>
+	<p style=margin:0px>Support for new Common Controls v6 messages</p>
+	<p style=margin:0px>Support for Visual Studio .NET and ATL 7.0</p>
+	<p style=margin:0px>WTLApp70 - new AppWizard for Visual Studio .NET</p>
+	<p style=margin:0px>CThemeImpl - implements support for Windows XP themes</p>
+	<p style=margin:0px>CMDICommandBarCtrl - implements Command Bar for MDI applications</p>
+</blockquote>
+<p style=margin:0px><br></p>
+<p style=margin:0px>Fixes and enhancements:</p>
+<blockquote style='margin-top:0px;margin-bottom:0px'>
+	<p style=margin:0px>Command Bar:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Bogus assert in OnDestroy</li>
+		<li>Check marks can be truncated in large font settings</li>
+		<li>Use pT to access GetSystemSettings, DrawMenuText, DrawBitmapDisabled, Draw3DCheckmark, DoPopupMenu,
+			DoTrackPopupMenu, TakeFocus, GiveFocusBack, so they can be overridden</li>
+		<li>No hot-tracking if main window is not active</li>
+		<li>Top level items not painted inactive if app looses activation while drop down menu is displayed</li>
+		<li>Added Windows XP flat menus support</li>
+		<li>Drop-down menu doesn't close if clicked again (Windows XP only)</li>
+		<li>Menu item text and accelerator text too close with some settings</li>
+		<li>Keyboard can still access clipped menu items</li>
+		<li>Added support for hiding keyboard navigation indicators until Alt key is pressed (system setting)</li>
+		<li>Added AddIcon and ReplaceIcon variants for icon resources</li>
+		<li>Image size calculated differently in different places</li>
+		<li>Add support for 32-bit (alpha channel) bitmaps for Windows XP</li>
+		<li>Fixed width calculation for default menu items</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CFrameWindowImpl:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>AddSimpleReBarBandCtrl sets toolbar extended styles without preserving old ones</li>
+		<li>PrepareChevronMenu should not create menu items for buttons with TBSTATE_HIDDEN</li>
+		<li>TPM_VERPOSANIMATION will not be defined in atlframe.h if atlctrlw.h is included first</li>
+		<li>CreateSimpleToolBarCtrl - height might be too small if large font is used</li>
+		<li>PrepareChevronMenu uses TB_GETBUTTONTEXT, better use TB_GETBUTTONINFO</li>
+		<li>Chevron menu doesn't close if clicked again (Windows XP only)</li>
+		<li>Should check local classes for superclassing</li>
+		<li>Add support for 32-bit (alpha channel) bitmaps for Windows XP</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Update UI:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>UISetText can clear other menu item flags</li>
+		<li>CUpdateUI::UIUpdateState assigns value with |= instead of =</li>
+		<li>Added UISetDefault() and fix default state to work with menus</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CString:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>GetBuffer() and GetBufferSetLength() should return NULL in out-of-memory condition</li>
+		<li>Added missing methods: separate c-tors for LPCSTR and LPCWSTR, CollateNoCase, TrimRight and TrimLeft variants, Find
+			variants, moved FormatV to public</li>
+		<li>Fix _IsValidString usage</li>
+		<li>FormatV incorrectly calculates buffer size (too big)</li>
+		<li>Usage of _ttoi causes problems with _ATL_MIN_CRT in VC7</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CDC:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>GetTabbedTextExtent() should return DWORD instead of BOOL</li>
+		<li>Add FillRect() that accept color index instead of a brush handle</li>
+		<li>DrawDragRect() leaks regions and a brush</li>
+		<li>Improved DitherBlt() - added brushes as arguments for used colors</li>
+		<li>Added DrawShadowText() (uses LoadLibrary/GetProcAddress to run on older Windows)</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CListViewCtrl:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>SetItemState should use LVM_SETITEMSTATE</li>
+		<li>SetItemCount should return a BOOL</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CRichEditCtrl:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Added SetCharFormat() variant that accepts flags (for SCF_ALL)</li>
+		<li>CharFromPos() should pass a pointer to POINTL in lParam</li>
+		<li>GetTextRange() - should add Unicode variant for rich edit version &gt;= 2</li>
+		<li>Added another FormatRange() that can accept a pointer to FORMATRANGE (needed for passing NULL to clear cache)</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CHyperLink:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Allow overriding of Navigate and CalcLabelRect</li>
+		<li>Doesn't handle right or center alignment</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CColorDialog:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Has static variables that were not initialized with _ATL_MIN_CRT</li>
+		<li>Fixed HookProc for ColorOK message - the message is not sent, but the hook proc is called directly</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>atlcrack.h:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>MSG_WM_TIMER crack macro should cast to TIMERPROC instead of TIMERPROC*</li>
+		<li>Add cracked handlers for all new messages in Common Controls 6</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>atlapp.h:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fixed problems with atlTraceUI with ATL7</li>
+		<li>#ifdefs for ATL7 were in the wrong place</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>atlctrls.h:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Add support in control classes for all new messages in Common Controls 6</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CRecentDocumentList:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>AtlCompactPath corrupts memory if filename is longer than requested compact size</li>
+		<li>ReadFromRegistry incorrectly checks for error when reading from registry</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CSplitterWindow:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Incorrect calculation of middle position</li>
+		<li>3D border now drawn only if WS_EX_CLIENTEDGE is set</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Printing:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Uses DWORD instead of an int for a job ID</li>
+		<li>CPrintJob::CancelPrintJob shouldn't have a return value</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Misc:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>CRegKey::QueryValue and SetValue are deprecated in ATL7</li>
+		<li>Added direct support for ATL7</li>
+		<li>Replace ScreenToClient and ClientToScreen with MapWindowPoints to support RTL layout</li>
+		<li>CFindFile::GetFilePath(LPTSTR...) returns path without the file name</li>
+		<li>MDI: Updating client edge in WM_WINDOWPOSCHANGING causes minimize/maximize/restore animation problems,
+			use WM_WINDOWPOSCHANGED</li>
+		<li>Custom Draw: Added CCustomDraw::OnSubItemPrePaint() overrideable method</li>
+		<li>CFolderDialogImpl uses 'this' for BROWSEINFO.lParam instead of T*</li>
+		<li>CImageList::Destroy shouldn't use Detach()</li>
+		<li>ATL7 has its own AtlLoadString</li>
+		<li>CPropertySheet doesn't close when you press X button</li>
+		<li>Fixed problems for _U_STRINGorID and others that moved from atlbase.h to atlwin.h in ATL7</li>
+		<li>Add AtlMessageBox() that accepts either in-memory or resource strings</li>
+		<li>CScrollImpl: fixed bug with scrolling child windows</li>
+		<li>CPropertyPageImpl: Add new notification handlers to enable direct return values 
+			(use #ifdef _WTL_NEW_PAGE_NOTIFY_HANDLERS to use them)</li>
+		<li>Add AtlInitCommonControls() to simplify use</li>
+		<li>DDX: Fixed usage of the size of char arrays for DDX</li>
+		<li>CPageSetupDialog: changed usage of CWndProcThunk because of changes in ATL7</li>
+		<li>Fix confusing precedence in expressions</li>
+		<li>Removed forward declarations because default values for template arguments 
+			shouldn't be specified in two places (we don't need them anyway)</li>
+		<li>Win64: Fix /Wp64 warnings from 32-bit VC7 compiler caused by SDK headers</li>
+		<li>Fix direct usage of English strings (they can be #defined to something else now)</li>
+		<li>AtlGetCommCtrlVersion not defined if _ATL_DLL is in ATL 3.0 (and CmdBar is using it)</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>AppWizard:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Added manifest for Common Controls 6</li>
+		<li>Loading Rich Edit DLL should use HMODULE</li>
+		<li>Should not use atlimpl.cpp for ATL7</li>
+		<li>Added message handler prototypes to generated files</li>
+		<li>VERSION resource always has VALUE &quot;OLESelfRegister&quot; (now only for COM servers)</li>
+		<li>Added option for putting implementation in CPP files</li>
+		<li>d-tor for the thread manager class in MSDI project executed after the heap is destroyed</li>
+		<li>Wrong settings when changing to a dialog project and back (AppWizard 6.0 only)</li>
+		<li>Remove cut/copy/paste accelerators for form view and dialogs projects</li>
+		<li>Fix toolbar bitmaps so they are not transparent (problem with Windows XP flat menus only)</li>
+		<li>Used CMDICommandBarCtrl for MDI apps</li>
+		<li>Add symbols required for VC7 Class Wizard to recognize an ATL project</li>
+		<li>Changed default styles for the rebar, so it does look OK without CmdBar and with manifest</li>
+		<li>Added setup programs for both AppWizards</li>
+		<li>Remove ignored resource attributes: MOVEABLE, PURE, etc. (AppWizard 7.0 only)</li>
+		<li>Add call to DefWindowProc to WinMain to resolve possible problems if MSLU is used</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Samples:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Updated toolbar bitmaps, added #ifdefs for ATL7, added manifest file for CommCtrl6, qualified _U_RECT with WTL
+			namespace, updated use of deprecated CRegKey functions, added VC7 projects</li>
+		<li>Added Alpha sample</li>
+	</ul>
+</blockquote>
+<p style=margin:0px><br></p>
+
+<h4>Changes Between WTL 3.1 and 3.0</h4>
+<p style=margin:0px>New classes:</p>
+<blockquote style='margin-top:0px;margin-bottom:0px'>
+	<p style=margin:0px>
+		CPaneContainer - implements a window that provides a title bar and a close button (like Explorer)
+	</p>
+	<p style=margin:0px>
+		CDialogResize - an MI class that allows resizing of dialogs (or any windows with child windows/controls)
+	</p>
+	<p style=margin:0px>
+		CAxPropertyPageImpl - implements a property page that can host ActiveX controls
+	</p>
+</blockquote>
+<p style=margin:0px><br></p>
+<p style=margin:0px>Fixes and enhancements:</p>
+<blockquote style='margin-top:0px;margin-bottom:0px'>
+	<p style=margin:0px>
+		CServerAppModule now clears m_hEventShutdown to avoid calling CloseHandle twice
+	</p>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CString:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>operator += now leaves original string intact if it's out of memory</li>
+		<li>Fixed bad DWORD_PTR usage in TrimRight, TrimLeft, Replace, Remove</li>
+		<li>Removed dependencies on CRT for projects that don't use it</li>
+		<li>Insert - fixed string corruption in release builds</li>
+		<li>Added optional floating point formatting (for projects that use CRT)</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>
+		CEdit and CRichEditCtrl: SetSelAll and SetSelNone had reversed implementation
+	</p>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>
+		atlres.h: Changed IDs so that they are compatible with MFC's afxres.h
+	</p>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Command Bar:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Added LoadMappedImages()</li>
+		<li>Changed handling of left and right arrow keys so that they don't close context menus</li>
+		<li>Add code to handle left/right arrow keys correctly on mirrored (RTL) systems</li>
+		<li>Removed handler that eats parent window's WM_SETTINGCHANGE</li>
+		<li>Fixed bitmap resource leak in Draw3DCheckmark</li>
+		<li>Fixed incorrect usage of CharLower in OnMenuChar</li>
+		<li>Fixed wrong color for the disabled items in hi-contrast mode</li>
+		<li>Added code to gray menu items if main window is inactive</li>
+		<li>Fixed keyboard mnemonic handling for IE 4</li>
+		<li>Fixed hook problems with multiple cmdbars in the same thread</li>
+		<li>Added support for radio menu items</li>
+		<li>Added support for disabled top-level menu items (also added in CFrameWindowImpl::PrepareChevronMenu)</li>
+		<li>Added keyboard shortcut (Alt+/) to invoke chevron menu</li>
+		<li>Added support to override menu item length in a derived class</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CBitmapButton:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Bypassed BUTTON DefWindowProc for hover style so that the button doesn't take focus</li>
+		<li>Added BMPBTN_AUTOFIRE extended style</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CDC:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Added _WTL_FORWARD_DECLARE_CSTRING define to allow usage of methods that accept CString</li>
+		<li>Fixed errors in GetTextFace and GetMenuItemString</li>
+		<li>Added GetCharWidth32</li>
+		<li>Added DrawIconEx method</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CMenu:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Implement following missing methods:<br>
+			&nbsp;&nbsp;&nbsp; GetMenuDefaultItem<br>
+			&nbsp;&nbsp;&nbsp; GetMenuInfo<br>
+			&nbsp;&nbsp;&nbsp; GetMenuItemRect<br>
+			&nbsp;&nbsp;&nbsp; HiliteMenuItem<br>
+			&nbsp;&nbsp;&nbsp; IsMenu<br>
+			&nbsp;&nbsp;&nbsp; MenuItemFromPoint<br>
+			&nbsp;&nbsp;&nbsp; SetMenuDefaultItem<br>
+			&nbsp;&nbsp;&nbsp; SetMenuInfo</li>
+		<li>GetMenuString - fixed to include space for terminating NULL character in returning string</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>
+		GDI and USER classes should destroy the GDI/USER objects in Attach if GDI/USER resource is managed
+	</p>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CFrameWindowImpl:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>OnToolTipText shouldn't save tool tip text if it's not for a menu</li>
+		<li>AddSimpleReBarBandCtrl now adds chevron style only for toolbars with buttons</li>
+		<li>AddSimpleReBarBand(Ctrl) - calc band ID if not specified</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CRecentDocumentList:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Fix - UpdateMenu deletes wrong menu item when the list is empty</li>
+		<li>Added code to allow restricting the number of characters displayed by MRU menu items</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Update UI:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Added support for blocking accelerators for disabled items</li>
+		<li>Improved search code assuming there are no duplicate entries (and added checks for duplicates)</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>CSplitterWindow:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>CSplitterWindowImpl should derive from CSplitterImpl&lt;T , t_bVertical&gt; to allow overriding of methods</li>
+		<li>Added single pane mode and SetSinglePaneMode/GetSinglePaneMode</li>
+		<li>Added right/bottom aligned resize mode using extended styles SPLIT_RIGHTALIGNED/SPLIT_BOTTOMALIGNED</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>
+		atlcrack.h: Added handlers for following new
+		messages:<br>
+		&nbsp;&nbsp;&nbsp; WM_APPCOMMAND<br>
+		&nbsp;&nbsp;&nbsp; WM_NCXBUTTONDOWN<br>
+		&nbsp;&nbsp;&nbsp; WM_NCXBUTTONUP<br>
+		&nbsp;&nbsp;&nbsp; WM_NCXBUTTONDBLCLK<br>
+		&nbsp;&nbsp;&nbsp; WM_XBUTTONDOWN<br>
+		&nbsp;&nbsp;&nbsp; WM_XBUTTONUP<br>
+		&nbsp;&nbsp;&nbsp; WM_XBUTTONDBLCLK
+	</p>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Win64:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Dialog return value should use DWLP_MSGRESULT and SetWindowLongPtr</li>
+		<li>CMenu::InsertMenu, AppendMenu, ModifyMenu should have UINT_PTR for the menu ID</li>
+		<li>Added appropriate type casts</li>
+		<li>CFrameWindowImpl::m_szAutoName - changed the size to fit the pointer value size</li>
+		<li>CListViewCtrl::SortItems should use LPARAM for user data instead of DWORD</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>Misc:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>Added optional mask argument to all methods for setting extended styles</li>
+		<li>CMDIWindow::MDIRestore - fixed to send WM_MDIRESTORE instead of WM_MDIICONARRANGE</li>
+		<li>CListViewCtrl: Added SortItemsEx method</li>
+		<li>CToolBarCtrl::GetButtonInfo - fixed to return int instead of BOOL</li>
+		<li>Added CToolBarCtrl::SetButtonSize and SetBitmapSize that accept cx and cy instead of SIZE</li>
+		<li>Printing: Changed how GetNewDevModeForPage works (comments in code)</li>
+		<li>CFileDialogImpl::_OnTypeChange incorrectly calls pT-&gt;OnSelChange instead of pT-&gt;OnTypeChange</li>
+		<li>CMultiPaneStatusBarCtrl::GetPaneTipText - fixed to use index instead of and ID internally</li>
+		<li>CWinDataExchange: Added references to arguments of DoDataExchange, so there are no level 4 warning 
+			even if the map is empty</li>
+		<li>CPropertySheetWindow: Added new, IE 5.0 specific methods</li>
+		<li>CPropertyPageImpl: Added new, IE 5.0 specific methods</li>
+	</ul>
+	<p style=margin:0px><br></p>
+	<p style=margin:0px>AppWizard:</p>
+	<ul style='margin-top:0px;margin-bottom:0px'>
+		<li>added calls to RemoveMessageFilter and RemoveIdleHandler in CMainFrame::OnDestroy for COM server projects</li>
+		<li>added scroll bars for HTML view</li>
+		<li>CAppServerModule now handles -embedding as well as -automation</li>
+		<li>corrected code in CMainFrame::OnShowToolBar to correctly identify the toolbar in a rebar</li>
+		<li>dialog based app code now derives from CUpdateUI as public</li>
+	</ul>
+</blockquote>
+<p style=margin:0px><br></p>
+
+<p style=margin:0px>- end of readme.html -</p>
+
+</body>
+
+</html>