DLLRegisterServer failed with error code 0x80040200

Discussion in 'Windows Vista General Discussion' started by fniles, Apr 11, 2007.

  1. fniles

    fniles Guest

    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 ?
    Thank you.
     
    fniles, Apr 11, 2007
    #1
    1. Advertisements

  2. Karl E. Peterson, Apr 11, 2007
    #2
    1. Advertisements

  3. 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.
     
    Tom Porterfield, Apr 11, 2007
    #3
  4. 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.

    - Kev

    | 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 ?
    | Thank you.
    |
    |
     
    Kevin Provance, Apr 11, 2007
    #4
  5. fniles

    fniles Guest

    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 ?

    Thanks.
     
    fniles, Apr 11, 2007
    #5
  6. fniles

    Rick Raisley Guest

    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.
     
    Rick Raisley, Apr 11, 2007
    #6
  7. InstallShield should have an option to register a COM component. UAC should
    automatically prompt to elevate when the user runs your install package so
    the COM registration should succeed.
     
    Tom Porterfield, Apr 11, 2007
    #7
  8. Please note that "microsoft.public.dotnet.languages.vb" targets the VB.NET
    programming language which is not a successor of the VB6 programming
    language in technology and syntax. I suggest to choose the correct
    newsgroups in future.
     
    Herfried K. Wagner [MVP], Apr 11, 2007
    #8
  9. fniles

    fniles Guest

    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.

    Thank you very much for your help.
     
    fniles, Apr 11, 2007
    #9
  10. fniles

    Rick Raisley Guest

    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.

    --
    Regards,

    Rick Raisley

    ~~~~~~~~~~~~~~~~~~~
    HeavyMetal Software Products
    www.heavymetalpro.com
     
    Rick Raisley, Apr 11, 2007
    #10
  11. fniles

    fniles Guest

    If it doesn't, you can force it to run as an admin with Run As or with a
    How do I do this ?

    Thank you.
     
    fniles, Apr 12, 2007
    #11
  12. fniles

    Rick Raisley Guest

    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):

    http://www.helpware.net/VistaCompat.htm

    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.
     
    Rick Raisley, Apr 13, 2007
    #12
  13. If I log-in as an Administrator, and then double-click on the Installe
    executable, still it fails to register the ActiveX component
    But if I right-click on the Installer executable and Run A
    Administrator, then it is registered smoothly

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

    Thanks in advance..
     
    aniruddhagalgali, May 15, 2007
    #13
  14. fniles

    Jon Guest


    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.
    [/QUOTE]
     
    Jon, May 15, 2007
    #14
  15. fniles

    Ross28 Guest

    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 thanks again.
     
    Ross28, Jan 25, 2008
    #15
  16. Hello,

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

    OK rant over, I got the 0x80040200 error code while attemting th
    simple act of registering a .ocx file using regsver32 (in ME and XP,
    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).
    did however, come across a program that does register .ocx and .dll o
    vista.

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

    Download from the following link:

    http://www.foxprogramming.co.uk/freetools.html

    Back to venting frustration...as soon as my warranty is up I will dum
    vista and load in XP
     
    wanderin-spirit, Mar 26, 2009
    #16
  17. fniles

    Peter Foldes Guest

    Another Techarena genius

    --
    Peter

    Please Reply to Newsgroup for the benefit of others
    Requests for assistance by email can not and will not be acknowledged.
    http://www.microsoft.com/protect
     
    Peter Foldes, Aug 4, 2010
    #17
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.