Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

tlbinf32.dll in a 64bits .Net application

Tags:

com

tlbinf32

It seems there is no 64 bits version of tlbinf32.dll, this (old) COM DLL is used to extract informations of COM components. (see this SO answer )

I need to access it from a 64 bits C# application. I did not manage to host it into a separate surrogate process, I'm still obtaining the exception REGDB_E_CLASSNOTREG . My code works for x86 platforms but I have to implement it also for 64 bits.

Can any one help me by providing a step by step procedure to launch it into a surrogate (Dllhost) - or maybe another way to use it ?

Do you know a better alternative to browse trough all methods, classes.. of a native COM Dll ?

like image 981
Malick Avatar asked Jan 04 '23 10:01

Malick


1 Answers

  • open Windows' "Component Services"
  • open nodes to "My Computer/COM+ Applications"
  • right-click, choose to add a new Application
  • choose an "empty application", name it "tlbinf" for example
  • make sure you choose "Server application" (means it will be a surrogate that the wizard will be nice to help you create)
  • choose the user you want the server application to run as (for testing you can choose interactive user but this is an important decision to make)
  • you don't have to add any role, not any user
  • open this newly created app, right-click on "Components" and choose to add a new one
  • choose to install new component(s)
  • browse to your tlbinf32.dll location, press "Next" after the wizard has detected 3 interfaces to expose

That's it. You should see something like this:

enter image description here

Now you can use the same client code and it should work. Note the performance is not comparable however (out-of-process vs in-process).

The surrogate app you've just created has a lots of parameters you can reconfigure later on, with the same UI. You can also script or write code (C#, powershell, VBScript, etc.) to automate all the steps above.

like image 95
Simon Mourier Avatar answered Jan 27 '23 21:01

Simon Mourier