About: VSTO for Outlook
API Type: UI Customization
API Interface: .NET
Business Logic: Adds features to the Outlook UI and to Outlook processing.
Development Languages: .NET, OOM.
Property Access: Yes
Product Versions: Visual Studio 2005 and later, Office 2003 and later.
Summary:
Outlook VSTO add-in development allows you to write add-inapplications which will run in Outlook from Office.
Points of Interest:
- You can use Visual Studio to generate a stub project.
- Outlook VSTO add-ins run only in Outlook from Office.
- The capabilities of this API for are overall greater than what is available with the Add-ins for Outlook API.
- Outlook Object Model code is used for doing work.
- Work with Outlook events.
- EWS code can be used to provide more robust capabilities. You can convert between the identifier used under VSTO and EWS using the EWS conversion API.
- Don't use Outlook Object Model off the mail thread – it's not supported.
- You need to understand the issues with bitness when building applications using Outlook Object Model (OOM). If you do not, then you may likely run into issues during deployment.
- Outlook PIA's (Primary Interop Assemblies) are overall forward compatible. However, you may have issues if you build an application for one version of Outlook but use it with an older version.
- If you use COM components in your add-in then you need to account for bitness issues in your builds and deployment.
More Information:
Office Solutions Development Overview (VSTO)
https://msdn.microsoft.com/en-us/library/hy7c6z9k.aspx
Create VSTO Add-ins for Office by using Visual Studio
https://msdn.microsoft.com/en-us/library/jj620922.aspx
Walkthrough: Creating Your First VSTO Add-In for Outlook
https://msdn.microsoft.com/en-us/library/cc668191.aspx
Simple Outlook Add-in with VSTO 3.0
https://blogs.msdn.microsoft.com/jannemattila/2008/04/06/simple-outlook-add-in-with-vsto-3-0/
Improving the Performance of a VSTO Add-in
https://msdn.microsoft.com/en-us/library/jj729784.aspx
Videos:
VSTO: The Basics
https://channel9.msdn.com/Blogs/jennmar/VSTO-The-Basics
Office Add-in (VSTO) Performance Tips & Tricks
https://channel9.msdn.com/Blogs/funkyonex/Office-Solutions-VSTO-Performance-Tips--Tricks
VSTO: How to Add a Button into the Office Ribbon
https://channel9.msdn.com/Blogs/jennmar/VSTO-How-to-Add-a-Button-into-the-Office-Ribbon
Outlook Context Menus and Creating a Meeting from an Email
https://channel9.msdn.com/Blogs/jwiese/Outlook-Context-Menus-and-Creating-a-Meeting-from-an-Email
Outlook Object Model Overview
https://msdn.microsoft.com/en-us/library/ms268893.aspx
Creating Outlook Form Regions
https://msdn.microsoft.com/en-us/library/bb386301.aspx
Ribbon Overview
https://msdn.microsoft.com/en-us/library/bb386097.aspx
Customizing a Ribbon for Outlook
https://msdn.microsoft.com/en-us/library/bb398246.aspx
Custom Task Panes
https://msdn.microsoft.com/en-us/library/aa942864.aspx
More Information:
Getting Started (Office Development in Visual Studio)
https://msdn.microsoft.com/en-us/library/23cw517s.aspx
Office Development Samples and Walkthroughs
https://msdn.microsoft.com/en-us/library/z63ctsh2.aspx
General Reference (Office Development in Visual Studio
https://msdn.microsoft.com/en-us/library/5s12ew2x.aspx
Managed Reference (Office Development in Visual Studio)
https://msdn.microsoft.com/en-us/library/bb771305.aspx
Office Development Samples and Walkthroughs
https://msdn.microsoft.com/en-us/library/z63ctsh2.aspx
Securing Office Solutions
https://msdn.microsoft.com/en-us/library/bb157863.aspx
Deploying an Office Solution
https://msdn.microsoft.com/en-us/library/bb386179.aspx
Unmanaged API Reference (Office Development in Visual Studio)
https://msdn.microsoft.com/en-us/library/aa942114.aspx
About: Outlook Object Model (OOM)
https://blogs.msdn.microsoft.com/webdav_101/2015/05/18/about-outlook-object-model-oom
About: Mailbox Accessing APIs https://blogs.msdn.com/b/webdav_101/archive/2015/05/28/about-mailbox-accessing-apis.aspx
Samples:
VSTO - How to Customize Outlook's User Interface (Visual Studio 2012)
https://code.msdn.microsoft.com/office/VSTO-How-to-Customize-4b9d3401
Simple Outlook Add-in with VSTO 3.0
https://blogs.msdn.microsoft.com/jannemattila/2008/04/06/simple-outlook-add-in-with-vsto-3-0
Bitness:
Any CPU is best to ONLY be use pure .NET code applications and not when you have .NET code using COM objects. If you use COM components in your add-in then you need to be sure that you have builds targeted for the platform you are targeting. Not targeting for x86 or x64 may get you into trouble at deployment time. As an example if you use a 32bit COM component on a 32bit version of Windows and 32bit version of outlook while developing you will find that the code may not work on a 64bit system running 32bit version of Outlook if you compile as Any and don't release with 64bit versions of those COM components. Any CPU will be handled as 64bit on a 64bit system and since you cannot mix 32bit COM objects in a 64bit process (or 64bit COM components in a 32bit process) the code will fail. Likewise, if you target your project as x86 and try to use it on a 64bit version of Outlook then it won't work either.
Bitness : How to identify Outlook 2010 installation is a 32-bit or 64-bit?
https://blogs.msdn.microsoft.com/deva/2010/01/21/bitness-how-to-identify-outlook-2010-installation-is-a-32-bit-or-64-bit/
Example: Outlook 14.0 32bit under 64bit Windows 10 the bitness flag is x86 here:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\14.0\Outlook
Example: Outlook 14.0 32bit under 64bit Windows 10 the bitness flag is x86 here:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\16.0\Outlook
64-bit editions of Office 2010 https://technet.microsoft.com/en-us/library/ee681792(office.14).aspx
How to: Check the Version of Outlook https://msdn.microsoft.com/en-us/library/office/dd941331.aspx
How to: Determine Whether Outlook Is a Click-to-Run Application on a Computer https://msdn.microsoft.com/en-us/library/office/ff522355.aspx
Developing Outlook 2010 Solutions for 32-Bit and 64-Bit Systems https://msdn.microsoft.com/en-us/library/office/gg549122(v=office.14).aspx
The newer model for add-ins is Mail Apps for Outlook:
About: Mail Apps for Outlook
https://blogs.msdn.com/b/webdav_101/archive/2015/08/07/about-mail-apps-for-outlook.aspx