Why is a selected ActiveX control missing from the Create Controls\ActiveX menu?

Eriks Tauckels pointed this one out to me. He observed it on Videosoft's FlexGrid 7.0. The control appears in the Tools\ActiveX Controls dialog. But even though you select it there, it doesn't appear on the Create Controls\ActiveX menu so you can't add it to a window.

This arises because MSM-Workstation is too sensitive to character-case within CLSIDs. The FlexGrid 7.0 control's entry in HKEY_CLASSES_ROOT\CLSID is {C0A63B86-4B21-11d3-BD95-D426EF2C7949} but in its type-library its COCLASS-entry gives the CLSID as {C0A63B86-4B21-11D3-BD95-D426EF2C7949}. Note that one has "d" and the other "D". That's perfectly legal, but Workstation's typelib-walking code does a case-sensitive comparison (a minor bug) and fails to locate the COCLASS-entry in the typelib. So it doesn't offer the control for adding to a window.

I used regedit to rename HKEY_CLASSES_ROOT\CLSID\{C0A63B86-4B21-11d3-BD95-D426EF2C7949} key to use the uppercase "D". I had to do the rename in two steps, because no two sibling keys in the Windows registry can differ only in case. First I added an extra X to the end of the name. Then I removed the X and changed "d" to "D". Then I restarted Workstation so it rebuilt its type-library tables, and I could add FlexGrid 7.0 to a window.