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.
Correction: only WFW 3.11 had commctrl.dll.
Don’t forget comctl16.dll, used by IE5 on Windows 3.1.