UNO, OpenOffice, and MonoDevelop
Microsoft Office developers have long bragged about their ability to control pretty much anything in Office via COM automation. Without countless applications written in VBA ranging from the trivial to mission critical, it is often the reason many companies don't even consider trying OpenOffice.
But unbeknownst to most, OpenOffice developers have a few tricks up their sleeve. The cornerstone of OpenOffice development is the UNO component technology. Like COM, it is designed for both in-process and cross-process development. It does however have a few advantages over COM. For example, it supports exceptions and promises far less glue code for new APIs.
Like COM, UNO supports a wide variety of languages such as C++, Java, Delphi, Perl, even .NET and Mono. But though it was ported to Mono years ago, getting it setup was often more effort than it was worth.
Recently Michael Hutchinson added support for OpenOffice to MonoDevelop. Simply use the Add-in manager for MonoDevelop to download OpenOffice Automation Samples to get the necessary templates. Miguel de Icaza has more detailed instructions and screen shots.