0

I have inherited a .NET/C# application that is supposed to talk to Lotus Domino through their COM interface. It was developed using a full installation of Lotus Notes, with the Domino type library referenced in the Visual Studio project by GUID.

However, now we want it to talk to a Lotus on USB (nomad?) server, which does not register any of those COM components in the registry.

My first thought was to set up SxS manifests to load the component, which seems to get part of the way there. To set this up, I did the following:

tlbimp domobj.tlb /out:DominoWrapper.dll /namespace:Domino

mt -tlb:domobj.tlb -dll:nlsxbe.dll -out:nlsxbe.dll.manifest

I referenced the DominoWrapper.dll assembly in my project, and added this to the app.manifest:

  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="nlsxbe.dll" version="7.0.40.9082"
        processorArchitecture="x86" />
    </dependentAssembly>
  </dependency>

It seems to load the DLLs ok, but when I try to instantiate the Domino.NotesSession() object I get the following unspecified error exception:

System.Runtime.InteropServices.COMException (0x80004005): Retrieving the COM class     factory for component with CLSID {29131539-2EED-1069-BF5D-00DD011186B7} failed due to the     following error: 80004005 Unspecified error (Exception from HRESULT: 0x80004005 (E_FAIL)).

Does anyone know where I may have gone wrong here, or have suggestions for further debugging?

WildCrustacean
  • 5,896
  • 2
  • 31
  • 42
  • I can't answer your question, but I do want to mention that if you are on 64 bit Windows, you should be aware that IBM does not support the COM classes on win64. It can be made to mostly work but you have to get past a similar registry issue, but there are a few things that don't work. If you search other questions here about abating Domino from .Net, you'll find some answers that might help you - and a link to the relevant IBM technote – Richard Schwartz Aug 28 '14 at 13:24
  • 1
    @RichardSchwartz thanks for the information. This is on 64-bit windows, but all the code is 32-bit. Right now I am working around this by manually registering domobj.tlb and nlsxbe.dll in the registry, and then referencing it in my project by GUID, and it seems to work so far. Maybe later on I will revisit this SxS approach. – WildCrustacean Sep 02 '14 at 20:22

0 Answers0