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.