views:

29

answers:

2

We expose an interface to our simulation software using a COM/ActiveX object. This worked just fine in XP, but in Vista, we get "Error 429: ActiveX can't create object" when a VB client executes CreateObject().

The COM object has been registered by hand so that the Vista Registry is identical to XP's Registry. I run the VB interface from a DOS window that I started using "Run As Administrator". The client is correctly accessing and reading the Registry as I walk through using the debugger in VB, so it's apparently not a security setting, as near as I can tell.

I have also loaded the files into VS2005 (the object was originally created in VS6) and rebuilt them to get a later ATL version, but that hasn't helped - we still get the 429 error.

Is this a symptom of UAC problems, or should I be looking for something deeper?

+1  A: 

are all the dependencies installed on vista? it might be that some dll that was standard on XP is not on vista so you will now need to install that.

I'd use procmon to see what files/registry entries its trying to open

Sam Holder
Yes, Process Monitor can be very helpful with "works here, doesn't work there" COM problems.
sharptooth
+1  A: 

First off, did you run regsvr32.exe or just hack the registry? If the latter, try running regsvr32.exe instead.

Also, make sure you have all of the ActiveX object's dependencies and that a kill-bit has not been set for the ActiveX object or its dependencies, if your simulation software happens to use a scripting mechanism to instantiate your ActiveX object.

Dave Markle