Having a .NET component, it can be used from Win32 environment when it is build as a COM exposed component.
The .NET component can then be utilized as an ActiveX/COM object from TD or any other development environment.
Many 3rd party components on the market do supply a COM exposed interface, so it is usable in both .NET and Win32.
When the COM exposed .NET component is registered on the system, TD can generate the AX library using the ActiveX Wizard.
The library can then be used just like 'normal' ActiveX/COM components in your application. The COM interface acts like a bridge between Win32 and .NET.
Years ago I discovered major issues with visual COM exposed .NET components when used in TD.
TD applications get highly unstable and will eventually crash when such a component is used.
Gupta has investigated this and in the end Gupta devs could not fix it. It seems that the layer between TD internal code and the COM interface does not like the TD environment.
Their only solution was to officially state that TD does not support visual COM exposed .NET components.
We have no option but to create a DOC-BUG which explicitly says that we don’t officially support accessing .NET controls via ActiveX.
So to be very clear. Only VISUAL components have the issue. Non-visual components seems to work without problems.
The issue is present in ALL TD versions (ANSI & UNICODE).
For your reference, this case is extensively communicated in OpenText ticket:
Ticket # 2612289: It is not possible to use the AX components via the generated library
The testcase provided here contains Visual Studio sources to create a simple RTF control which is COM exposed.
Also the TD sources to use COM exposed RTF control.
(for testing you need to regasm the dll first).
TD will crash when starting the form having the control multiple times. Press start and close the form and repeat this.
Depending on the system it can crash the first time or you need multiple times.
The only workaround is to create a VB6 or C++ wrapper (Win32) which is a WIn32 COM component which in turn uses the .NET COM exposed component.