How can I fix this error?
Error 429 ActiveX component cannot create object.
asked Jun 18 '14 at 10:51
ActiveX DLL registration and object instantiation problems never end. People have been having problems with ActiveX registration and object instantiation for over 10 years, and I expect that this will continue forever.
The problems are not specific to Chilkat ActiveX's. Skilled and competent people have trouble with ActiveX's in general.
First.. Chilkat ActiveX's are completely standard, plain-vanilla, nothing-special-about-them, typical self-registering ActiveX DLLs, so any trouble you may have with the Chilkat ActiveX is likely to be the same for any other ActiveX.
Successfully registering an ActiveX DLL and using it is simply a matter of following instructions carefully and getting things right. Microsoft has created innumerable pitfalls to make this as painful as possible, with the pain increasing as each year progresses.
All of this pain and suffering is the result of wanting to accomplish one simple thing at application runtime: Your program will instantiate an instance of an object (that is contained within an ActiveX DLL), and it will instantiate it using a name, such as "CompanyAbc.Widget".
Whatever programming language you are using, and whatever the syntax may be, it boils down to this:
To find the location of the ActiveX DLL, the CreateObject statement (or whatever it may be in your programming language) looks in the Window Registry to find the entry by name, such as for "CompanyAbc.Widget". The registry entry will contain the path to the DLL.
That's step #1 -- to get the path to the DLL. This is the main goal of registering the ActiveX DLL via regsvr32. The potential pitfalls in this step are:
Carefully follow the steps at http://www.chilkatsoft.com/downloads_ActiveX.asp to register the Chilkat ActiveX DLL. Be careful not to mistakenly register the 32-bit DLL in the 64-bit registry or vice-versa.
Where should the ActiveX DLL be located in the filesystem? It can be anywhere, but do not move the DLL once it's been registered. If you do this, then the registry entry is pointing to a path where the DLL no longer exists -- and obviously the CreateObject statement will fail.
Also, do not put the DLL on a non-local filesystem. It must be on the local filesystem such that it's implicitly trusted.
Now that the ActiveX DLL is registered correctly, the next step is to use it at runtime. The 1st time your app tries to instantiate an instance of an object contained within the DLL will cause the DLL to be located, loaded into memory, and dynamically linked into your process's address space. Here's what needs to be correct:
If the regsvr32 registration is done correctly, if the DLL is located on a local hard drive and hasn't been moved, and if the application is using the correct name for CreateObject, then all should be OK.
Any single mistake will result in a typical unintelligible Microsoft runtime error.
One More Item of Importance
The Chilkat ActiveX DLLs are implemented in C++ and are built using Visual Studio 2008 (VC++ 9.0). This means the VC++ 9.0 runtime libs must be present on the computer where your app runs. The VC++ 9.0 runtime is typically already pre-installed on Windows computers, but for older computers it may not exist. If not, then you'll receive an "application configuration is incorrect" error. To fix, download and install the VC9 redist from here:
(Chilkat builds using Visual Studio 2008 because it is the oldest possible Visual Studio that satisfies certain Windows security/compliance type certifications. The older the VC++ runtime, the less likely you'll find a computer that doesn't already have it pre-installed. For example, if Chilkat built with VS2013, then many more computers would not already have the runtime already present.)