An extensive search of the web and EE show a number of similar problems to this one, but not quite the same.
I've just introduced a new version of a program which has been successfully running on several thousand machines with a variety of Windows operating systems, 98 through Vista. About one half to one percent of the users of the new version are experiencing a program crash with the message "Run-time error 339. Component 'MSCOMCT2.OCX' or one of its dependencies not correctly registered: a file missing or invalid." These have occurred on XP systems, and one user has reported the same problem on two machines, one with XP and the other Vista. The crash occurs fairly soon after starting the program, apparently as soon as any function in that OCX is called.
My program installs (in the Windows system directory) and registers mscomct2.ocx. It works exactly like my earlier and trouble free program in that regard.
I had one user manually register mscomct2.ocx with regsvr32. The operation reported success, but he still gets the crash when the program tries to access any function in the ocx. Uninstalling and reinstalling the program doesn't help. Users whom I've asked confirm they installed the program as administrator (it won't install otherwise), and are running it as administrator. I had one user run the Dependency Walker on mscomct2.ocx, and he got the same result I do on my properly functioning system.
I'm unable to duplicate the problem here, on my fully updated and well-used XP system, or on a clean new installation of XP or Vista.
One change I made fairly recently is that I went from an old InstallShield Express installer to Inno Setup. There are probably a few hundred copies of the previous version of my program in use with the Inno Setup installer, with no one having reported this problem, so I don't know if that change is related to the problem or not.
Has anyone seen this or a similar problem? Anybody have a clue what the cause might be or how I might go about tracking it down?