OWL

OWL stands for Object Windows Library and is the framework that the Borland company developed to facilitate the programming under the Windows operating system. As the name suggests, the framework itself is objective and helps to develop object oriented C++ codes for interacting with the Windows API. The engineers at Borland sculptured the framework so neatly and so carefully that it turned out to be a prominent competitor to the MFC framework at the time. It included many features that MFC did not. It also attracted many programmers who enjoyed the beauty of OWL.

Unfortunately, Borland ceased to support the OWL framework in 1996 and switched to VCL. However, this was not the end of OWL, because those who have been working with OWL since its birth tried to promote its state and extend its capabilities to newer versions and other platforms as well. The result of this effort was the OWLNext framework as a successor of OWL. This new framework is being actively developed and maintained. The details of this development can be found here.

In the original OWL page, the examples were mostly developed using Borland C++ 5.02. Now, I have tried to compile them using Visual Studio 2017 and they are all targeted to x64 architecture. I had to modify the codes to some extend so that they can be compiled without problem. As usual, I have considered two sections, one for the codes that I have developed and the other for the codes developed by Sebastian. At this point, I would like to thank Sebastian Ledesma for his invaluable contribution to this page.

Keywords:

OWL, OWLNext, MFC, VCL, SmartWin++, wxWidgets, Framework, Win64, Linux, Windows Mobile, OLE, OCX, ActiveX, Easy Development, Microsoft Visual Studio, C++ Builder, Borland, Codegear, Unicode, STL


Mohsen

Clock is a simple example that demonstrates how to develop useful controls in OWL. It also shows how to use the TMemoryDC class to expedite drawings on the client area of the window. An important feature of the dialog version of the example is that when it is minimized the associated icon is shown in the system tray.


Sebastian

Alpha-Blending is an interesting example that shows how to fade out the Program's window when it is not active. It uses the function SetLayeredWindowAttributes from the user32.dll to accomplish the fading procedure.


Color-Controls is an example that demonstrates how to change the color of different types of controls using OWL. Other aspects, such as changing the background color, are also shown.


Font-Text-Demo illustrates how to use the OWL class TFontText to handle different types of fonts in your application's window or dialog.


Gradient-Demo shows how to use the GradientFill API function from msimg32.dll to fill the client area of your window with colorful horizontal rectangles. The colors of these rectangles vary gradually from one side to the other.


SpecialFX-Demo is an interesting exmaple that shows how to apply various effects, such as water, fire and plasma, to an image. It is a port from a similar example developed by David Swigger in MFC. Sebastian Ledesma added several tweaks and effects to it.


WASAPI is a demo that combines the use of the TTreeViewCtrl and TImageList to show the basic structure of the WASAPI topology. Audio components on the host computer, such as microphones and speakers, are indicated with icons. It is worth mentioning that Windows Audio Session API (WASAPI) is an audio technology incorporated since Win7 to somehow compete with ASIO.


WM-NC-DEMO is the latest version of an example that shows how to use custom painting in non-client area of a window using OWL/OWLNext framework. The new version is UNICODE compatible and it implements TCoolFrame::SetBorderWidth(int size) to define the border width of the CoolFrame.

2025-06-01