Windows Template Library - WTL Version 8.0         (build 7161) 6/10/07


Copyright © 2007 Microsoft Corporation. All rights reserved.
 
This file is a part of the Windows Template Library.
The use and distribution terms for this software are covered by the
Microsoft Permissive License (Ms-PL) which can be found in the file
Ms-PL.txt at the root of this distribution.

 

 

Welcome to the Windows Template Library, version 8.0. This document contains the following topics:

 

 

 

Introduction

 

Windows Template Library, or WTL, is a set of classes that extend ATL to support more complex user interfaces for either applications or various UI components, while maintaining the big advantage of ATL - small and fast code. WTL classes were designed to be the best and the easiest way to implement rich Win32 based UI for ATL based applications, servers, components, and controls.

 

WTL provides support for implementing 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.

 

 

Features And Installation

 

This is the sixth public release of WTL, after WTL 3.0, 3.1, 7.0, 7.1, and 7.5. It is also the second release of WTL under the open license, enabling developers from the WTL community to contribute to the library.

 

WTL classes can be used with either VC++ 6.0 and ATL 3.0, VC++ .NET 2002 and ATL 7.0, VC++ .NET 2003 and ATL 7.1, VC++ 2005 with ATL 8.0, or EVC++ 4.0 or 3.0 with ATL for Windows CE. AppWizard for VC++ .NET 2002 and 2003, and Visual C++ 2005 is included.

 

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.

 

To install WTL, just copy the whole directory structure, or unpack the archive file, to the location of your choice. Please be sure to add the WTL\include directory to the list of include directories in VC++, so that the compiler can find them when you include them in your projects..

 

Setup programs for the AppWizard are provided. After executing the setup scripts, ATL/WTL AppWizard will appear in the list of AppWizards when you select File.New.Project in VC++ IDE. The file AppWiz\setup70.js is the setup script for VC++ .NET 2002, AppWiz\setup71.js is for VC++ .NET 2003, and AppWiz\setup80.js is for VC++ 2005. AppWizCE\setup80.js is setup script for VC++ 2005 SmartDevice projects.

 

To manually install AppWizard for VC++ .NET 2002/2003, copy all WTLAppWiz.* files from AppWiz\Files to VC++ .NET projects directory, %VC7DIR%\Vc7\vcprojects, where %VC7DIR% is the directory where VC++ .NET 2002/2003 is installed. After that, open WTLAppWiz.vsz and modify the like that contains ABSOLUTE_PATH to contain %WTLDIR%\AppWiz\Files, where %WTLDIR% is the directory where WTL files are.

 

Platform support and requirements:

 

    Compiler/IDE/ATL:

            Visual C++ 6.0   (ATL 3.0)

            Visual C++.NET 2002   (ATL 7.0)

            Visual C++.NET 2003   (ATL 7.1)

            Visual C++ 2005   (ATL 8.0)

 

    SDK (optional):

            Any Platform SDK from January 2000 release up to the latest Windows SDK

 

    Windows CE development:

            eMbedded Visual C++ 3.0 - Pocket PC, Pocket PC 2002

            eMbedded Visual C++ 4.0 - STANDARDSDK_410, Pocket PC 2003, Smartphone 2003,

                                                     STANDARDSDK_500, Pocket PC 2003 SE, Smartphone 2003 SE

            Visual C++ 2005 - Pocket PC 2003 SE, Smartphone 2003 SE, STANDARDSDK_500,

                                       Windows Mobile 5.0 (Pocket PC and Smartphone),
                                       Windows Mobile 6.0 (Standard and Professional)

 

 

Packing List

 

File Name: Description:

readme.htm this file
Ms-PL.txt license
 
include\
    atlapp.h message loop, interfaces, general app stuff
    atlcrack.h message cracker macros
    atlctrls.h standard and common control classes
    atlctrlw.h command bar class
    atlctrlx.h bitmap button, check list view, and other controls
    atlddx.h data exchange for dialogs and windows
    atldlgs.h common dialog classes, property sheet and page classes
    atlfind.h Find/Replace support for Edit and RichEdit
    atlframe.h frame window classes, MDI, update UI classes
    atlgdi.h DC classes, GDI object classes
    atlmisc.h WTL ports of CPoint, CRect, CSize, CString, etc.
    atlprint.h printing and print preview
    atlres.h standard resource IDs
    atlresce.h standard resource IDs for Windows CE
    atlscrl.h scrollable windows
    atlsplit.h splitter windows
    atltheme.h Windows XP theme classes
    atluser.h menu class, USER object classes
    atlwince.h specific support for Windows CE Mobile platforms
    atlwinx.h extensions of ATL windowing support
 
Samples\
    Aero\... Vista Aero glass showcase
    Alpha\... Windows XP 32-bit (alpha) toolbar images
    BmpView\... bitmap file view sample
    GuidGen\... WTL version of the GuidGen sample
    ImageView\... Full-featured PPC frame-view application
    MDIDocVw\... WTL version of the MDI sample
    MiniPie\... port of the SDK sample for Mobile devices
    MTPad\... multithreaded notepad sample
    SPControls\... Barebone SmartPhone dialog application
    TabBrowser\... Web browser using TabView
    Wizard97Test\... Wizard97 showcase sample
    WTLExplorer\... Explorer-like application sample
 
AppWiz\
    setup70.js AppWizard setup program for VC++ .NET 2002
    setup71.js AppWizard setup program for VC++ .NET 2003
    setup80.js AppWizard setup program for VC++ 2005
    setup80x.js AppWizard setup program for VC++ 2005 Express
    Files\... WTL AppWizard for VC++ .NET 2002 and 2003 files
 
AppWizCE\
    setup80.js AppWizard setup program for VC++ 2005
    Files\... WTL AppWizard for VC++ 2005 files
 
AppWizMobile\
    setup80.js AppWizard Mobile setup program for VC++ 2005
    Files\... WTL AppWizard Mobile for VC++ 2005 files

 

 

Class Overview

 

usage:        mi base    -    a base class (multiple inheritance)
  client    -    wrapper class for a handle
  as-is    -    to be used directly
  impl    -    implements a window (has WindowProc) or other support
  helper    -    a helper class
  base    -    implementation base class

 

class name: usage: description:

App/module support
CAppModule as-is app support, CComModule derived
CServerAppModule as-is module for COM servers
CMessageLoop as-is message loop
CMessageFilter mi base message filter interface
CIdleHandler mi base idle time handler interface

Frame windows
CFrameWindowImplBase base  
CFrameWindowImpl impl frame window support
COwnerDraw impl mi base owner-draw msg map and handlers
CDialogResize impl mi base support for resizing dialogs
CDoubleBufferImpl impl mi double-buffer painting support
CDoubleBufferWindowImpl impl double-buffer painting window

MDI windows
CMDIWindow client MDI methods
CMDIFrameWindowImpl impl MDI frame window
CMDIChildWindowImpl impl MDI child window

Update UI
CUpdateUIBase base  
CUpdateUI mi base class provides support for UI update
CDynamicUpdateUI mi base class provides dynamic support for UI update

Standard controls
CStatic client static ctrl
CButton client button ctrl
CListBox client list box ctrl
CComboBox client combo box ctrl
CEdit client edit ctrl
CEditCommands mi standard edit command support
CScrollBar client scroll bar ctrl

Common controls
CImageList client image list
CListViewCtrl client list view ctrl
CTreeViewCtrl client tree view ctrl
CTreeItem helper  
CTreeViewCtrlEx client uses CTreeItem
CHeaderCtrl client header bar ctrl
CToolBarCtrl client toolbar ctrl
CStatusBarCtrl client status bar ctrl
CTabCtrl client tab ctrl
CToolTipCtrl client tool tip ctrl
CToolInfo helper  
CTrackBarCtrl client trackbar ctrl
CUpDownCtrl client up-down ctrl
CProgressBarCtrl client progress bar ctrl
CHotKeyCtrl client hot key ctrl
CAnimateCtrl client animation ctrl
CRichEditCtrl client rich edit ctrl
CRichEditCommands mi std rich edit commands support
CDragListBox client drag list box
CDragListNotifyImpl impl mi class support for notifications
CReBarCtrl client rebar ctrl
CComboBoxEx client extended combo box
CDateTimePickerCtrl client date-time ctrl
CFlatScrollBarImpl mi impl flat scroll bars support
CFlatScrollBar as-is flat scroll bars support
CIPAddressCtrl client IP address ctrl
CMonthCalendarCtrl client month calendar ctrl
CCustomDraw impl mi class custom draw handling support

Windows CE controls
CCECommandBarCtrl client command bar ctrl
CCECommandBandsCtrl client command bands ctrl

Property sheet & page
CPropertySheetWindow client  
CPropertySheetImpl impl property sheet
CPropertySheet as-is  
CPropertyPageWindow client  
CPropertyPageImpl impl property page
CPropertyPage as-is  
CAxPropertyPageImpl impl property page with ActiveX
CAxPropertyPage as-is  
CWizard97SheetWindow client  
CWizard97SheetImpl impl Wizard97 property sheet
CWizard97Sheet as-is  
CWizard97PageWindow client  
CWizard97PageImpl impl Wizard97 property page
CWizard97ExteriorPageImpl impl Wizard97 exterior page
CWizard97InteriorPageImpl impl Wizard97 interior page
CAeroWizardFrameWindow client  
CAeroWizardFrameImpl impl Aero Wizard frame
CAeroWizardFrame as-is  
CAeroWizardPageWindow client  
CAeroWizardPageImpl impl Aero Wizard page
CAeroWizardPage as-is  
CAeroWizardAxPageImpl impl Aero Wizard page with ActiveX
CAeroWizardAxPage as-is  

Common dialogs
CFileDialogImpl impl GetOpenFileName/GetSaveFileName
CFileDialog as-is  
CMultiFileDialogImpl impl Multi-select GetOpenFileName
CMultiFileDialog as-is  
CShellFileDialogImpl base  
CShellFileOpenDialogImpl impl Shell File Open dialog
CShellFileOpenDialog as-is  
CShellFileSaveDialogImpl impl Shell File Save dialog
CShellFileSaveDialog as-is  
CFolderDialogImpl impl directory picker
CFolderDialog as-is  
CFontDialogImpl impl ChooseFont common dialog
CFontDialog as-is  
CRichEditFontDialogImpl impl ChooseFont for rich edit
CRichEditFontDialog as-is  
CColorDialogImpl impl ChooseColor common dialog
CColorDialog as-is  
CPrintDialogImpl impl PrintDlg common dialog
CPrintDialog as-is  
CPrintDialogExImpl impl new Win2000 print dialog
CPrintDialogEx as-is  
CPageSetupDialogImpl impl PageSetupDlg common dialog
CPageSetupDialog as-is  
CFindReplaceDialogImpl impl FindText/ReplaceText
CFindReplaceDialog as-is  

User support
CMenu client menu support
CMenuItemInfo as-is MENUITEMINFO wrapper
CAccelerator client accelerator table
CIcon client icon object
CCursor client cursor object
CResource client generic resource object

GDI support
CDC client DC support
CPaintDC client for handling WM_PAINT
CClientDC client for GetDC
CWindowDC client for GetWindowDC
CMemoryDC client in-memory DC
CPen client GDI pen object
CBrush client GDI brush object
CLogFont as-is LOGFONT wrapper
CFont client GDI font object
CBitmap client GDI bitmap object
CPalette client GDI palette object
CRgn client GDI region object

Enhanced controls
CCommandBarCtrlImpl impl command bar
CCommandBarCtrl as-is  
CBitmapButtonImpl impl bitmap button
CBitmapButton as-is  
CCheckListViewCtrlImpl impl check list box
CCheckListViewCtrl as-is  
CHyperLinkImpl impl hyper link control
CHyperLink as-is  
CWaitCursor as-is wait cursor
CCustomWaitCursor as-is custom and animated wait cursor
CMultiPaneStatusBarCtrlImpl impl status bar with multiple panes
CMultiPaneStatusBarCtrl as-is  
CPaneContainerImpl impl pane window container
CPaneContainer as-is  
CSortListViewImpl impl sorting list view control
CSortListViewCtrlImpl impl  
CSortListViewCtrl as-is  
CTabViewImpl; impl tab view window
CTabView as-is  

Scrolling window support
CScrollImpl impl mi scrolling support
CScrollWindowImpl impl scrollable window
CMapScrollImpl impl mi scrolling support with map modes
CMapScrollWindowImpl impl scrollable window with map modes
CZoomScrollImpl impl mi zooming support
CZoomScrollWindowImpl impl zooming window
CScrollContainerImpl impl scroll container window
CScrollContainer as-is  

Splitter window support
CSplitterImpl impl mi splitter support
CSplitterWindowImpl impl splitter window
CSplitterWindow as-is  

Theming support
CTheme client Windows XP theme
CThemeImpl impl theming support for a window

Buffered paint and animation support
CBufferedPaint as-is buffered paint
CBufferedPaintImpl impl mi buffered paint support
CBufferedPaintWindowImpl impl window with buffered paint
CBufferedAnimation as-is buffered animation
CBufferedAnimationImpl impl mi buffered animation support
CBufferedAnimationWindowImpl impl window with buffered animation

Edit and RichEdit Find/Replace support
CEditFindReplaceImplBase base  
CEditFindReplaceImpl mi Edit Find/Replace support
CRichEditFindReplaceImpl mi RichEdit Find/Replace support

Printing support
CPrinterInfo as-is print info support
CPrinter client printer handle wrapper
CDevMode client DEVMODE wrapper
CPrinterDC client printing DC support
CPrintJobInfo client print job info
CPrintJob client print job support
CPrintPreview mi print preview support
CPrintPreviewWindowImpl impl print preview window
CPrintPreviewWindow as-is  
CZoomPrintPreviewWindowImpl impl zooming print preview window
CZoomPrintPreviewWindow as-is  

Miscellaneous
CSize as-is WTL port of MFC's CSize
CPoint as-is WTL port of MFC's CPoint
CRect as-is WTL port of MFC's CRect
CString as-is WTL port of MFC's CString
CWinDataExchange mi data exchange for controls
CRecentDocumentList mi or as-is support for MRU list
CFindFile as-is file search support

In-memory dialog
CMemDlgTemplate as-is In-memory dialog template
CIndirectDialogImpl impl In-memory dialog class

Task dialog
CTaskDialogImpl impl Task Dialog in Vista
CTaskDialog as-is  

Windows CE support
CStdDialogBase base standard dialog base class
CStdDialogImpl impl standard dialog implementation
CStdSimpleDialog as-is standard simple dialog
CStdDialogResizeBase base orientation aware standard dialog base class
CStdDialogResizeImpl impl orientation aware standard dialog implementation
CStdSimpleDialogResizeImpl impl standard resizing simple dialog implementation
CStdOrientedDialogBase base oriented dialog base class
CStdOrientedDialogImpl impl oriented dialog implementation
CStdSimpleOrientedDialog as-is standard simple oriented dialog
CAppInfoBase base application state save/restore to registry
CAppInfoT impl CAppInfoBase constructed from a CAppWindow<T>
CAppWindow<> mi PPC/SmartPhone well-behaved application window class
CAppDialog mi PPC/SmartPhone well-behaved application non-modal dialog class
CAppStdDialogImpl impl PPC/SmartPhone implementation of non-modal standard dialog application
CFullScreenFrame impl Full screen frame class
CZoomScrollImpl mi WinCE zooming implementation
CHtmlCtrl client HTML control
CRichInkCtrl client RichInk control
CInkXCtrl client InkX control
CVoiceRecorderCtrl client VoiceRecorder control
CDocListCtrl client DocList control
CCapEdit client CapEdit control
CTTStatic client TT Static control
CTTButton client TT Button control
CSpinCtrl client Spin control
CSpinListBox client Spin List Box control
CExpandListBox client Expand List Box control
CExpandEdit client Expand Edit control
CExpandCapEdit client Expand CapEdit control

 

 

ATL/WTL AppWizard

 

ATL/WTL AppWizard generates starting code for a WTL application. It has options to create code for different application types and features.

 

You can choose the following options:

 

ATL/WTL AppWizard supports VC++ .NET 2002 and 2003,and VC++ 2005.

 

 

Support for Windows CE

 

WTL now fully supports building projects for the Windows CE platforms. This initial support for Windows CE was implemented primarily for eMbedded Visual C++ 4.0 with Pocket PC 2003 and SmartPhone 2003 SDKs. However, it can be used with other versions and configurations. For instance, Standard SDK 4.1 or 5.0 is supported as well. Considerable effort was made to provide the best Windows CE support, however, there might be some limitations because different platforms provide different programming support. SmartDevice projects with Visual Studio 2005 are also supported, and it also includes an AppWizard for VS2005.

 

The support for Windows CE was not designed to port projects for the desktop version of Windows as-is to the Windows CE platforms, but to allow use of the same library, WTL, for both desktop Windows and Windows CE. Applications for Windows CE are often designed in a different way, and they use different platform services. WTL depends on the version of ATL provided with each Windows CE platform, and supports controls and services that are appropriate and supported for each Windows CE platform.

 

 

Support for Visual C++ 2005 Express

 

WTL 8.0 supports using Visual C++ Express Edition to build projects. Since Visual C++ 2005 Express ships without ATL, you have to use a version of ATL that ships with the Platform SDK.

 

The WTL App Wizard can be installed by running AppWiz\setup80x.js program. The App Wizard generates code in the stdafx.h file that allows use of ATL3 from the Platform SDK. That code is used if WTL_USE_SDK_ATL3 is defined, so you can comment the line in stdafx.h that defines WTL_USE_SDK_ATL3 to use the project with different versions of Visual C++ or ATL.

 

Note that Release builds will generate some warnings, since ATL3 from Platform SDK is an old version of ATL which doesn't quite match the newer compiler and CRT files. You can ignore those warnings, as they do not indicate any real problems with the code.

 

 

Notes

 

~    WTL provides several classes that are also present in ATL 7.0 and 7.1. The classes are: CSize, CPoint, CRect, and CString in atlmisc.h. While their existence will not cause any problems, their usage might. You should qualify the class you want to use with a namespace to resolve ambiguity, either ATL or WTL namespace, depending on which implementation you want to use. Alternatively, you can conditionally exclude WTL implementations, by defining preprocessor symbol _WTL_NO_WTYPES for CSize, CPoint, and CRect; and _WTL_NO_CSTRING for CString.

 

~    If you use WTL 8.0 with VC++ 6.0/ATL 3.0 and define _ATL_STATIC_REGISTRY, you'll get errors referring to the ambiguous symbol ATL. This is caused by a bug in ATL 3.0 - in atlbase.h, the file statreg.h is included inside of the ATL namespace, and it contains another namespace ATL declaration. Because of that, the compiler cannot decide between ATL:: and ATL::ATL:: namespaces. The solution is either to fix the atlbase.h, or to surround atlbase.h include declaration with following statements:

 

    #define ATL   ATLFIX

    #include <atlapp.h>

    #undef ATL

    namespace ATL = ::ATLFIX;

 

~    Windows XP allows applications to use Common Controls version 6, which supports only Unicode applications. While WTL allows creation of Ansi applications that use Common Controls 6, that should be used only for test programs and is not recommended or supported for released projects. If you want to use Common Controls 6, build your application as Unicode.

 

~    If you build your app that hosts ActiveX controls with VC++ 7.x, you can see this assert failing:

    !InlineIsEqualGUID(*m_plibid, GUID_NULL) && "Did you forget to pass the LIBID to CComModule::Init?"

There are two ways to fix this:

~    Several of the sample programs included with WTL were extended to support building for Windows CE. These samples are not specially redesigned for Windows CE, but just modified to allow you to compile and run them on the Windows CE platforms. The samples are: BmpView, GuidGen, and MTPad.

 

~    WTL supports building projects with EVC++ 3.0 only for Pocket PC and Pocket PC 2002 platforms, as other platforms don't provide minimum support for ATL or other required libraries.

 

~    The old AppWizards for VC++ 6.0 and eVC++ 4.0/3.0 are not included in this version of WTL because they cannot be a part of an Open Source project. They are still available in the previous release, WTL 7.1.

 

 

Changes Between WTL 8.0 And 7.5

 

New and improved:

RunTimeHelper functions for correct struct sizes on different versions of Windows
ModuleHelper functions for uniform support of ATL3 and ATL7 module classes
SecureHelper functions for support of secure and non-secure run-time functions
Support for new Vista features:

New TabView classes
New dialog class that uses in-memory dialog templates
New CMultiFileDialogImpl and CMultiFileDialog classes that support multi-select file dialogs
Added message cracker handler prototypes for all handlers
Replaced use of _alloca with CTempBuffer everywhere (and added CTempBuffer version for ATL3)
New classes for find/replace support for Edit or RichEdit
New class CFileDialogEx that supports GetOpenFileNameEx for Windows Mobile 5
New features for the App Wizard:

Updates for the desktop App Wizard:

Support for VC2005 Express:

New AppWizard for Mobile 2003 and 2005 platforms
New samples:

MTPad sample updated to show usage of CRichEditFindReplaceImpl and CEditCommands/CRichEditComma

 

Fixes and enhancements:

Command Bar:

 

CFolderDialog:

 

Scroll Windows:

 

App Wizard:

 

App Wizard CE:

 

Cracked Handlers:

 

CDialogResize:

 

CFrameWindowImpl:

 

Windows CE:

 

CFindFile:

 

General:

 

Misc:

 

 

Changes Between WTL 7.5 And 7.1

 

New and improved:

VS2005 Compatibility: Added support for Visual Studio 2005 - both desktop and Windows CE
Classes for icons, cursors, accelerator tables
CSortListViewImpl, CSortListViewCtrlImpl, and CSortListViewCtrl classes
Impl classes for Wizard 97 style wizards: CWizard97Sheet, CWizard97Page, CWizard97ExteriorPage, CWizard97InteriorPage
CMemoryDC and CDoubleBufferWindowImpl classes
Windows CE specific classes in new header, atlwince.h
CScrollContainer class
CZoomScrollImpl and CZoomScrollWindowImpl classes
CZoomPrintPreviewWindowImpl and CZoomPrintPreviewWindow classes
Global functions: AtlGetBitmapResourceInfo, AtlGetBitmapResourceBitsPerPixel
New REFLECT_* macros to enable selective reflection of messages
App Wizard: Added App Wizard for VS2005
App Wizard: Added App Wizard for Windows CE for VS2005
New samples: WTLExplorer, ImageView, SPControls
 

Fixes and enhancements:

Command Bar:

 

MDI Command Bar:

CString:

CScrollImpl:

 

CMapScrollImpl:

 

CTheme:

 

CFrameWindowImpl:

 

CDialogResize:

 

CReBarCtrl:

 

CRichEdit:

 

CHyperLink:

CPropertySheetImpl:

 

CFolderDialog:

 

Update UI:

 

CDC:

 

Printing:

 

AppWizard:

 

General:

 

Misc:


 

Changes Between WTL 7.1 And 7.0

 

New and improved:

VC7 Compatibility: Support for ATL7 Module classes and critical sections and AppWizard setup for VC++ 7.1

Windows CE Support: Full compatibility with Windows CE platforms and AppWizard for eMbedded Visual C++

Namespace Support: Automatic "using ATL" (ATL7 only) or "using WTL" can now be turned off

CHyperLink New Features: not underlined, underlined when hover, command button, link tags

CCustomWaitCursor class supports custom and animated wait cursors

AtlCreateBoldFont() for creating bold version of an existing font

 

Fixes and enhancements:

CFrameWindowImpl:

 

UpdateUI:

 

DDX:

 

Command Bar:

 

MDI Command Bar:

 

AppWizard:

 

CTreeViewCtrl:

 

CThemeImpl:

 

CFolderDialog:

 

CDialogResize:

 

CAppModule:

 

CString:

 

CRecentDocumentList:

 

Misc:

 

General:

 

 

Changes Between WTL 7.0 And 3.1

 

New classes and features:

Support for new Common Controls v6 messages

Support for Visual Studio .NET and ATL 7.0

WTLApp70 - new AppWizard for Visual Studio .NET

CThemeImpl - implements support for Windows XP themes

CMDICommandBarCtrl - implements Command Bar for MDI applications

 

Fixes and enhancements:

Command Bar:

 

CFrameWindowImpl:

 

Update UI:

 

CString:

 

CDC:

 

CListViewCtrl:

 

CRichEditCtrl:

 

CHyperLink:

 

CColorDialog:

 

atlcrack.h:

 

atlapp.h:

 

atlctrls.h:

 

CRecentDocumentList:

 

CSplitterWindow:

 

Printing:

 

Misc:

 

AppWizard:

 

Samples:

 

 

Changes Between WTL 3.1 And 3.0

 

New classes:

CPaneContainer - implements a window that provides a title bar and a close button (like Explorer)

CDialogResize - an MI class that allows resizing of dialogs (or any windows with child windows/controls)

CAxPropertyPageImpl - implements a property page that can host ActiveX controls

 

Fixes and enhancements:

CServerAppModule now clears m_hEventShutdown to avoid calling CloseHandle twice

 

CString:

 

CEdit and CRichEditCtrl: SetSelAll and SetSelNone had reversed implementation

 

atlres.h: Changed IDs so that they are compatible with MFC's afxres.h

 

Command Bar:

 

CBitmapButton:

 

CDC:

 

CMenu:

 

GDI and USER classes should destroy the GDI/USER objects in Attach if GDI/USER resource is managed

 

CFrameWindowImpl:

 

CRecentDocumentList:

 

Update UI:

 

CSplitterWindow:

 

atlcrack.h: Added handlers for following new messages:
    WM_APPCOMMAND
    WM_NCXBUTTONDOWN
    WM_NCXBUTTONUP
    WM_NCXBUTTONDBLCLK
    WM_XBUTTONDOWN
    WM_XBUTTONUP
    WM_XBUTTONDBLCLK

 

Win64:

 

Misc:

 

AppWizard:

 

- end of readme.htm -