Accessing the COMAddins Collection

I have had the question posed to me twice in the last week:

If I am automating Outlook from another application, how do I get a reference to an Outlook COM Add-in created with VSTO 2005?

I responded to a customer, and then I answered it in our forums this morning, here:

Call VSTO Addin Functions from external application?

Bottom line: To Outlook, an add-in created by VSTO looks like a COM add-in to Outlook. It doesn't care that there is a difference (vive la difference!). In the registry, instead of a two-part progID, there is only one, just the name of the assembly. So, for example, I have an add-in called, "OutlookAddin18" running in Outlook right now. I can access it like this:

Dim olapp As Microsoft.Office.Interop.Outlook.Application = New Microsoft.Office.Interop.Outlook.ApplicationClass()

Dim o As Microsoft.Office.Core.COMAddIn

Dim addins As Microsoft.Office.Core.COMAddIns

addins = olapp.COMAddIns

o = addins.Item("OutlookAddin18")

Cool. So simple.

Rock Thought for the Day: I am really wanting to get my hands on the Smashing Pumpkins "Mashed Potatoes" collection of songs. They are from a CD that the band made for close friends. I love rarities like this. I wish there were just a massive rarities mall so that you didn't have to search hither and yon to find what you want. If anyone knows of such a place (forget Ebay, folks; it ain't happenin' there), let me know.

What's the best rarity or bootleg you have ever found?

Rock On