Have you worked with VSTO yet?

http://msdn.microsoft.com/office/understanding/vsto/