Go Back   TechArena Community > Technical Support > Computer Help > Windows Vista > Vista Help
Become a Member!
Forgot your username/password?
Register Tags Active Topics RSS Search Mark Forums Read

Sponsored Links



DLLRegisterServer failed with error code 0x80040200

Vista Help


Reply
 
Thread Tools Search this Thread
  #1  
Old 11-04-2007
fniles
 
Posts: n/a
DLLRegisterServer failed with error code 0x80040200

We can not register an ActiveX control on our Vista 32 bit machine.
When we do regsvr32 c:\windows\system32\citcp.ocx (this is a 3rd party
ActiveX control), we got an error: citcp.ocx was loaded but the call to
DLLRegisterServer failed with error code 0x80040200. I can successfully
register MSVBVM60.DLL and MFC42U.DLL. We login to the machine with a user
who is the Administrator.
I read somewhere that I need to turn off the "User Account Control" in
Vista. How can I do that ?
How can I fix this problem ?

Reply With Quote
  #2  
Old 11-04-2007
Karl E. Peterson
 
Posts: n/a
Please note that the manifest, and Run As, do nothing to actually register
any COM components; your setup program must do that. They only help to run
the setup as an admin, which is necessary for /it/ to register the
components.

Register the component from an elevated command prompt. Right click on the
icon for Command Prompt on the start menu and select Run as Administrator.
You will be prompted by UAC to approve the elevation. Once the command
prompt window is open, run your regsvr32 command from that window and it
should succeed.
Reply With Quote
  #3  
Old 11-04-2007
Kevin Provance
 
Posts: n/a
Re: DLLRegisterServer failed with error code 0x80040200

I've discovered that Vista is really picky about this. Turning off the UAC
won't help...it's a registry issue.

If the ActX controls are yours, recompile them, this will register them. If
they are third party, use the installer provided by them to install the
controls. I saw some chap had posted something about creating a batch file
to register his controls and ran the batch control as Admin. I dunno about
this as I've never tried it. I've always used the first two methods.
Reply With Quote
  #4  
Old 12-04-2007
Rick Raisley
 
Posts: n/a
Just be sure InstallShield is set to Register each of the ActiveX controls.
I mistakenly thought my setup was doing that, but hadn't checked the box, so
it was installing the controls in the System32 folder, but not registering
them. Then, the user gets the error you mention the first time they run the
program. Or if they run it as an Admin, it will self-register then. But it's
best to do it in your install program.

Just check for an option for each control you are using in InstallShield to
register it during the install.

InstallShield certainly /should/ register the COM components in Vista,
provided it is run as an Administrator. Most setup programs are recognized
by Vista by their name (setup, install, update) and other properties, and
Vista automatically asks for an admin login. If it doesn't, you can force it
to run as an admin with Run As or with a Manifest file. Either way, if, when
run as an admin, InstallShield is not properly registering the COM
components, then it's InstallShield's fault, not Vista's. It should work,
and does with my installer. You definitely don't need to turn UAC off to
install COM components, and that's probably the last thing you want to have
"thousands of end users" do.

To use Run As, simply right-click on the target install file, and choose Run
As Administrator. A manifest file can be included with your application
which automatically runs it as an admin (or rather asks the person running
it to approve it as an admin, assuming they have the permissions/password).
You can get information on how to make the manifest file at the following
link (among lots of others - just Google Vista Manifest):
Reply With Quote
  #5  
Old 12-04-2007
fniles
 
Posts: n/a
Thank you everybody. Following Tom's suggestion worked !
But, how are we going to do it for our end users ? There may be thousands of
them, so we can't just ask them to go to Command Prompt then register the
file manually. To be able to install (using Installshield) and let the
installation register all the ActiveX controls automatically, how can I do
it ?
Do I need to ask the user to turn off their UAC ?

Installshield is set to register the COM component, and this works in
Win2000 and WinXP, but not in Vista.
I can successfully use the elevated Command Prompt to register each control
manually, but I would like it to be done automatically.
It seems that I need to turn off the UAC and install the application, then I
can turn UAC back on.
Reply With Quote
  #6  
Old 15-05-2007
aniruddhagalgali
 
Posts: n/a
If I log-in as an Administrator, and then double-click on the Installer
executable, still it fails to register the ActiveX component.
But if I right-click on the Installer executable and Run As
Administrator, then it is registered smoothly.

Could someone please explain why does this happen?
And can this be handled from Install Shield?

It's probably because Vista doesn't recognize the installer executable as an
installer, but just sees it as a plain old executable, and hence will try
running it without elevated privileges.

If you renamed it to setup.exe or update.exe or install.exe it will probably
work fine, since then Vista will recognize it as an installer.
Reply With Quote
  #7  
Old 25-01-2008
Member
 
Join Date: Jan 2008
Posts: 1
Dear Tom when i did what you told me to do i am getting another message stating that and i quote "To Register A Module You Must Provide A Binary Name".The options for the binar names are and i quote "/u - Unregister server,
/s - Silent; display no message boxes
/i - Call DllInstall passing it an optional [cmdline];when used with u calls dll uninstall
/n - do nor call DllRegisterServer;this option must be used with /i.
So what is it i have to do now to resolve this problem for good please help cause i am getting frustrated trying to figure it out and i would really appreciate it alot if there is something you can do that will fix it one time

I am a frustrated vista user. Seems everything requires the user to download something else to get the simplest of programs to work. I, along with most people, am not a computer expert. Although, I will say if vista was crated by experts - well they don't know anything.

OK rant over, I got the 0x80040200 error code while attemting the simple act of registering a .ocx file using regsver32 (in ME and XP, I would simply place the .ocx icon over the regsver32 icon and DONE. Vista, of course, not so!

I did a search on error code 0x80040200 and found this site. However, I could not find a solution here (yes my user account is turned off). I did however, come across a program that does register .ocx and .dll on vista.

Easy OCX/DLL MANAGER download (anywhere - I just put it on desktop) and simple functioning (just check the approprite radio button .ocx or .DLL) and load the file you want to register. IT WORKS

Back to venting frustration...as soon as my warranty is up I will dump vista and load in XP.
Reply With Quote
  #8  
Old 04-08-2010
Peter Foldes
 
Posts: n/a
Re: DLLRegisterServer failed with error code 0x80040200

Another Techarena genius
Reply With Quote
Reply

  TechArena Community > Technical Support > Computer Help > Windows Vista > Vista Help
Tags: , , ,



Thread Tools Search this Thread
Search this Thread:

Advanced Search


Similar Threads for: "DLLRegisterServer failed with error code 0x80040200"
Thread Thread Starter Forum Replies Last Post
DllRegisterServer failed with error code 0x8002801c Sauvan Vista Help 3 03-01-2014 09:37 AM
call to DllRegisterServer failed 0x8002801c greensmachine_snake Vista Help 4 02-07-2011 04:38 AM
Call to DllRegisterServer failed, Error code : 0x80004005 Dalapathi Technology & Internet 3 13-02-2011 07:00 PM
Failed to access the metabase, error code is 80080005 (Server execution failed). TanZail Small Business Server 2 22-10-2008 01:37 AM
DllRegisterServer in vbscript.dll failed. return code was: 0x80004005 Galiher Windows XP Support 2 14-09-2005 03:14 PM


All times are GMT +5.5. The time now is 09:48 AM.