Windows 3.11 Common Dialog Box System Library
In Microsoft Windows 3.11, the system library responsible for
providing standardized dialog interfaces is COMMDLG.DLL,
known as the Common Dialog Box Library. This article explains the role
of COMMDLG.DLL in the 16-bit Windows environment, outlines
the standard dialog interfaces it introduced to software developers, and
details how it established visual and functional consistency across
early Windows applications.
Prior to the introduction of common dialogs in Windows 3.1 and Windows 3.11, software developers had to program their own interface windows for routine file and printing operations. This resulted in an inconsistent user experience, as different applications implemented different designs for basic tasks such as opening files or selecting fonts.
Microsoft resolved this fragmentation by shipping
COMMDLG.DLL as a core system component. Located in the
C:\WINDOWS\SYSTEM directory, this dynamic-link library
provided a set of predefined, standardized dialog boxes that any
Windows-compatible software could invoke using standard application
programming interface (API) calls.
The standard dialog boxes supplied by COMMDLG.DLL
included:
- Open and Save As: Accessed via
GetOpenFileNameandGetSaveFileName, standardizing drive selection, directory traversal, file filtering, and filename input. - Print and Print Setup: Accessed via
PrintDlg, allowing users to select printers, configure page orientation, paper size, and choose print ranges. - Choose Color: Accessed via
ChooseColor, offering a palette of basic colors and a tool to define custom RGB values. - Choose Font: Accessed via
ChooseFont, allowing selection of system fonts, font styles (bold, italic), sizes, and effects like strikeout or underline. - Find and Replace: Accessed via
FindTextandReplaceText, providing modeless windows for text searching and string substitution within document editors.
By calling these functions, developers significantly reduced the time
required to build applications, reduced memory overhead, and ensured
that users experienced a predictable, unified interface across
third-party programs. With the advent of 32-bit Windows operating
systems, such as Windows 95 and Windows NT, the functions of
COMMDLG.DLL were transitioned to
COMDLG32.DLL.