Microsoft Outlook Development Technologies
To enhance Outlook functionality or interface other applications with Outlook, you need to know the Outlook Object Model and the key technologies listed below.
Outlook Object Model
Each version of Outlook adds onto the object model. The easiest way to browse the object model is to start VBA in Outlook, then press F2 to bring up the object browser. Switch to the Outlook library, then select any class to see its properties, events, and methods. Press F1 to get the Help topic related to any class member.
The object model reference is also available online on MSDN:
For a visual representation of the object model, see:
For a tutorial on the object model, see:
Key technologies
These technologies can help you build Outlook client applications. Outlook is not suitable to automate from a server or a Windows service; see:
Outlook VBA
Use VBA to add functionality for your personal use or to prototype functionality that will eventually be incorporated into an add-in or custom form. See:
Custom Outlook forms
Custom forms are user interface templates that, when properly published, can also run code to enhance the functionality of individual Outlook items. The code behind Outlook forms is written in VBScript. See:
COM add-ins
COM add-ins, which integrate tightly with Outlook, are the best way to distribute code that you may have prototyped in VBA. See:
Form regions
Introduced in Outlook 2007, form regions combine with add-ins to provide new user interface design and coding possibilities to Outlook items, without the need to use published custom forms. See:
Custom task panes
Introduced in Outlook 2007, custom task panes allow the developer to add a custom panel to the Outlook Explorer or Inspector window. See:
Folder home pages
A folder home page (or FHP) is a web page displayed in an Explorer window in Outlook using a folder's WebViewURL and WebViewOn properties. The Outlook Today page used for the root folder of the default information store is an example of a folder home page. FHPs for default folders can be managed with Group Policy; my Outlook 2007 programming book includes an example of an FHP that configures a custom rule when Outlook starts up. For examples Introduced in Outlook 2007, custom task panes allow the developer to add a custom panel to the Outlook Explorer or Inspector window. See:
Additional Outlook technologies
These technologies are less commonly used in Outlook integration scenarios.
Outlook Integration API
In addition to the Outlook object model, Outlook also exposes a number of additional APIs that allow third-party developers to extend Outlook 2003 or later using C++ or Delphi. To download the entire reference for Outlook 2007 and see what's new for Outlook 2007, see:
The Account Management API provides access to user account information and notifications of account changes:
The Offline State API supports Outlook callbacks, notifying clients of changes in a user's connection state in Outlook—for example, from being offline to being online in Outlook.
The Free/Busy API allows mail provides to expose free/busy status information about specific user accounts within a specific time range.
The MAPI-MIME Conversion API supports conversion between MIME objects and MAPI messages.
The Store API provides miscellaneous functionality to developers of MAPI store providers.
According to Microsoft's Stephen Griffin, the Indexing Status feature for Outlook 2007 works only against .pst and Exchange stores; no documentation is available on how to implement it for third-party stores.
The Replication API allows a MAPI transport provider to replicate data between a dedicated .pst file and a server or other external data source. To make this work, you need a "wrapped" .pst file.
The Data Degradation Layer provides the ability to hide the underlying native character format of an Outlook object, allowing a client to access the object in a preferred character format rather than in the object's native character format (Outlook 2007 only):
The Attachment Security API allows an application to verify whether an attachment is blocked by Outlook security (Outlook 2007 only):
More useful articles from the Outlook 2007 Auxiliary Reference:
Alternative Microsoft APIs
Outlook data -- including hidden properties, items, and folders -- can also be accessed by through these programming interfaces:
While Outlook data can be exposed in Access, this technique has major limitations. See:
Other alternative APIs
These programming libraries wrap Extended MAPI to make it more accessible. Redemption also dupliicates almost all of the functionality of CDO 1.21 and exposes the Exchange includes features to help in a way that makes provide Outlook data -- including hidden properties, items, and folders -- can also be accessed by through these programming interfaces:
- Outlook Redemption - also duplicates most of the functionality of CDO 1.21 and exposes features of the Incremental Change Synchronization (ICS) API for Exchange mailbox and public folders
- MAPI33 - for .NET languages only
- Maclean MAPI (MMAPI) - SDK designed for building email migration, email archiving, email analytics, and electronic discovery applications. Can process Exchange stores, .pst files, and .msg files. Supports multi-threading.
Security policy labels
Security policy modules help control classification levels within an organization. See:
Discussion
Samples
For C++:
For Delphi:
For Visual FoxPro:
Also see the individual technology pages listed to the left for samples using specific Outlook technologies.
|