|
| |||||||||
| Tags: 0x80040200, dllregisterserver, error code, windows vista |
![]() |
| | Thread Tools | Search this Thread |
|
#1
| |||
| |||
| 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 ? |
|
#2
| |||
| |||
|
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. |
|
#3
| |||
| |||
| 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. |
|
#4
| |||
| |||
|
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): |
|
#5
| |||
| |||
|
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. |
|
#6
| |||
| |||
|
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. |
|
#7
| |||
| |||
|
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. |
|
#8
| |||
| |||
| Re: DLLRegisterServer failed with error code 0x80040200
Another Techarena genius |
![]() |
|
| Thread Tools | Search this Thread |
| |
Similar Threads for: "DLLRegisterServer failed with error code 0x80040200" | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| call to DllRegisterServer failed 0x8002801c | greensmachine_snake | Vista Help | 4 | 02-07-2011 05:38 AM |
| Call to DllRegisterServer failed, Error code : 0x80004005 | Dalapathi | Technology & Internet | 3 | 13-02-2011 08:00 PM |
| Failed to access the metabase, error code is 80080005 (Server execution failed). | ggrin75@gmail.com | Small Business Server | 3 | 22-10-2008 02:37 AM |
| DllRegisterServer failed with error code 0x8002801c | peter shaw | Vista Help | 1 | 06-03-2007 08:46 AM |
| DllRegisterServer in vbscript.dll failed. return code was: 0x80004005 | Nocturnal | Windows XP Support | 2 | 14-09-2005 04:14 PM |