none
VB6 addin error 0x80004005 and windows 8 RRS feed

  • Question

  • Hi all,

    I have addins that were created with VB6 as ActiveX DLLs. There is one for Outlook, Word, Powerpoint and Excel. Each does the same functionality, taylored to the Office product. These worked upto Windows 7 and Office 2013. When installing on Windows 8, they don't. When using regsvr32 to register them, I get the error 0x80004005, which is unspecified error. I'm using the 32 bit version of regsvr32 and Office is 32 bit on Windows 8 64 bit. I haven't found anything in the event logs.

    Everything I've read so far says run regsvr32 in the command prompt as adminsitrator. I'm an adminstrator on the PC and did "run as administrator" and still get the error.

    I suspect that the DLLs aren't gettng registered correctly. There are 3 classes to each of the DLLs. Connect and 2 others specific for the DLL function. The connect class gets registered but not the other 2. They do on platforms where they work.

    I have run ProcMon, but that doesn't show any failures. There are no failures doing RegSet* and any reads of the DLLs are successful. There aren't any file writes. The only thing I see is ProcMon shows an exit code for regsvr32 of 5 for the process. Anybody know what it means?

    I have run Dependancy Walker. That doesn't show anything missing except ieshims.dll which as far as I have been able to gather is a deficiency in Dependancy Walker. It's shown as not found on platforms where they do work also.

    I have tried running the Dependancy Walker profiler on regsvr32 but it gets so far and Dependacy Walker stops responding. This happens even if I don't give regsvr32 command line agruments which should make it put up a usage dialog, which doesn't come up. The stop responding happens if I try the same thing in Windows 7 64 bit. But I can profile other 32 bit apps on both platforms. I am using the 32 bit version of Dependancy Walker. The only thing I can say is the last DLL loaded is imm32.dll. Since Dependancy Walker stopped responding, I can't go back and look at more of the log.

    I had seen another post where someone was having a similar problem with a VB6 Addin for an Office product on Windows 8. In that case, the addin worked when the PC was upgraded from Windows 7 to Windows 8. It stopped working when a clean install was done. This implies that something needed was carried forward on the upgrade that isn't added on a clean install. The developer of that addin got involved in the discussion, but there was no resolution. I have a clean install. There has not been a test of doing an upgrade yet.

    Anybody have any good ideas short of rewriting the addins as managed?

    Thanks in advance.


    Don Rosengrant

    Friday, July 12, 2013 2:10 PM

Answers

All replies

  • Hi Don,

    Thank you for posting in the MSDN Forum.

    I'm trying to involve some senior engineers into this issue and it will take some time. Your patience will be greatly appreciated.

    Sorry for any inconvenience and have a nice day!

    Best regards,


    Quist Zhang [MSFT]
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Monday, July 15, 2013 11:47 AM
    Moderator
  • Hi Quist,

    Thanks for the reply. I had tried a skeleton addin with VB6 using the addin template. It does the same thing so that eliminates the special code for our application.

    When running procmon, the process exit is 5, which I determined is access denied. But there isn't anything else in the procmon output to indicate an access denied. So I don't know what's causing that.

    Hope this helps.


    Don Rosengrant

    Monday, July 15, 2013 12:38 PM
  • VB6 Add-ins created with the VB6 Designer fail to register with this method.

    My solution was to remove the Designer (*.dsr) file from the VB6 project and add a "Connect" class implementing IDTExtensibility2. Of course you have to manually add the add-in registry entries (HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins).

    This article shows how to do both - http://support.microsoft.com/kb/238228

    Wednesday, July 24, 2013 6:11 PM
  • Hello Don,

    VB6 based add-ins have a dependency on the Add-In Designer Object Library (msaddndr.dll), which is no longer shipped with Office 2013 (http://technet.microsoft.com/en-us/library/cc178954.aspx see under OSF section). If the add-in setup project did not include this DLL, then the Add-in registration would fail.

    To resolve this issue :-

    please follow the steps mentioned in the blog below

    http://blogs.msdn.com/b/vsod/archive/2012/11/21/vb6-based-add-ins-may-fail-to-work-on-office-2013.aspx

    Regards

    Sidharth

    • Marked as answer by Don Rosengrant Thursday, August 29, 2013 1:18 PM
    Wednesday, July 31, 2013 9:55 PM
  • Hi Sidharth

    The issue is with Windows 8. It works with Windows 7 and Office 2013. Although I'm not sure why. It works with a new install or upgrade from a previous office. DependencyWalker doesn't show msaddndr.dll as a dependancy, which is probably why it works.

    We are doing this where the dll resides on a network drive. Although copying it local drive doesn't work either. I'm an admin on the server where the dll is, and on the machine. Running the command prompt as admin doesn't work because the admin doesn't have access to the domain.

    This error is an "unspecified error", which isn't too helpful. It's not like the error was it couldn't find DllRegisterServer entry point, or some other entry point or couldn't find a file. It's when regsvr32 is registering the dll which I wouldn't think would be dependent on other files, especially any that are dynamically linked. It's just trying to put entries in the registery.

    We have C++ COM dlls that will self register. It's the VB6 ones that aren't. It seems like it's some kind of security issue.

    Patty,

    The dll has a connect class that implements IDTExtensibility2.


    Don Rosengrant

    Friday, August 23, 2013 4:03 PM
  • Hi All,

    I have ActiveX COM DLLs that are add-ins for Office. When using regsvr32 to register them on Windows 8 64 bit I get the error 0x80004005, unspecified error (real helpful). Office 2013 is installed on the machine.

    The DLLs reside on a network drive. Although copying them to  the local drive doesn't work either.

    They would register on Windows platforms up to Windows 7 64 bit with Office 2013.

    They don't register on Windows 8.

    I am an administrator on the machine and the server where the DLLs reside.

    I ran the command prompt as "Run as administrator".

    I have run ProcMon, but that doesn't show any failures. There are no failures doing RegSet* and any reads of the DLLs are successful. There aren't any file writes. The only thing I see is ProcMon shows an exit code for regsvr32 of 5 for the process, Access is denied.

    I have run Dependency Walker. That doesn't show anything missing except ieshims.dll which as far as I have been able to gather is a deficiency in Dependency Walker. It's shown as not found on platforms where they do work also.

    Dependency Walker does not show msaddndr.dll as a dependency, which is not distributed with Office 2013. However adding it does not fix it.

    We have C++ COM DLLs that do self register. It's the VB6 ones that don't self register. It seems that if the unmanaged  C++ DLLs self register, the unmanaged VB6 ones should also.

    I had seen another post where someone was having a similar problem with a VB6 Addin for an Office product on Windows 8. In that case, the addin worked when the PC was upgraded from Windows 7 to Windows 8. It stopped working when a clean install was done. This implies that something needed was carried forward on the upgrade that isn't added on a clean install. The developer of that addin got involved in the discussion, but there was no resolution. I have a clean install. There has not been a test of doing an upgrade yet.

    However, since regsvr32 returns "Access is denied", it seems like a security issue. But ProcMon isn't showing what is being denied access to.

    I'm not getting anything about DllRegisterServer not found, some other entry point not found, or not finding files.

    Anybody have any good ideas short of rewriting the addins as managed?

    Thanks in advance.



    Don Rosengrant

    Friday, August 23, 2013 6:57 PM
  • Hi Sidharth,

    I finally got back to this. I had copied msaddndr.dll to the DESIGNER directory. However I missed having to register it. Once I did that, it worked.

    I'm still not sure why it worked with Win 7 / Office 2013 clean install. I hadn't done the test so I don't know how "clean" clean is. There may have been something left over from an image it was done from.

    Thanks for your help. Sorry about the confusion.


    Don Rosengrant

    Thursday, August 29, 2013 1:22 PM
  • Hi Don,

    you made my day.

    This was exactly the solution for my Problem.

    Have a good weekend

    Andre

    Friday, January 17, 2014 4:39 PM