November 19th, 2024

A wrinkle in how Windows 95 setup bootstrapped its initial GUI step

Recall that Windows 95 setup could potentially use three operating systems. Now, most of the work happened in the 16-bit Windows GUI app, and that code wanted to use fancy new controls like list views and property sheets.

Windows 3.1 had a DLL called commctrl.dll which contained the code for fancy new controls, or at least new for Windows 3.1. Controls like toolbars and status bars. Windows 95 added features to those controls and added additional even fancier controls, and Windows 95 setup wanted to use those fancier controls.

How do you get a single copy of the 16-bit Windows GUI portion of Windows 95 setup to work on both Windows 3.1 and Windows 95 while still taking advantage of the fancier controls?

The 16-bit Windows GUI portion of Windows 95 setup checked whether it was running on Windows 95 or Windows 3.1 (either real or miniature). If it’s running on Windows 95, then it loads the already-present Windows 95 version of commctrl.dll to get access to those new features. But if it’s running on Windows 3.1, loading the already-present Windows 3.1 version of commctrl.dll won’t work because it lacks the new features. Instead, the 16-bit Windows GUI portion of Windows 95 setup comes with a DLL called kommctrl.dll (with a K) that is a Windows 3.1 version of the Windows 95 commctrl.dll. If running on Windows 3.1, the 16-bit Windows GUI portion of Windows 95 setup loads kommctrl.dll instead of commctrl.dll.

I dimly recall that originally, the name of the alternate version of commctrl.dll was bommctrl.dll (with a B). My guess is that the name was chosen because the DLL is “one step down” from the full Windows 95 commctrl.dll, so its first letter got “demoted” one letter. The person who came up with the name was known for coming up with silly names for things, and this sort of joke fits with his personality.

But I guess they decided that the joke was too silly, so the alternate DLL became kommctrl.dll. I mean, it’s still a silly name, but just a little less silly.

Topics
History

Author

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

2 comments

  • Yuhong Bao

    Correction: only WFW 3.11 had commctrl.dll.

  • Yuhong Bao

    Don’t forget comctl16.dll, used by IE5 on Windows 3.1.