Hmm... Try this info...
Squealer (addisonsw.com) is commercial, and looks to be the easiest one to diagnose the problem... the other program gave me the following log upto the time of the unexpected error.....
What is "Unexpected error" or "Error 50003"?
Usually the result of a different version of an OCX on which your application depends being registered since you installed it, ie. if your app uses Acme's OCX release 2, and the user installs another app that replaces this OCX with release 1 (on Windows won't stop them), your application will stop working, and problably complain with Err 50003. This usually occurs with Microsoft's common controls (the enhanced widgets that came with Win9x, the standard dialog boxes like OpenFile, etc.) FYI, Microsoft have issued different, sometimes incompatible, versions of comctl32.ocx, comdlg32.ocx, comct232.ocx, and comct332.ocx, without changing their GUID.
Note that some OCXs themselves require other components to work, so simply copying a given OCX from your \\system32 onto another computer won't do much good. Also, not all OCX providers enforce binary compatibility, effectively breaking any app that were compiled to work with a previous version of said OCX. If you want to investigate, Squealer looks interesting.
Another utility is Regmon from System Internals which is a tool for monitoring accesses to the registry. Use Regmon to capture all registry access when the application is run, up to the point where the error is produced. Look for where an â€˜OpenKeyâ€™ request fails. Experience has indicated that the following are significant:
For each of these â€˜NN..NNâ€™ indicates the class sid of a missing COM object. On a machine where this COM object is available (possibly contact the original developer of the COM object) locate this class sid in the registry, this will reveal the full pathname of the missing item. Obtain a copy and use regsvr32 to register it.
Yet another way to check which OCX is causing this issue is to build a dummy project that only contains references to all the OCX you need, and use this kind of code to see if you can recreate the error:
Set myVar=New ActiveXType