Windows 3.11 Program Icon File Formats
In Microsoft Windows 3.11, program icons were primarily stored either as standalone .ICO files or as embedded resources compiled directly into 16-bit New Executable (NE) files, such as .EXE and .DLL files. While individual graphics used the standard Windows Icon (.ICO) format, the operating system relied heavily on executable containers and specialized icon libraries (.ICL) to manage and display visual assets for applications inside the Program Manager.
The Standalone .ICO Format
The native file format for individual Windows icons was
.ICO. An .ICO file in Windows 3.11 is a
container format capable of holding one or more raster images. During
the 16-bit era, these files typically stored images at a resolution of
32×32 pixels using a 16-color (4-bit) palette, designed specifically for
standard VGA displays, though 16×16 variants were also supported for
small displays.
Each image entry within an .ICO file contained two
separate bitmasks:
- The XOR mask: A Device-Independent Bitmap (DIB) that defined the actual colors of the icon.
- The AND mask: A 1-bit monochrome bitmap that determined transparency, allowing the background desktop color or window to show through designated parts of the icon.
Embedded Resources (.EXE and .DLL)
Rather than distributing loose .ICO files, software
developers in Windows 3.11 typically embedded icons directly into
compiled binary files. The operating system used the 16-bit New
Executable (NE) structure for .EXE and .DLL
binaries.
Within the NE file format, icons were tagged as resource type
RT_ICON (for individual image frames) and grouped under
RT_GROUP_ICON (which grouped multiple resolutions or color
depths of the same icon). When creating a program item in Program
Manager, Windows 3.11 read these resource tables directly from the
application's executable to display the program's desktop visual.
Icon Libraries (.ICL)
Users and developers who wanted to store collections of icons outside
of primary application binaries used the .ICL (Icon
Library) format. An .ICL file was functionally identical to
a 16-bit Windows dynamic link library (.DLL) containing no executable
code, only a table of compiled icon resources.
Windows 3.11 included its own default collections of icons using this
method. The most prominent example was MORICONS.DLL (More
Icons), which provided alternative icons for DOS programs and utilities,
alongside internal resources compiled directly into
PROGMAN.EXE.