Document level, application level, huh?
Today I saw this post on VSTO forum and I thought it would be a good thing to create a post to describe what's the difference between document and application level VSTO customizations.
Document level
A document level customization is a customization that is applied only to the document. It means that code you write is available only to document selected/created when you create new project. If you open another document don't expect your VSTO customization to run - it will not because the document is not referencing any assemblies. To see if your document has an assembly linked to it, open up respective Word/Excel document and go to File -> Properties. In Custom tab you should see two additional properties - one is _AssemblyName and the other one is _AssemblyLocation.
Application level
Application level customizations work on application level (hence the name) and these customizations are Add-ins. If you create Word/Excel Add-in the functionality of your Add-in will be available in every document/workbook you open. Add-ins aren't linked to particular document/workbook as document level customization instead they are linked to the application.
Is there a document level customization in Outlook? No, there is not. Outlook supports only application level customizations. If you compare Outlook to Word or Excel you will notice that Word/Excel has 'customizable items' (documents/workbooks) and in Outlook you don't have a default item (such as document) that could be customized.