question

Upvotes
Accepted
1 0 0 0

Migration of .NET Application to 64 and COM Exceptions with calling EikonDesktopDataAPI

Hi, Our Desktop application written in .NET has Eikon integration for many years. Recently we recompiled the application to x64 and since then the integration has been broken. When attempted to execute this line of code, I'm seeing COM exception.

try
{
_eikonDDA = new EikonDesktopDataAPI.EikonDesktopDataAPI();
// we here => Eikon is installed successsfully
}


The stack trace is here

System.Runtime.InteropServices.COMException
  HResult=0x80040154
  Message=Retrieving the COM class factory for component with CLSID {70B3E69B-E207-412E-8A27-E94A01F96728} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
  Source=mscorlib
  StackTrace:
   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.Activator.CreateInstance(Type type)
   at TR.News.Lynx.LiveTemplate.Presentation.Integration.EikonRtListBuilder.Initialize(Boolean immediateStart) in C:\Work\Code\Lynx_Editor-Smartclient\Src\LiveTemplate.Presentation\Integration\EikonRtListBuilder.cs:line 33


  This exception was originally thrown at this call stack:
    [External Code]
    TR.News.Lynx.LiveTemplate.Presentation.Integration.EikonRtListBuilder.Initialize(bool) in EikonRtListBuilder.cs


Is there anything specific to be done that our application which runs as a 64 bit process to still function as expected with the 2 COMinterop binaries we use for the integration? The 2 COM assemblies are

1. Interop.AdfinXRtLib

2. Interop.EikonDesktopDataAPI

eikon-com-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

Upvote
Accepted
13k 61 39 63

Hi @shravan.addaypally

Unfortunately, the .Net DLLs (Interop.AdfinXRtLib; Interop.EikonDesktopDataAPI) are only 32 bit. You will have to continue to build/run as 32-bit if you wish to stick to these .Net libraries.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.