Our experimental implementation of OLE in .NET (not entirely in C#, a MFC proxy is somewhere around) is so full of hacks that we must definitely re-write it from scratch. A primary issue is the bi-directional inter-process communication, we have user .NET Remoting but it’s a bit of overhead, COM is not so usable so we may resort to using Win32 concepts like File Mapping and such.

The basic idea is of an MFC OLE Server (as generated by the Visual C++ wizard) that simply instantiates the real application (written in .NET) and dispatches drawing requests and document openings, while handling the OLE commands like Copy as link.