OWLNext Releases
This page documents the OWLNext releases in reverse chronological order. For information about the ongoing development, see our Roadmap.
There are three kinds of releases for OWLNext: major release, minor release and patch. A major release comes with API and implementation changes comprising new features, enhancements and fixes. We call this a "series". Minor releases and patches deliver additional features, enhancements and fixes within a series and are generally backward compatible. A patch (also known as an "update") is binary compatible with the ABI of the previous version, as to support DLL replacement. In a patch, we change only the third part of the full version number, and hence the names of the library files, using a two-part ("major" and "minor") version number, do not change.
Note on prereleases: The library may be available in an unfinished state for community feedback and testing. Such a version of the library is called a prerelease, also known as a beta. A prerelease of the library is never guaranteed to be binary compatible with the previous version, and consequently, the library files are given three-part version numbers, and the OWL_PRERELEASE flag is set. For a discussion about the usage of beta versions in production code, see our FAQ.
Note on semantic versioning: Since version 7, we aim to use semantic versioning (SemVer) for our releases. However, we have not followed the SemVer specification for our older releases, and we may not strictly follow SemVer in the maintenance of our LTS versions — these may occasionally break the API in a minor release, whenever we feel it is warranted, as to support users of these old versions.
7 series
Version 7.0 was released 2020-05-19, starting a new series based on modern C++17.
Major new features
Major features and improvements compared to the 6.40 series:
- C++17 standard conformance
-
The OWLNext code is now conformant with the C++17 standard (including the "/permissive-" flag for Visual C++). All further development will be based on C++17 as a minimum.
- Support for version 6 of the Windows API
-
Support for API extensions introduced with Windows Vista, including new messages and notifications (such as NM_TVSTATEIMAGECHANGING used in OWLMaker's LibrariesPage). Setting of _WIN32_WINNT to 0x0600 (_WIN32_WINNT_VISTA) as the default in "wsysinc.h". Ending of support for Windows XP, as this version is no longer supported by Microsoft.
- Message dispatch improvements
-
Further improvements to the new implementation of message dispatch introduced in 6.40 (see Windows Message Dispatch in OWLNext).
- Enhancements and bug fixes
-
A lot of improvements have been made. For example, there are many extensions to TListViewCtrl (thanks to Joe Slater). TRegKey has been made more robust, with more features and better documentation. TGlyphButton now supports TIcon. TWindow::SetTextColor and GetTextColor have been added. TWindow::SetWindowFont now supports TFont with ownership management for much simpler use. The new utility function to_tstring supports easy conversion from integer, from std::filesystem::path and between narrow ANSI strings and wide Unicode strings. Compatibility with Windows Sockets 2 has been added. The new member function TWindow::GetChildren allows simple and standard C++ style iteration over child windows, such as range-based for-loops and standard algorithms. Numerous fixes have been made, such as correcting the short-circuiting behaviour of TDocument::NotifyViews (a long-standing bug since the original OWL), and eliminating the exception-safety issue with dynamic allocations in default arguments. See the bugs and feature-requests ticket trackers for the full details.
- Updated compiler support
-
Full support for Visual Studio 2019-2022 and improved support for Embarcadero RAD Studio/C++Builder 10.3-12 (more build modes are now supported in OWLMaker, precompiled header usage has been enabled, and the compiler's multi-threading option is supported for faster builds).
Revisions
The following sections give a summary of changes in released versions. For the detailed record of changes to the source code, see the log for the release branch in the Subversion source code repository (branches/7.0).
Version 7.0.12 (6759)
- Support for Embarcadero RAD Studio/C++Builder 12 Athens [feature-requests:#239].
- Fixed: Font change in SetupWindow is ignored (regression in 7.0) [bugs:#507].
- Fixed: Problems with the implementations of EM_SETMARGINS and EM_GETMARGINS [bugs:#559].
Version 7.0.11 (6529)
- Made "update_version_header.bat" more robust [r6493].
- Fixed: Link errors due to missing export attributes [bugs:#550].
Version 7.0.10 (6352)
- Fixed: THdrItem constructors do not initialize all members [bugs:#546].
Version 7.0.9 (6239)
- Fixed: WinMain fails to parse unquoted argument (regression in 6.40) [bugs:#541].
Version 7.0.8 (6046)
- Added ability to change the text background color in TRichEditView [feature-requests:#199].
- Fixed: TCharFormat::SetBkColor is not working [bugs:#529].
- Fixed: TCharFormat::SetSpacing is not working [bugs:#530].
- Fixed: Buffer overflow in TCharFormat::SetFaceName, GetFontInfo and SetFontInfo [bugs:#531].
- Fixed: Minor TNoteTab rendering issues [r6010][r6011].
- Fixed: TImageList copy and assignment do not work [bugs:#538].
Version 7.0.7 (5828)
Version 7.0.6 (5690)
- Fixed: Code issues reported by PVS Studio [bugs:#504].
- Fixed: TNoteTab scroll buttons are invisible in Windows 11 [bugs:#505].
Version 7.0.5 (5589)
- Support for Visual Studio 2022.
- Export function OWLGetModule [feature-requests:#177].
- Fixed: Eliminated warning messages about conversion from signed to unsigned values in response tables [discussion:5e2783b4ce].
- Fixed: TComboBoxEx::HasEditChanged returns the opposite result [bugs:#492].
- Fixed: TCoolEdit::CePasteEnable crashes if clipboard is busy [bugs:#497].
- Fixed: TOcRegistrar constructor ignores options amNoRegValidate and amQuietReg (regression in 7.0) [bugs:#498].
Version 7.0.4 (5370)
Version 7.0.3 (5339)
- Fixed: Whitespace in include statement argument [bugs:#482].
- Fixed: TFrameWindow::IdleAction sends WM_INITMENUPOPUP without matching WM_UNINITMENUPOPUP [bugs:#484].
Version 7.0.2 (5314)
- TWindow now logs class name and ID when failing to create [feature-requests:#170].
- Fixed: TSplitterIndicator drawn in wrong place on a high DPI monitor [bugs:#474].
- Fixed: Child windows are leaked (regression in 7.0) [bugs:#475].
- Fixed: TFileName::Squeezed returns garbage for root folders [bugs:#476]
- Fixed: TFileName::Title uses wrong buffer size in Unicode builds [bugs:#476].
- Fixed: TUrlLink uses outdated WinHelp [bugs:#477].
- Fixed: Dragging a control bar does not draw a frame in some programs [bugs:#479].
- Fixed: TCmdLine bug with quoted arguments [bugs:#481].
- Fixed: Missing implementation of TWindowClassName::GetString [r5305].
Version 7.0.1 (5213)
- Support for Embarcadero RAD Studio/C++Builder 10.4 Sydney [feature-requests:#160].
- Fixed: Context menu displayed in upper left corner [bugs:#463].
- Fixed: Small bug in TOleFrame::EvOcAppBorderSpaceSet [bugs:#464].
- Fixed: Incorrect OWL_LIB_COMPILER_VERSION [bugs:#467].
- Fixed: TConfigFile::ReadString fails when output string and default string are aliases (regression in version 7.0.0 [r4842]) [bugs:#468].
- Fixed: TColor::Merge produces wrong result [bugs:#470].
Version 7.0.0 (4982)
- Initial release of the 7 series.
See the version 7 milestone reports for bug fixes and new features, as well as the code log.
6.40 series
After years of preliminary 64-bit support in the 6.30 series, OWLNext 6.40 Beta was finally released 2014-06-29, providing official support for 64-bit compilation. Version 6.40 went into stable release mode with 6.40.5 on Friday 2014-12-12. Versions 6.41 to 6.44 are mainly bug-fix releases with additional compiler support.
With the release of version 7.0, version 6.44 entered Long-Term Support mode 2020-05-19, as a stable backwards compatible version with support for older compilers. No further features are planned for the 6.40 series, except for any eventual bug fixes and compiler support.
Major new features
Major features and improvements compared to version 6.36:
- Completion of 64-bit support
-
Clean 64-bit build option producing binary targets for 64-bit Windows (see 64-bit OWLNext).
- Message dispatch overhaul
-
New type-safe implementation of response tables, based on compile-time look-up of class template specializations, and message dispatchers with full support for 64-bit arguments. For an overview of the changes, see Changes in OWLNext. For more detail on the new solution, see Windows Message Dispatch in OWLNext.
- Support for GDI+
-
Basic support for GDI+ has been added in the new header "include/owl/gdiplus.h" [feature-requests:#64].
- Enhancements to TListViewCtrl, TNoteTab and persistent streams
-
A few usability enhancements in the API and implementation for TListViewCtrl and TNoteTab. For example, TNoteTab can now draw tabs in modern style. See Tabbed Test Case. Persistent streams have been made more performant (since 6.44.2) [feature-requests:#116].
- Code fixes and updated compiler support
-
Support for 32-bit and 64-bit compilation with Visual Studio 2010-2022 and RAD Studio/C++Builder XE6-12. Added support for the new Clang-based toolsets in RAD Studio/C++Builder. Dropped support for Borland C++, C++Builder 2009-XE5 and Visual C++ 2008, allowing further modernisation of the code and removal of workarounds (see Supported Compilers).
Revisions
The following sections give a summary of changes in released versions. For the detailed record of changes to the source code, see the log for the release branch in the Subversion source code repository (branches/644).
Version 6.44.22 (6758)
Version 6.44.21 (6528)
- Support for Embarcadero RAD Studio/C++Builder 11.3 Alexandria.
- Made "bcmake.bat" and "update_version_header.bat" more robust [r6491].
- Fixed: Invalid Boost path causes OWLNext build errors with BCC32 toolset [bugs:#549].
- Fixed: Link errors due to missing export attributes [bugs:#550].
Version 6.44.20 (6350)
- Fixed: THdrItem constructors do not initialize all members [bugs:#546].
Version 6.44.19 (6238)
- Fixed: WinMain fails to parse unquoted argument (regression in 6.40) [bugs:#541].
Version 6.44.18 (6045)
- Added ability to change the text background color in TRichEditView [feature-requests:#199].
- Fixed: TCharFormat::SetBkColor is not working [bugs:#529].
- Fixed: TCharFormat::SetSpacing is not working [bugs:#530].
- Fixed: Buffer overflow in TCharFormat::SetFaceName, GetFontInfo and SetFontInfo [bugs:#531].
- Fixed: TImageList copy and assignment do not work [bugs:#538].
Version 6.44.17 (5826)
Version 6.44.16 (5688)
Version 6.44.15 (5586)
- Support for Visual Studio 2022.
- Export function OWLGetModule [feature-requests:#177].
- Fixed: TArrayAsVector fails to compile when using Clang based C++Builder [bugs:#487].
- Fixed: TSArrayAsVector and TISArrayAsVector (arrays.h) fails to compile when using Clang based C++Builder [bugs:#488].
- Fixed: TSet (classlib/sets.h) fails to compile with Clang C++Builder [bugs:#489].
- Fixed: TQueueAsDoubleList (classlib/queues.h) fails to compile when using Clang C++Builder [bugs:#490].
- Fixed: TDequeAsVector and TIDequeAsVector (classlib/deques.h) fails to compile with Clang C++Builder [bugs:#491].
- Fixed: TComboBoxEx::HasEditChanged returns the opposite result [bugs:#492].
- Fixed: Eliminated warning messages about conversion from signed to unsigned values in response tables [discussion:5e2783b4ce].
- Fixed: TCoolEdit::CePasteEnable crashes if clipboard is busy [bugs:#497].
Version 6.44.14 (5369)
Version 6.44.13 (5338)
- Fixed: Whitespace in include statement argument [bugs:#482].
- Fixed: TFrameWindow::IdleAction sends WM_INITMENUPOPUP without matching WM_UNINITMENUPOPUP [bugs:#484].
Version 6.44.12 (5313)
- TWindow now logs class name and ID when failing to create [feature-requests:#170].
- Fixed: TSplitterIndicator drawn in wrong place on a high DPI monitor [bugs:#474].
- Fixed: TFileName::Squeezed returns garbage for root folders [bugs:#476]
- Fixed: TFileName::Title uses wrong buffer size in Unicode builds [bugs:#476].
- Fixed: TUrlLink uses outdated WinHelp [bugs:#477].
- Fixed: Missing parameter for TOcRegistrar constructor in "examples/tutorial" [r5273].
- Fixed: Dragging a control bar does not draw a frame in some programs [bugs:#479].
- Fixed: TCmdLine bug with quoted arguments [bugs:#481].
Version 6.44.11 (5208)
Version 6.44.10 (4886)
- Added an example of how to use CrystalReports.NET from OWLNext.
- Fixed: TRegexp pattern match error [bugs:#454].
- Fixed: TRegValue::operator uint8* is not implemented [bugs:#455].
- Fixed: TRegistry::Update and Validate do not work [bugs:#456].
- Fixed: TTipDialog::ReadSettings and WriteSettings do not work [bugs:#458].
- Fixed: TRegConfigFile::ReadString error is undetectable [bugs:#459].
- Fixed: TConfigFile::ReadString replaces empty string by default [bugs:#460].
Version 6.44.9 (4727)
- Added TThreadProgressDlg example in "examples/classes".
- Fixed: OWLExt TThreadProgressDlg is not working [bugs:#449].
- Fixed: TWindow::ModifyStyle ignores swpFlags [bugs:#450].
- Fixed: Crash calling TWindow::FormatMessageBox from TEditFile [bugs:#451].
- Fixed: Parameter typo in the definition of W2CAB; "bif" should be "buf" [r4702].
- Fixed: Missing include "owl/color.h" in "configfl.cpp" [r4708].
Version 6.44.8 (4643)
- Fixed: Unintended TBitmap/TBrush/TPalette constructor selected for pointer arguments (regression in 6.34) [bugs:#444].
- Fixed: TUIFace::PaintIcon leaks bitmap resources [bugs:#446].
- Fixed: TListViewCtrl::GetExtStyle returns bool instead of uint32 [bugs:#448].
Version 6.44.7 (4618)
- Fixed: Owner-drawn controls using TDrawItem do not work in 64-bit builds [bugs:#443].
- Fixed: TStatic::Transfer returns 0 for tdSizeData (regression in 6.32) [bugs:#445].
Version 6.44.6 (4577)
- Fixed: Corrected typo in the documentation of TLayoutMetrics [r4535].
- Fixed: Reinstated flicker-free painting of TGlyphButton (regression in 6.34) [feature-requests:#7].
- Fixed: TGlyphButton::TLayoutStyle::lsNone does not work [bugs:#438].
- Fixed: TBS_TOOLTIPS not working correctly in debug builds [bugs:#439].
Version 6.44.5 (4503)
- Fixed: THexDocument crashes on destruction [bugs:#430].
- Fixed: TCoolFileBuffer::Save does not handle clStyleAutomatic properly [bugs:#434].
- Fixed: Eliminated warnings about unreachable code in "include/owl/dispatch.h".
Version 6.44.4 (4423)
- Added TDragList example to the Classes project, and made some fixes and enhancements.
- Fixed: Vector subscript out of range in TListBox::GetSelIndexes [bugs:#429].
Version 6.44.3 (4384)
Version 6.44.2 (4137)
- Made a performance improvement for persistent streams [feature-requests:#116].
- Fixed: OWLExt build fails (regression in 6.44.1) [bugs:#390].
- Fixed: TDoubleValidator::Adjust hides virtual TValidator::Adjust (regression in [r426]) [r3997].
- Fixed: TWindow::WinHelp has old 32-bit truncating signature [bugs:#391].
- Fixed: TExpandableComboBox truncates argument to TComboBox::SetItemData [bugs:#392].
- Fixed: TCtxHelpFileManager::CmHelpSearch truncates argument to TWindow::WinHelp [bugs:#393].
- Fixed: THarborManagement::InsertToolbarMenuItem truncates HMENU into UINT [bugs:#394].
- Fixed: Hint text fails for popup in TOleWindow::EvMenuSelect [bugs:#395].
- Fixed: Buffer overrun in THexViewWnd::GetLineData [bugs:#396].
- Fixed: ForwardEvent has old 32-bit truncating signature [bugs:#397].
- Fixed: Ill conceived PRECONDITION in TDC::ExtTextOut (regression in 6.32) [bugs:#401].
Also see the milestone reports for 6.44 bug fixes, as well as 6.44 new features.
Version 6.44.1 Beta (3960)
Also see the milestone reports for 6.44 bug fixes, as well as 6.44 new features.
Version 6.44.0 Beta (3634)
- Improved the error messages for event handler mismatch [feature-requests:#103].
- Fixed: Missing include in "include/ocf/olefacto.h" [bugs:#317].
- Fixed: OCF templates refer to undeclared global
Registrar
[bugs:#319].
- Fixed: TBtnBitmap::DefaultFaceColor initialises to wrong value [bugs:#331].
- Fixed: TPrintDialog constructor no longer accepts integer resource identifiers (regression in 6.32) [bugs:#335].
- Fixed: TModule no longer accepts null-pointer for name (regression in 6.32) [bugs:#355].
- Fixed: TGlyphButton image not centered properly (regression in 6.34) [bugs:#356].
- Fixed: TNmCustomDraw wrongly inherits NMTTCUSTOMDRAW [bugs:#357].
- Fixed: TPrintout no longer accepts null-pointer for title (regression in 6.32) [bugs:#360].
Also see the milestone reports for 6.36 and 6.44 bug fixes, as well as 6.44 new features.
Version 6.43.1 (3575)
- Fixed: TButtonTextGadget::SetText doesn't update the gadget [bugs:#347].
- Fixed: Crash if TWindow::Create fails in debug mode [bugs:#349].
- Fixed: Typo in OwlExt::RCPtr::~RCPtr causes compilation error [bugs:#318].
- Fixed: Missing
this
qualification for dependent name in TIArrayAsVector [r3549].
- Fixed: "browse.cpp" is excluded in the MSBuild project file for OWLExt [r3560].
- Fixed: Clang compilation errors in "source/owlext/browse.cpp" [r3563].
- Fixed: TTooltipText::CopyText is unsafe [bugs:#353].
- Fixed: Buffer overflow in TListViewCtrl::GetSelStrings [bugs:#354].
- Fixed: FormatFileTime fails in Unicode build mode [bugs:#329].
Also see the milestone reports for 6.35.1 and 6.43.1 bug fixes.
Version 6.43.0 (3416)
- Fixed: Use of undocumented Win32 function DeviceCapabilitiesEx in TPrintDC [bugs:#342].
Version 6.42.8 (3396)
- Fixed: Crash if TDialog::Create fails in debug mode [bugs:#340].
- Fixed: String buffer overflow in TGauge::Paint [bugs:#341].
Version 6.42.7 (3377)
- Fixed: Wrong selection in TComboBox when using transfer buffer [bugs:#336].
- Fixed: Build setup fails for non-WC root with SubWCRev installed [bugs:#337].
Version 6.42.6 (3363)
- Support for RAD Studio/C++Builder 10.1 Berlin.
Version 6.42.5 (3344)
- Fixed: TGlyphButton draws opaque glyphs [bugs:#332].
- Fixed: TObjInfo::RefCount overrun [bugs:#333].
- Fixed: VS 2015: error U1050: Unable to detect the compiler version [bugs:#334].
Version 6.42.4 (3286)
Version 6.42.3 (3243)
Version 6.42.2 (3187)
- Added support for long file names in "bc.mak" [r3186].
Version 6.42.1 (3174)
- Added support for 64-bit OWL5_COMPAT mode [r3141].
- Fixed: CommCtrl has erroneous Doxygen comments [bugs:#299].
Version 6.42.0 Beta (3124)
- Support for Visual Studio 2015 [r3077] [r3080].
- Extended TCheckList to support 64-bit user data in x64 build mode [r3107].
- Eliminated suspect casts (Visual Studio 2015 warnings).
- Fixed: TMenu::operator uint truncates handle [bugs:#307].
- Fixed: Truncation in TDispatch <WM_QUERYDRAGICON> [bugs:#308].
- Fixed: Pointer truncation in TDC::EnumMetafile [bugs:#309].
- Fixed: Pointer truncation in TCoolbar::ToggleBorder [bugs:#310].
- Fixed: TDocManager::UpdateFileMenu truncates handle [bugs:#311].
- Fixed: HtmlHelp has old 32-bit truncating signature [bugs:#312].
- Fixed: TToolInfo::SetToolInfo truncates handle [bugs:#313].
- Fixed: Pointer truncation in TTraceWindow [bugs:#314].
- Fixed: TMci has old 32-bit truncating API and implementation [bugs:#315].
Also see the 6.42 milestone report for bugs.
Version 6.41.0 (3066)
Also see the 6.41 milestone report for bugs and feature requests.
Version 6.40.7 (3061)
- Fixed: Crash in Persistent Streams (partial fix for [bugs:#304]) [r3061].
- Fixed: Truncation in TPWrittenObjects::TPWObj [bugs:#305].
- Fixed: TWindow::SetCursor(0, 0) temporarily removes the cursor [bugs:#306].
Also see the 6.40.7 milestone report for bugs.
Version 6.40.6 (3009)
- Support for C++Builder XE8 [r3009].
- Fixed: Removing the last TDockableControlBar from the upper harbor crashes [bugs:#301].
- Fixed: Deadlock in Persistent Streams [bugs:#302].
- Fixed: Missing tool tips in Unicode builds [bugs:#303].
- Fixed: Incorrect tooltip display in TDockableControlBar [bugs:#296].
- Fixed: Typos in TDispatch specializations [r3001].
Also see the 6.40.6 milestone report for bugs.
Version 6.40.5 (2932)
- Added compiler version detection in "source/owlcore/bcmake.bat" [r2877].
- Completed Japanese translation [feature-requests:#80].
- Fixed: A picture validator on an edit field with append and fill options cause crash [bugs:#295].
- Fixed: TDate::ParseFrom issues [bugs:#290].
- Fixed: TDate::AsString and TTime::AsString append null-character [bugs:#291].
Also see the 6.40.5 milestone report for bugs.
Version 6.40.4 Beta (2861)
- Provided more support for BCC64; examples now build and run.
- Fixed: OWLExt errors due to the removal of EV_WM_CTLCOLOR [bugs:#278].
- Fixed: Issues in 6.40.3 TDispatch specialisations [bugs:#274].
- Fixed: C++Builder issues with resource compilation [bugs:#275].
Also see the 6.40.4 milestone report for bugs.
Version 6.40.3 Beta (2737)
- Fixed: Missing TDispatch specializations (6.40) [bugs:#272].
- Fixed: TWindow::EvGetIcon and EvSetIcon are not implemented.
- Corrected, replaced or removed dispatch for many messages [r2733].
Version 6.40.2 Beta (2724)
Also see the 6.40.2 milestone report for bugs.
Version 6.40.1 Beta (2601)
- Fixed: Pointer truncation in TDocument::NotifyViews and QueryViews [bugs:#260].
- Fixed: Missing dialog control causes crash in TWindow::Create [r2591].
- Corrected the documentation of TComboBox::Transfer and TListBox::Transfer [r2593].
- Eliminated spurious Visual Studio IntelliSense warning [r2596].
- Changed dialogs across core and examples to use DS_SHELLFONT [r2587].
Also see the 6.40.1 milestone report for bugs.
Version 6.40.0 Beta (2576)
Also see the 6.40 milestone reports for bugs and new features.
6.30 series
After major work to remove obsolete legacy stuff from the source code, as well as improving and simplifying the build scripts, OWLNext 6.30 was released 2009-09-02. Further improvements and many new features were delivered in version 6.32. Versions 6.34 to 6.36 are mainly bug-fix releases with additional compiler support.
With the release of the overhauled 6.40 series as the new line of development, the 6.30 series entered maintenance mode 2017-01-30 with the release of 6.36.1. Since then, only bug fixes and compiler support updates have been released.
Major new features
Major features and improvements compared to version 6.20:
- Doxygen documentation
-
Introduction of in-source Doxygen comments for automatic generation of the OWLNext Reference Documentation.
- Additional support libraries
-
Inclusion of the OWLExt, OWLFx and CoolPrj libraries (see OWLNext Modules).
- Dialog Data Transfer
-
Version 6.32 introduced the new Dialog Data Transfer framework as a replacement for the deprecated transfer buffer framework. Support for formatted DDT was added in 6.34 [feature-requests:#59].
- Safe Transfer Buffers
-
New buffer checks and type-safety support for legacy code (see Safe Transfer Buffers).
- C++-style string support
-
New overloads and signatures for functions and constructors with string parameters (see Strings in OWLNext).
- Themed glyph buttons
-
Modern rendering support for TGlyphButton [feature-requests:#7].
- Exception transport
-
Transport mechanism for unhandled exceptions in event handlers [bugs:#230].
- Overhaul of the source code and build scripts
-
Removal of the obsolete 16-bit code, and improvements to the build scripts, including automatic version number detection, as well as a new library naming convention that prevents version and compiler conflicts.
- Updated compiler support
-
Support for RAD Studio/C++Builder XE-12, Visual Studio 2008-2022 and Borland C++ 5.5. Dropped support for C++Builder 6.0, 2006-2007, Visual C++ 6.0, 2003-2005 and Borland C++ 5.01-5.02, allowing modernisation of the code and removal of awkward workarounds (see Supported Compilers).
- Preliminary 64-bit support
-
New support for building OWLNext and applications natively for 64-bit editions of Windows. Patches have been made to the legacy message dispatch framework, improving compatibility with 64-bit build mode. But note that known 64-bit issues remain, such as pointer truncation in handlers and other functions dealing with generic parameters. For serious use of 64-bit, you should upgrade to the latest version. For more information, see "64-bit OWLNext".
Revisions
The following sections give a summary of changes in released versions. For the detailed record of changes to the source code, see the log for the release branch in the Subversion source code repository (branches/636).
Version 6.36.8 (6757)
Version 6.36.7 (6527)
- Support for Embarcadero RAD Studio/C++Builder 11.3 Alexandria.
- Made "bcmake.bat" and "update_version_header.bat" more robust [r6492].
- Fixed: "source/owlcore/bcmake.bat" no longer works [r6488].
- Fixed: Invalid Boost path causes OWLNext build errors with BCC32 toolset [bugs:#549].
- Fixed: Link errors due to missing export attributes [bugs:#550].
Version 6.36.6 (5824)
Version 6.36.5 (5574)
- Support for Visual Studio 2022.
Version 6.36.4 (5207)
Version 6.36.3 (4878)
- Fixed: Documentation shows old version number (6.34).
Version 6.36.2 (4615)
- Support for RAD Studio/C++Builder 10.2 Tokyo, 10.3 Rio and Visual Studio 2019.
Version 6.36.1 (3661)
- Support for Visual Studio 2017.
Version 6.36.0 (3627)
- Fixed: TBtnBitmap::DefaultFaceColor initialises to wrong value [bugs:#331].
- Fixed: TPrintDialog constructor no longer accepts integer resource identifiers (regression in 6.32) [bugs:#335].
- Fixed: TModule no longer accepts null-pointer for name (regression in 6.32) [bugs:#355].
- Fixed: TGlyphButton image not centered properly (regression in 6.34) [bugs:#356].
- Fixed: TNmCustomDraw wrongly inherits NMTTCUSTOMDRAW [bugs:#357].
- Fixed: TPrintout no longer accepts null-pointer for title (regression in 6.32) [bugs:#360].
Also see the milestone report for 6.36 bug fixes.
Version 6.35.1 (3576)
- Fixed: TButtonTextGadget::SetText doesn't update the gadget [bugs:#347].
- Fixed: Crash if TWindow::Create fails in debug mode [bugs:#349].
- Fixed: Missing
this
qualification for dependent name in TIArrayAsVector [r3550].
- Fixed: TTooltipText::CopyText is unsafe [bugs:#353].
- Fixed: Buffer overflow in TListViewCtrl::GetSelStrings [bugs:#354].
- Fixed: FormatFileTime fails in Unicode build mode [bugs:#329].
Also see the milestone report for 6.35.1 bug fixes.
Version 6.35.0 (3415)
- Fixed: Use of undocumented Win32 function DeviceCapabilitiesEx in TPrintDC [bugs:#342].
Version 6.34.11 (3398)
- Added and improved BCC55 project files for the examples [r3398].
- Removed obsolete BC5 project folders for the examples [r3393].
- Fixed: Crash if TDialog::Create fails in debug mode [bugs:#340].
- Fixed: String buffer overflow in TGauge::Paint [bugs:#341].
Version 6.34.10 (3378)
- Fixed: Wrong selection in TComboBox when using transfer buffer [bugs:#336].
- Fixed: Build setup fails for non-WC root with SubWCRev installed [bugs:#337].
Version 6.34.9 (3364)
- Support for RAD Studio/C++Builder 10.1 Berlin.
Version 6.34.8 (3345)
- Fixed: TGlyphButton draws opaque glyphs [bugs:#332].
- Fixed: TObjInfo::RefCount overrun [bugs:#333].
- Fixed: VS 2015: error U1050: Unable to detect the compiler version [bugs:#334].
Version 6.34.7 (3241)
Version 6.34.6 (3185)
- Added support for long file names in "bc.mak" [r3184].
Version 6.34.5 (3171)
- Support for Visual Studio 2015.
- Fixed: Build fails for non-English edition of Visual Studio [bugs:#241].
- Fixed: Missing tool tips in Unicode builds [bugs:#303].
- Fixed: Incorrect tooltip display in TDockableControlBar [bugs:#296].
Version 6.34.4 (3129)
- Support for C++Builder XE8.
Version 6.34.3 (2930)
- Fixed: A picture validator on an edit field with append and fill options cause crash [bugs:#295].
- Fixed: TDate::ParseFrom issues [bugs:#290].
- Fixed: TDate::AsString and TTime::AsString append null-character [bugs:#291].
Version 6.34.2 (2685)
- Improved build setup handling.
- Improved documentation.
- Support for C++Builder XE7.
- Added "include/owl/all.rc".
- Fixed: Dynamic linking issues with OWLExt [bugs:#267].
- Fixed: "owl.rc" is incomplete [bugs:#265].
- Fixed: Error RC1004 in "picklist.rc" [bugs:#264].
Version 6.34.1 (2062)
- Added string-aware overloads (TInputDialog, TMDIChild, TPropertySheet).
- Support for C++Builder XE6.
- Fixed numerous issues in TNoteTab [bugs:#252] [bugs:#254] [bugs:#255].
- Fixed: WM_ENDSESSION handling is unreliable [bugs:#231].
- Fixed: An unhandled exception within a dialog event handler is silently suppressed [bugs:#230].
- Fixed: TApplication::QueryThrow is not implemented (regression in 6.34.0) [bugs:#249].
- Fixed: Custom scroll bars may fail (regression in [r1773]).
Also see the 6.34.1 milestone report for bugs.
Version 6.34.0 Beta (1950)
Also see the 6.34 milestone reports for bugs and new features.
Version 6.32.8 (2697)
- Improved build setup handling.
- Support for C++Builder XE7.
- Added C++Builder XE3 projects for some of the examples.
- Corrected documentation.
Version 6.32.7 (1980)
- Support for C++Builder XE6.
- Added "examples/Classes/exceptiontransport" and "examples/Classes/slider".
- Fixed: TSlider is dysfunctional (regression in 6.32.6) [bugs:#238].
- Fixed: Status bar hint text is gone (regression in 6.32) [bugs:#243].
- Fixed: String-aware overload for TPropertySheet constructor is declared but not implemented [bugs:#250].
- Fixed: WM_ENDSESSION handling is unreliable [bugs:#231].
Also see the 6.32.7 milestone report.
Version 6.32.6 (1893)
- Support for Embarcadero C++Builder XE4/XE5 and Microsoft Visual Studio 2013.
- Fixed: TRichEdit search-and-replace is broken [bugs:#236].
- Fixed: 16-bit scrollbar truncation and thumb position issue [bugs:#227].
- Fixed: Build conflicts with Cygwin [bugs:#217].
- Fixed: Build fails for non-English edition of Visual Studio [bugs:#241].
- Fixed: EV_OC_VIEWSETTITLE definition incorrectly uses ocf::v_CS_Sig instead of owl::v_CS_Sig
Also see the 6.32.6 milestone report.
Version 6.32.5 (1679)
- Fixed: TButtonTextGadget::SetText(0) crashes [bugs:#223].
- Fixed: Context menu appears outside window [bugs:#224].
- Fixed: 16-bit scroller truncation and thumb position issue [bugs:#227].
- Fixed: Wrong TDib/TDiBitmap constructor called [bugs:#228].
- Fixed: TWindow::EvEndSession crashes at system shutdown [bugs:#231].
- Disabled library sectioning when building the dynamic libraries (made no sense).
Also see the 6.32.5 milestone report.
Version 6.32.4 (1576)
- Support for Embarcadero C++Builder XE3 and Microsoft Visual Studio 2012.
- Included OWLNext examples in the patch and the full source download.
- Fixed: VCL build mode fails with C++Builder XE2 (issue #3525088).
- Fixed: TSplashWindow deletes the provided DIB (issue #3540034).
- Fixed: Applications are dysfunctional in OWL5_COMPAT mode (issue #3541144).
- Fixed: Incorrect formatting logic in TButtonTextGadget::PaintText (issue #3535315).
Version 6.32.3 (1308)
- Added support for BWCC in OWL5_COMPAT mode for Visual C++ builds.
- Added TDC::TransparentBlt() (request #3520413).
- Fixed the handlers for WM_COPYDATA (issue #3515526).
- Fixed a problem with disappearing scrollbars (issue #3471504).
- Fixed: TLvItem dereferences invalid iterator (issue #3468447).
- Fixed: TLvItem::GetText(LPCSTR, int) is unsafe (issue #3469059).
Version 6.32.2 Beta (1249)
- Restored code that was accidentally removed while preparing 6.32.1.
- Restored support for BWCC (only in OWL5_COMPAT mode).
- Changed the methods and usage of TPointer/TAPointer (issue #3327402).
- Changed the return type of TDialog::DialogFunction (issue #3463015).
- Fixed handling of share violation notification in TOpenSaveDialog (issue #3461912).
- Added owl::tstring overloads for many class methods.
Version 6.32.1 Beta (1117)
Contains the changes made in the 6.31 Developer Preview. See log.
Version 6.30.15 (6654)
- Fixed: Problems with the implementations of EM_SETMARGINS and EM_GETMARGINS [bugs:#559].
Version 6.30.14 (6519)
- Fixed: Link errors due to missing export attributes [bugs:#550].
Version 6.30.13 (4622)
- Fixed: Examples fail to build with Borland C++ 5.02 [r4621].
Version 6.30.12 (1599)
- Support for Embarcadero C++ Builder XE3 and Microsoft Visual Studio 2012.
- Added AClock and BmpView examples, with relative paths.
- Fixed: TResString conflict with VS2010.
- Fixed: TEdit::Transfer may leak memory if an exception is thrown.
- Fixed: TEdit::Transfer is unsafe; the validator may cause buffer overrun.
- Fixed: Build conflicts with Cygwin (issue #3542355).
- Fixed: Inconsistent packing size in VCL build mode (issue #3464368).
- Fixed: OWLNext 6.30 does not comply with the naming convention (issue #3550821).
- Fixed: VCL build mode fails with C++Builder XE2 (issue #3525088)
- Fixed: TSplashWindow deletes the provided DIB (issue #3540034)
Version 6.30.11 (1155)
- Support for CBuilder XE2, correct runtime library loading.
- Fixed issue #3298018, TEditFile cannot edit files > 32K.
- Fixed: CodeGuard library added to release builds.
- Made some improvements to the TComboBoxExItem constructors.
- Fixed RichEdit 4.1 compatibility issue (issue #3315110).
Version 6.30.10 (733)
- Made usage of Stackwalker in VC++ debug builds optional.
- Fixed VC++ compilation issues with the assembler files.
- Fixes in EV_TTN_SHOW (issue post thread and issue#3188259).
- TRichEdit now uses RichEdit4.1 when available (issue #3140830).
- GCC compatibility fixes.
Version 6.30.9 (558)
- Support for CBuilder 2011/XE in the make and batch files.
- Added compiler specific batch files for full build, OCF and the OWLNext core.
- Fixed TComboBoxExData bad implementation (issue #3035815).
- Fixed TMemComboBox incorrect behavior (issue #3040075).
- Fixed problems in some of the container classes (TArray, etc.).
- Fixed issues with TComboBoxEx::Transfer.
Version 6.30.8 (384)
- Fixed: TListWindItem::SetState() is broken (issue #3023544).
- Fixed: TTypedArray::AddAt moves incorrected size of memory (issue #3016871).
- Fixed bugs in TArray emulation (issue #3014970).
- Fixed several GCC/Linux incompatibilities.
Version 6.30.7 (343)
- Added public access to OcRemView::GetPartSize() (request #2851972).
- Fixed: resource may load from wrong module (issue #2978688).
- Support for CBuilder 2011 (issue #3001660).
- Fixed bad cast in "resource.h" (issue #3007736).
- Linux-related compatibility fixes
Version 6.30.6 (314)
- Fixed TPrinterAbortDlg::SetupWindow issue (issue #1716306).
- Fixed: gc.mak is outdated and broken (issue #2962949).
- Fixed: TPrintDialog forces the app to crash (issue #2973025).
- Fixed some Linux-related problems.
Version 6.30.5 (308)
- Updated OWLExt to build with Unicode.
- Added definition for _ttof if needed.
- Fixed VS2010 bug for release mode linking (issue #2949464).
- Fixed Linux incompatible includes (issue #2956366).
- Fixed unsafe cast and return in TXBase (issue #2956161).
- Fixed: VC++ mixed mode compatibility (see this thread).
- Fixed: TGadgetWindowFont(const TFont& font) definition missing (see this thread).
- Fixed: msc.h is setting BI_NO_COVAR_RET for all versions (see this thread).
Version 6.30.4 (302)
- Fixed: locked clipboard may hang application.
- Fixed: TFileName::Squeezed fails for long names (issue #2911717).
- Fixed a buffer overrun in HandleGlobalException (issue #2911628).
Version 6.30.3 (297)
- Added macro definitions for _tifstream and _tofstream.
- Fixed: "16-bit scroll bar in 32-bit mode" (issue #1984288).
- Fixed TFileDocument issues with C++Builder 2007-2010 (see this thread).
- Fixed problem in TRegValue::Set() (see this thread).
- Fixed a problem in HandleGlobalException() for Unicode builds (see this thread).
- Fixed: dt parameter is ignored in TIArrayAsVector::Detach.
- Fixed some Unicode buffer problems.
Version 6.30.2 (295)
- Added OWLExt and OWLFx libraries.
- Added the namespace NS_OCF:: to the event definitions in OCF.
- Removed some more usages of the obsolete keywords "FAR" and "far".
- Fixed issue with system color brushes (see this thread).
- Fixed: TSArrayAsVector::Add incorrect (issue #2820768).
- Fixed: TCmdLine cannot handle quoted options.
Version 6.30.1 (293)
- Support for Visual C++ 2010 and C++Builder 2010.
- Included BOCOLE sources under source\ocf.
- Contains the changes made in the 6.21 Developer Preview (see log).
6.20 series
OWLNext 6.20 was planned and introduced as a new base version for further work. It was a big upgrade with much work on support for new compilers and operating systems. After a series of release candidates, starting with RC1 in 2004, version 6.20 was finally released 2007-06-06, and was included on the C++Builder 2007 Partner CD.
The support for 6.20 ended 2009-06-10 with the release of 6.20.10.
Major new features
Major features and improvements compared to version 6.19:
- Data Execution Prevention (DEP)
-
Support for the DEP feature in Windows XP and later (see OWLNext and Data Execution Prevention).
- Windows XP Themes support
-
Support for Windows XP Visual Style Gadgets.
- New compiler support
-
Support for Borland Developer Studio.
Revisions
The following sections give a summary of changes in released versions. For the detailed record of changes to the source code, see the log for the 6.20 branch in the Subversion source code repository (branches/OWLNext620).
Version 6.20.10 (277)
- Support for BDS2009.
- Fixed some Unicode problems.
Version 6.20.9 (268)
- Fixed an OCF Server crash.
- Fixed an issue with the definition of TRegTemplateList::EnabledFlags.
- Fixed an issue with "uxtheme.h" usage with C++Builder 6.
- Fixed an issue in TDC::SelectObject(const TBitmap& bitmap).
- Fixes a crash with dockable control bars and TListWindow::GetSelIndexes.
- Small fix in the makefile for Borland compilers.
Version 6.20.8 (262)
- Support for Unicode filenames with ifpstream etc.
- A Unicode-related fix in "ocreg.cpp".
Version 6.20.7 (260)
- Support for Visual C++ 2008.
- Added TGadgetWindow::IsThemed function.
- Replaced GERMAN by BI_MSG_LANGUAGE_GERMANY in resource files.
Version 6.20.6 (259)
- Renamed parameter 'generic' to 'genericxx' in "dispatch.*" and "commctrl.*".
Version 6.20.5 (222)
- Support for Windows XP Visual Style Gadgets.
- Fixes for EV_WM_POWERBROADCAST and EV_WM_DEVICECHANGE.
- Fixed a problem with flat buttons in print preview.
- Fixed a problem in TWindow::EvMouseWheel.
- Fixed an issue with context menus on a dual-monitor system.
Version 6.20.4 (218)
- New function TView::SetDocument().
- A fix for the circular dependencies in owl/geometry.h (see this thread).
- Cleaned up namespaces usage.
Version 6.20.3 (210)
- Enabled use of backwards compatibility builds.
- Fixed a problem with THarbor background in diagnostic build.
- Updated and included OWLExt 3.0 library.
Version 6.20.2 (71)
- Fixed a problem with the __DEBUG definition.
Version 6.20.1 (65)
- New version number scheme.
- Fixed new printer dialog issue.
6.04 series
OWLNext 6.04 (aka OWL NExt 6.0 Patch 4), released in 1999, was considered the base version until the release of OWLNext 6.20. All versions up to and including 6.19 were distributed as patches to 6.04.
See OWLNext Pre-6.20 Revision History for details.