Windows Template Library - WTL 10 version 10.0.10320 Release (2020-11-15)

Copyright © 2020 Microsoft Corporation, WTL Team. 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 Public License (http://opensource.org/licenses/MS-PL) which can be found in the file MS-PL.txt at the root folder.


Welcome to the Windows Template Library, version 10. 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 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.

WTL classes can be used with all versions of VC++ from 2005 to the newest, 2019. AppWizard for Visual Studio 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 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.

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.

Compiler/IDE/ATL support:


Windows SDK support (optional):

Note: Visual C++ 2005 is the only version that requires use of external Windows SDK, all other versions of Visual C++ can use bundled Windows SDK.



Packing List


File Name: Description:

readme.html this file
MS-PL.txt Microsoft Public 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
    atldwm.h DWM support 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
    atlribbon.h RibbonUI support
    atlscrl.h scrollable windows
    atlsplit.h splitter windows
    atltheme.h Windows XP theme classes
    atluser.h menu class, USER object classes
    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
    MDIDocVw\... WTL version of the MDI sample
    MemDlg\... In-memory dialog sample
    MTPad\... multithreaded notepad sample
    MTPad7\... MTPad with RibbonUI
    TabBrowser\... Web browser using TabView
    Wizard97Test\... Wizard97 showcase sample
    WTLExplorer\... Explorer-like application sample
 
AppWiz\
    setup.js AppWizard setup program for all versions of Visual Studio
    Files\... WTL AppWizard 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

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  
CSimpleFileDialog as-is no customization
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
CWinDataExchange mi data exchange for controls
CRecentDocumentList mi or as-is support for MRU list
CFindFile as-is file search support
CRegProperty as-is registry properties support
CRegPropertyImpl impl registry properties via map

In-memory dialog
CDialogBaseUnits helper dialog units helper
CMemDlgTemplate as-is In-memory dialog template
CIndirectDialogImpl impl In-memory dialog class

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

DWM classes
CDwm client DWM handle warapper
CDwmImpl impl base DWM support
CDwmWindow impl DWM window support
CDwmThumbnail client DWM thumbnail wrapper
CAeroControlImpl impl support for Aero controls

Ribbon classes
CRibbonUpdateUI mi base automatic mapping of ribbon UI elements
RibbonUI::CtrlImpl base impl base class for all ribbon controls
RibbonUI::CommandCtrlImpl base impl base class for ribbon controls
RibbonUI::CollectionImplBase base base class for all RibbonUI collections
RibbonUI::CollectionImpl impl RibbonUI collections
RibbonUI::CollectionCtrlImpl impl for ribbon collection controls
RibbonUI::ToolbarGalleryCtrlImpl base impl for ribbon toolbar gallery controls
RibbonUI::CRibbonImpl impl Ribbon implementation class
CRibbonFrameWindowImplBase base base frame class for Ribbon
CRibbonFrameWindowImpl impl Ribbon frame window class
CRibbonMDIFrameWindowImpl impl Ribbon MDI frame window class
CRibbonPersist as-is Ribbon persistance support



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++ 2005, 2008, 2010, 2012, 2013, 2015, 2017, and 2019.



How to use WTL in an MFC project

If you want to use WTL in an MFC project, you need to put these 2 lines before including atlapp.h:

namespace ATL { using ::CString; };
#define _WTL_NO_AUTOMATIC_NAMESPACE

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.




WTL Releases


History

WTL 10 2020
WTL 9.1 2015
WTL 9.0 2014
WTL 8.0 2007
WTL 7.5 2005
WTL 7.1 2003
WTL 7.0 2002
WTL 3.1 2000
WTL 3.0 1999


Changes Between WTL 10 and 9.1

New and improved:

Full compatibility with VS2017 and VS2019
Full C++ Standards compliance and support for compiling with /permissive- flag
Full support for strict const-qualification conformance (/Zc:strictStrings)
New classes: CRegProperty and CRegPropertyImpl<> for properties stored in registry
New class: CSimpleFileDialog - fixed common dialog that does not use OFN_ENABLEHOOK
Added support for MFC Dynamic Dialog Layout resource format
App Wizard:


Fixes and enhancements:

General:


Controls:


Splitter:


TabView:


Ribbon:

Cracked Handlers:


Clang specific fixes:


AppWizard:


Removed legacy features:

Removed support for older version of Visual Studio and old SDKs
Removed support for WinCE (and AppWizardCE)
Removed support for _ATL_MIN_CRT and use of MinCrtHelper
Removed WTL implementation of CPoint/CSize/CRect/CString (use ATL)
Removed use of _WTYPES_NS and _CSTRING_NS
Define _WTL_NEW_PAGE_NOTIFY_HANDLERS always
    (added _WTL_FORCE_OLD_PAGE_NOTIFY_HANDLERS to turn it off)
Removed use of _ATL_NO_OLD_NAMES, _ATL_USE_NEW_PRINTER_INFO, _ATL_NO_COM
Removed _ATL_USE_CSTRING_FLOAT and _ATL_USE_DDX_FLOAT (use float always)
Removed use of _ATL_NO_MSIMG
Removed support for RichEdit 1.0
atlfind.h: Removed shadow buffer and added a warning/assert instead
Removed use of _TrackMouseEvent() and used TrackMouseEvent() directly
Removed use of CRegKeyEx (not needed any more)
Removed support for _SECURE_ATL and use of SecureHelper functions (now always secure)
Always use themes - Moved uxtheme.h and uxtheme.lib to atlapp.h
Removed AtlIsOldWindows() and its use in the code
AppWizard:


Changes Between WTL 9.1 and 9.0

New and improved:

Full compatibility with VS2015
NuGet support and package
Microsoft Public License (MS-PL)
New sample: MemDlg - demonstrates use of in-memory dialogs


Fixes and enhancements:

Fixes for code analysis warnings
Fixes for strict const-qualification conformance (/Zc:strictStrings)
CEditFindReplaceImpl::UseShadowBuffer(): Use AtlGetCommCtrlVersion() instead of GetProcAddress()
Misc improvements: missing initialization, undefined messages, better #ifdefs
CFrameWndClassInfo: Use GetSystemMetrics() for icon sizes
BEGIN_MSG_MAP_EX and BEGIN_DDX_MAP: Fix for C4555: expression has no effect
CResource::LoadEx(): Fix for the wrong order for parameters to ::FindResourceEx()
CPaneContainerImpl:

CImageListManaged: Fix for assert when using attach or operator =
WTLExplorer sample cleanup
GenericWndClass::Register(): Fix for Windows CE
App Wizard: Improved code for generating project configurations
CSplitterImpl::OnCaptureChanged(): Fixed so it moves splitter bar only if move was in progress
CDynamicUpdateUI::UIRemoveUpdateElement() leaks memory if UPDUI_TEXT is set
CToolInfo and CToolTipCtrl: nIDTool argument should be UINT_PTR instead of UINT
CSplitterImpl: Added GetSplitterPosPct()
CCommandBarCtrlImpl: Fixed incorrect use of m_wndParent when AttachToWindow() is used


Changes Between WTL 9.0 and 8.0

New and improved:

Full compatibility with VS2008, VS2010, VS2012, and VS2013
New CRegKeyEx class for uniform support for registry
New MinCrtHelper functions for uniform support for _ATL_MIN_CRT
New DWM classes in atldwm.h
New Ribbon classes in atlribbon.h
New CDialogBaseUnits class
Extended DDX support to TabCtrl, ComboBox, ListBox and ListView selection index
Improved font handling in CHyperLink, CPaneContainer, CTabView
CHyperlink: Added options for auto-create link font and single-line mode
CBitmapButtonImpl: Added checked state, GetCheck()/SetCheck(), and check mode extended styles
UpdateUI: Added support for radio menu items for popup menus
Added support for new VersionHelpers.h in WinSDK 8.1 - GetVersionEx() is now deprecated
Improved global support for old SDK headers, and for original headers in VC6 and VC7.x
Global support for builds with NOMINMAX defined
Global support for builds with STRICT_TYPED_ITEMIDS defined
Global support for builds with _ATL_ALL_USER_WARNINGS defined
Splitter Window:

Added CImageListManaged to manage the lifetime of wrapped image list
Added Vista standard menu bar look option for Command bar
Added new Rich Edit wrappers for _RICHEDIT_VER >= 0x0800
Added new Win8 methods to Theme classes
Added override of SubclassWindow() to CSplitterWindowImpl, CPaneContainerImpl, CTabViewImpl,
  CScrollImpl, CMapScrollImpl, CZoomScrollImpl, and CScrollContainerImpl
CZoomScrollImpl:

AppWizard:

Updated samples and added VS2005 project files
New sample: MTPad7 - demonstrates Ribbon UI


Fixes and enhancements:

General:


Controls:


Cracked Handlers:


App Wizard:


App Wizard CE / App Wizard Mobile:


Misc:


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/CRichEditCommands


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