runtime error while registering x64 outlook plugin

Add-in Express™ Support Service
That's what is more important than anything else

runtime error while registering x64 outlook plugin
 
Ivan Petrovic




Posts: 11
Joined: 2011-11-15
Hello,

We are having plugin for Outlook developed in Delphi XE2. 32-bit version is working fine on Outlook x86, but when we recompile with latest v7 version of Add-In-Express using x64 as destination platform we cannot register a plugin DLL. Regsvr32 returns Runtime error 216. Tested on Windows 7 x64 with Outlook 2010 x64.

A DLL has been send to you via email. Any idea where to start looking or to enable debug logging during reigstration?

Is there anything else we need to prepare for x64 beside recompile?

Ivan
Posted 21 Jan, 2012 08:39:34 Top
Andrei Smolin


Add-in Express team


Posts: 18829
Joined: 2006-05-11
Hello Ivan,

It looks like this is some initialization problem. We can't tell you more without the source code. You can debug it yourself: just specify regsvr32.exe in the Host Application field.


Andrei Smolin
Add-in Express Team Leader
Posted 23 Jan, 2012 06:44:03 Top
Ivan Petrovic




Posts: 11
Joined: 2011-11-15
Thread Start: Thread ID: 1396. Process regsvr32.exe (3004)
Process Start: C:\Windows\System32\regsvr32.exe. Base Address: $0000000077922C80. Process regsvr32.exe (3004)
Module Load: regsvr32. No Debug Info. Base Address: $00000000FF090000. Process regsvr32.exe (3004)
Module Load: ntdll.dll. No Debug Info. Base Address: $00000000778F0000. Process regsvr32.exe (3004)
Module Load: KERNEL32.dll. No Debug Info. Base Address: $00000000777D0000. Process regsvr32.exe (3004)
Module Load: KERNELBASE.dll. No Debug Info. Base Address: $000007FEFDAD0000. Process regsvr32.exe (3004)
Module Load: ADVAPI32.dll. No Debug Info. Base Address: $000007FEFDD50000. Process regsvr32.exe (3004)
Module Load: msvcrt.dll. No Debug Info. Base Address: $000007FEFF670000. Process regsvr32.exe (3004)
Module Load: SECHOST.dll. No Debug Info. Base Address: $000007FEFF3F0000. Process regsvr32.exe (3004)
Module Load: RPCRT4.dll. No Debug Info. Base Address: $000007FEFDC20000. Process regsvr32.exe (3004)
Module Load: USER32.dll. No Debug Info. Base Address: $00000000776D0000. Process regsvr32.exe (3004)
Module Load: GDI32.dll. No Debug Info. Base Address: $000007FEFE280000. Process regsvr32.exe (3004)
Module Load: LPK.dll. No Debug Info. Base Address: $000007FEFE2F0000. Process regsvr32.exe (3004)
Module Load: USP10.dll. No Debug Info. Base Address: $000007FEFDE80000. Process regsvr32.exe (3004)
Module Load: ole32.dll. No Debug Info. Base Address: $000007FEFF9F0000. Process regsvr32.exe (3004)
Module Load: COMCTL32.dll. No Debug Info. Base Address: $000007FEFC300000. Process regsvr32.exe (3004)
Module Load: SHLWAPI.dll. No Debug Info. Base Address: $000007FEFDF50000. Process regsvr32.exe (3004)
Module Load: apphelp.dll. No Debug Info. Base Address: $000007FEFD6E0000. Process regsvr32.exe (3004)
Module Load: NULL.dll. No Debug Info. Base Address: $000007FEF2650000. Process regsvr32.exe (3004)
Module Load: SspiCli.dll. No Debug Info. Base Address: $000007FEFD6B0000. Process regsvr32.exe (3004)
Module Load: SHELL32.dll. No Debug Info. Base Address: $000007FEFE480000. Process regsvr32.exe (3004)
Module Load: sfc.dll. No Debug Info. Base Address: $00000000742B0000. Process regsvr32.exe (3004)
Module Load: sfc_os.dll. No Debug Info. Base Address: $000007FEFA920000. Process regsvr32.exe (3004)
Module Load: USERENV.dll. No Debug Info. Base Address: $000007FEFCBE0000. Process regsvr32.exe (3004)
Module Load: profapi.dll. No Debug Info. Base Address: $000007FEFD850000. Process regsvr32.exe (3004)
Module Load: dwmapi.dll. No Debug Info. Base Address: $000007FEFB760000. Process regsvr32.exe (3004)
Module Load: MPR.dll. No Debug Info. Base Address: $000007FEFC800000. Process regsvr32.exe (3004)
Module Load: <UNKNOWN>. No Debug Info. Base Address: $0000000000020000. Process regsvr32.exe (3004)
Module Load: IMM32.dll. No Debug Info. Base Address: $000007FEFF410000. Process regsvr32.exe (3004)
Module Load: MSCTF.dll. No Debug Info. Base Address: $000007FEFE0C0000. Process regsvr32.exe (3004)
Module Load: CRYPTBASE.dll. No Debug Info. Base Address: $000007FEFD740000. Process regsvr32.exe (3004)
Module Load: UxTheme.dll. No Debug Info. Base Address: $000007FEFBFF0000. Process regsvr32.exe (3004)
Module Load: PAOP.dll. Has Debug Info. Base Address: $0000000002050000. Process regsvr32.exe (3004)
Module Load: OLEAUT32.dll. No Debug Info. Base Address: $000007FEFF460000. Process regsvr32.exe (3004)
Module Load: MSIMG32.dll. No Debug Info. Base Address: $000007FEF41C0000. Process regsvr32.exe (3004)
Module Load: VERSION.dll. No Debug Info. Base Address: $000007FEFC9C0000. Process regsvr32.exe (3004)
Module Load: WINSPOOL.DRV. No Debug Info. Base Address: $000007FEF9EC0000. Process regsvr32.exe (3004)
Module Load: WINMM.dll. No Debug Info. Base Address: $000007FEF9910000. Process regsvr32.exe (3004)
Module Load: Security.dll. No Debug Info. Base Address: $000000006B810000. Process regsvr32.exe (3004)
Module Load: Secur32.dll. No Debug Info. Base Address: $000007FEFD4E0000. Process regsvr32.exe (3004)
First chance exception at $000007FEFDADA88D. Exception class EOleSysError with message 'Old format or invalid type library'. Process regsvr32.exe (3004)
First chance exception at $000007FEFDADA88D. Exception class EOleSysError with message 'Old format or invalid type library'. Process regsvr32.exe (3004)
First chance exception at $000007FEFDADA88D. Exception class EOleSysError with message 'Old format or invalid type library'. Process regsvr32.exe (3004)
First chance exception at $000007FEFDADA88D. Exception class EOleSysError with message 'Old format or invalid type library'. Process regsvr32.exe (3004)
First chance exception at $000000000205ACB9. Exception class $C0000005 with message ' X c0000005 ACCESS_VIOLATION'. Process regsvr32.exe (3004)
Posted 24 Jan, 2012 04:07:22 Top
Andrei Smolin


Add-in Express team


Posts: 18829
Joined: 2006-05-11
Do you need my help on debugging this?

Note that 'Old format or invalid type library' occurs when you use program the English version of Excel on a non-English Windows. You bypass this error by passing a correct LCID to methods accepting it. But this doesn't make sense when you register the add-in. Do you create an Excel.Application and access the Excel object model in the constructor of the add-in module?


Andrei Smolin
Add-in Express Team Leader
Posted 24 Jan, 2012 07:03:30 Top
Ivan Petrovic




Posts: 11
Joined: 2011-11-15
We are working on a English Windows 7, English Office, and we are working on Outlook plugin (nothing with Excel). I have sent some part of code via email. Thanks!
Posted 24 Jan, 2012 09:24:02 Top
Andrei Smolin


Add-in Express team


Posts: 18829
Joined: 2006-05-11
Hello Everyone,

The issue was caused by a wrong format of the .tlb. The solution follows:

1. Make a backup copy of your project
2. Open your project in Delphi XE2 and add the PAOP.ridl file to the project
3. Open the PAOP.ridl file and switch to the Design tab
4. Click the Refresh Implementation button on the toolbar
5. Build the project for the x64 platform
6. Try to register the dll

Hope this helps.


Andrei Smolin
Add-in Express Team Leader
Posted 25 Jan, 2012 04:03:07 Top