Run-time error 430 Class does not support Automation or does not support expected interface

Please help.

I am using windows 2000 and vb 6.  I made a .exe for my VB project using VB's Package and Development wizard. When i install it on other machines that have Window 2000 it works fine.  I get a run-time error (Run-time error "430": Class does not support Automation or does not support expected interface.
 ) when i run it on machines with XP.  

I have MDAC 2.8 on my machine (win 2000) and XP should have MDAC 2.8 (is that correct?) i dont think that MDAC is my problem.

Please help, I have some critical work to be done.
Thank you,
Who is Participating?
NightmanConnect With a Mentor CTOCommented:
The most common cause of this is that the version of a dll that you are using on the XP machine differs from the one on your development machine.

This could be MDAC - XP does not have MDAC 2.8 by default (only SP2 or later, I think) , but 2.7 (and even then, not even 2.7 SP1!!). Alternatively, there is a component on the XP box that one of the dll's that you reference has a reference to, and this has a different interface (and hasn't been compiled for Binary compatability). Do you have error handling in your application that will return class/function/line names/numbers? If so, this is where the error is occurring - post that code. If not, I'm afraid you may have to try and run this interactively on the XP boxor another test pc - this may not help though, as the installation of visual studio may install the required components.

Check your project references, and ensure that the same components (and versions) or all referenced objects are installed and registered on the server. What happens when the interface (i.e. the PUBLIC functions, methods and properties) changes on a COM component or library: -
1. If it has been compiled to maintain binary compatability with the last version, and the methods that you reference remain unchanged, you should have no problem.
2. If the interface has changed, and binary compatability has not been maintained between builds, you will get this error.

Noting point 2, if the target machine has a previous version of the COM components, there is an extremely high chance that it is with a previous interface, and you will get this error. This is commonly known as dll hell.

jkaios's suggestion could help you solve the problem, but you need to understand the root cause. VS Installers attempt to 'gift wrap' your installations, but they are not foolproof, and this kind of error can still occur.

jkaiosIT DirectorCommented:
I would suggest using Visual Studio Installer 1.1 - it creates MSI packages and uses the Windows Installer engine.
It's much better than the VB's Package and Deployment and it is free.

You can download it from
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.