Office add-in for MacOS

Emulating Windows internals with .NET on MacOS

The client was facing difficulties in porting their product to MacOS due to lack of official support for non-Windows platforms.

On Windows, there are numerous ways of extending Office functionality, ranging from the good old VBA all the way up to the latest Javascript web add-ins. In contrast, on MacOS we are quite limited: only VBA and Javascript are supported by default.

Finding a way to run the C# add-in on MacOS, with minimal source code changes, was made possible by a year long of research and development of custom tools.

No challenge is too hard when using the right tools.

  • Designed DTrace instrumentation scripts to reverse engineer Office internal function calls.
  • Developed abstraction layer for Windows COM internals (VARIANT, SAFEARRAY).
  • Developed custom Office PIA drop-in replacement.
  • Integrated Avalonia render output into external NSWindow.
  • Investigated inter-process communication bottlenecks, leading to 4x speedup on Windows.

Dtrace · AppKit · Objective-C · Systems Programming · COM · .NET Framework · C# · Avalonia · Reverse Engineering · Win32 API