More Outlook Resource Sites

Microsoft Developer Network (MSDN)

FAQs and other general resources

Microsoft Outlook 2003 Problems for Developers

Outlook 2003 expands the Outlook object model slightly to support things like the side-by-side calendar display, quick flags, better handling of conflict resolution, pictures on contacts, an expanded event for handling incoming mail, Unicode messages and PST files, and several other new features. See What's New in Microsoft Office Outlook 2003 for Developers for a complete rundown with sample code. This page deals with potential problems that Outlook 2003 and its service packs introduce.

Design Changes

New Blocked Properties

Microsoft has added Body and HTMLBody, the two properties that represent the main content of a message or other Outlook item, to the list of properties that trigger security prompts, because message bodies often contain address information. (Inspector.WordEditor and Inspector.HTMLEditor are also blocked, for the same reason.) For other blocked properties and methods, see:

The above articles explain that, at the same time, Microsoft has changed direction on what environments should restrict access to such guarded properties. Published Outlook forms, Visual Basic for Applications code, and properly constructed Outlook add-ins will no longer trigger security prompts for standalone users. Yet, Exchange administrators can still choose to manage Outlook security through the Outlook Security Settings folder and form; for best results, use a mail profile to manage security settings that does not connect to Exchange in cached mode.

Programs that use the Outlook object model, but are external to Outlook will continue to exhibit prompts if they use the guarded properties. Furthermore, Outlook developers need to construct their add-ins in a particular way in order for those add-ins to avoid the prompts. Fortunately, this is not really a change, because the same construction is required for add-ins designed to be trusted by the Exchange security settings form. For a detailed explanation, see my article at Outlook 2003 Minimizes Intrusion of Security Prompts.

Blocked ActiveX Controls

One-off forms present new problems in Outlook 2003. Not only is VBScript code behind the form blocked, as it is in every version of Outlook with the Email Security Update, but Outlook 2003 adds new restrictions on ActiveX controls. By default, only the basic form controls (text box, combo box, etc.), message body control, recipient control, and Outlook View Control will load on a one-off form. If any other control is present, when the user attempts to display the page showing that control, they'll see this error message:

To help prevent malicious code from running, one or more objects in this form were not loaded. For more information, contact your administrator.

The ideal solution for this issue is to avoid one-off forms completely. If you must use a one-off, you can use a registry entry or policy to control the behavior. To use a registry entry, add a DWORD value named AllowActiveXOneOffForms to the HKCU\Software\Microsoft\Office\11.0\Outlook\Security value and set it to one of these values:\

0   Load only the frm20.dll controls, the Outlook View Control, Outlook Recipient Control, and the docsite (message body) control
1   Allow only controls marked as "safe for initialization" to load
2   Allow all ActiveX controls to load

You can also use a policy to control this setting -- HKCU\Software\Policies\Microsoft\Office\11.0\Outlook\Security with the same DWORD value and allowable values.

For more information see the Office 2003 Resource Kit article, How Policies Work, which also has a good description of the concept of “safe for initialization” ActiveX controls.

Note that published forms are not affected by this issue. If you're seeing the error message above, that's a certain indication that the form is now a one-off.

However, some controls, such as the Microsoft Rich Edit control, are blocked completely. If you try to use one of those, you'll see this error message:

"The subject is not trusted for the specific action."

Search Folders

Microsoft's addition of "search folders" to Outlook 2003 raises some issues when working with folders in code. A search folder is a multi-folder view of messages meeting certain criteria.

If the user is currently viewing a search folder, Application.ActiveExplorer.CurrentFolder returns a valid MAPIFolder object. However, accessing certain properties and methods will generate errors:

  • MAPIFolder.Folders -- A search folder has no subfolders.
  • MAPIFolder.InAppFolderSyncObject
  • objItem.MoveTo MAPIFolder -- You cannot add items directly to a search folder.

You should, therefore, include error handling in any application that uses these properties or methods.

Forms in Other Mailboxes

Outlook 2003 includes a new setting -- turned off by default -- to allow forms in shared mailboxes to run script. You can change the setting by choosing Tools | Options | Other | Advanced Options and checking the box for Allow script in shared folders. You'll see that there is also an option for Allow script in public folders. The corresponding registry values are in the HKCU\Software\Microsoft\Office\11.0\Outlook\Security key -- SharedFolderScript and PublicFolderScript, both DWORD values.

Note that these settings affect both script in custom forms for items in public folders and script in folder home pages for such folders.  This issue also affects Outlook 2002 SP3, which has no UI for this setting; the registry entry is essentially the same, though -- just use 10.0 instead of 11.0.

See:

Known Problems

Substituting a custom form for a default form apparently does not work for the Read form for messages.

A small number of Help topics contain incorrect information, e.g.:

If security settings are deployed in an Outlook 2003 environment, including both default security settings and exceptions, install this hotfix on all machines to allow them to get exception settings while in cached Exchange mode:

Other known issues:

Service Pack 1 Issues

Service Pack 1 for Office 2003 is available via Microsoft Update or as a complete download.

Design Change

The new default behavior for custom forms is to append the user's autosignature. You can suppress this behavior completely by implementing a new NoAutosigOnCustomForms registry value; see Multiple signatures added on a custom multi-page form in Outlook 2003. Note that the registry value affects only published forms. For .oft files, Outlook will still insert the automatic signature.

Issues Fixed

In theory, the forms cache problems endemic to Outlook 2003 should be fixed. However, we've had two reports of forms cache corruption symptoms still occurring. At least the major problem with Outlook hanging after custom form use in a Public Folders\Favorites folder is resolved. For more information, see:

Other issues fixed:

  • An item located with the Find button does not display in its custom form
  • When you create a custom form in Outlook 2003, the Subject box may be truncated to 255 characters.
  • If you use a MultiPage control on a custom form in Outlook 2003 and you change tabs, the Message control may appear blank.
  • Using the GoToDate method with Late Binding causes Outlook to quit unexpectedly.
  • E-mail messages that are based on an organizational form do not appear correctly in Outlook 2003 in Cached Exchange Mode: An e-mail message that was created from an organizational form may not appear as expected when Outlook 2003 is in Cached Exchange Mode. Additionally, your connection to the e-mail server is lost.
Service Pack 2 Issues

Service Pack 2 for Office 2003 is available via Microsoft Update or as a complete download. See Outlook 2003 SP2.

Design Changes

The MSKB article Developer information about the calendar changes in Outlook 2003 Service Pack 2 and later versions explains that when a user accepts a meeting or update, Outlook will delete the original appointment (if present) and create a new one. The reason for this change is to resolve problems related to meetings disappearing from the Calendar, but because a new item is created, any application that depends on using an appointment's EntryID to retrieve it later will need to use a different technique. For a variety of approaches to autonumbering or generating a unique ID for items, see:

A second design change is described in the article Changes to custom properties in Outlook 2003 Service Pack 2. Its most obvious effect is that an .oft file template that contains a custom property not present in the default folder for that type of item will behave differently than in previous versions. If the user opens such an .oft file directly, the custom form layout will not appear. Instead, the user will see the default layout for that type of item. To see the custom form layout, the user must launch the .oft file through the Tools | Forms | Choose Form or File | New | Choose Form ddialog, choose User Templates in File System, and select the .oft file from the folder where the file is saved. The article describes several new registry values, including AllowNamedProps, which are available but not recommended for loosening the new, more secure custom property behavior.

The requirement that .oft files with ad hoc custom properties be opened through the Choose Form dialog makes it no longer practical to use a pre-addressed .oft file as a way to conduct surveys among Outlook recipients.

Issues fixed

New MAPI function to access native body

Messages that contain large custom properties may be displayed with a blank message body in Outlook 2003.

Custom contact forms in Outlook 2003 may not display extended characters when the form contains lots of code.

When you create a custom contact form in Outlook 2003, Revise Contents is not displayed on the Edit menu.

When you send e-mail programmatically, style sheets may not be applied and attachments may not be displayed in the e-mail message.

After you programmatically save a Word document that is embedded in an Outlook 2003 WordMail message, you may be not be able to create new messages. See DDescription of the Outlook 2003 post-Service Pack 1 hotfix package August 21, 2004 for more details.

When you try to open an Outlook 2003 form that contains a custom action, you may receive an error message.

If you try to perform a function after you run a script in Outlook 2003 that connects an Outlook 2003 Calendar folder that belongs to another user to your calendar, Outlook 2003 quits unexpectedly

Custom properties of custom appointment form not transmitted on forward of meeting request.

When you use the Outlook Object Model to create an add-in to remove attachments from an HTML e-mail message, the add-in cannot remove any inline attachments, such as inline graphics, from the e-mail message.

WWhen a custom program or an Outlook 2003 plug-in uses the MAPILogonEx function, each call to this function creates several security tokens that are not disposed of after the MAPILogonEx function finishes. Over time, these tokens accumulate and cause the custom program, the Outlook 2003 plug-in, or Outlook 2003 to stop responding or to crash.

You cannot display an e-mail message form when the forms cache file (Frmcache.dat) is missing.

In Outlook 2003, you point to New on the File menu, click Choose Form, and then view a folder by using Category Tree view. You change the view to Category Tree view by clicking the rightmost icon in the upper-right corner of the Choose Form dialog box. When you do this, some forms may be listed under the wrong categories and subcategories.

If you run a Outlook object model code to programmatically add an attachment to an e-mail message that you are trying to forward in Outlook 2003, the forward header is removed from the e-mail message.

You may receive a "Run-time error '13': Type mismatch" error message when you try to programmatically open an encrypted e-mail message in Outlook 2003.

TThe Tab key may not after setting HTMLBody in a reply or forward message.

When you try to open an Outlook 2003 form that contains a custom action, you may receive the following error message: Could not install the custom actions.

If you use a Microsoft Exchange Client Extension that adds a temporary attachment to an Outlook 2003 e-mail message, the attachment is saved with the e-mail message when you close the e-mail message instead of being removed. For more information, see DDescription of the Outlook 2003 hotfix package August 2, 2004.

If you run a custom program that programmatically starts Outlook 2003, and then you quit Outlook 2003, the custom program adds an Outlook icon in the notification area and continues the Outlook process. For more information, see DDescription of the Outlook 2003 post-Service Pack 1 hotfix package November 19, 2004

Post SP2 Issues

The Security Update for Outlook 2003 January 9, 2007 (KB article 924085) broke the use of Item.Close in VBScript code behind custom forms. This issue is apparently fixed in a post-SP3 hotfix; see below. 

The Security update for Outlook 2003 January 10, 2006 resolves an issue with using CDO 1.21 to get the store ID for an Exchange mailbox and also describes two issues with Cdo.dll that are fixed by Exchange 2003 hotfixes. However, this fix also apparently causes some problems for developers:

  • If the folder parameter is used with CreateItemFromTemplate, Outlook may quit.
  • If you trap the MailItem.Send event and set its Cancel parameter to True, an Inspector.Close event fires, even though the message remains open.

Microsoft says the first issue is apparently fixed in another hotfix, - Description of the Outlook 2003 post-Service Pack 2 hotfix package January 23, 2006, which also fixes an issue related to custom form custom actions and long delays in displaying the Choose Form dialog.

A reported side effect of SP2 is that, in some instances, creating a form from an .oft file by using the Application.CreateItemFromTemplate method will trigger a prompt for a location to store the item. This most commonly occurs with post forms, but has also been reported in one instance for a message form. This presents a potential problem for applications that depend on CreateItemFromTemplate to publish forms programmatically. The Outlook 2003 post-Service Pack 2 hotfix package November 16, 2005 resolves at least some of these problem with the CreateItemFromTemplate method prompting for the location to save a contact, but you may also need the January 23, 2006 hotfix described above.

The Outlook 2003 post-Service Pack 2 hotfix package November 7, 2005 fixes a number of development issues:

  • You run a program that uses the InspectorClose event to synchronize an Outlook 2003 item, such as an appointment, with the program. When you click Save and Close to save and close the item in Outlook 2003, the InspectorClose event does not run.
  • The TAB key no longer functions when you reply to or forward an e-mail message. This issue occurs if you programmatically insert text into an e-mail message using the HTMLBody property.
  • When you reply to an e-mail message that was created from a custom form in Outlook 2003, you cannot modify the message in Microsoft Office Word 2003.
  • You use a custom form that contains additional text fields in Outlook 2003. The focus in the form is lost when you minimize and then restore the form or press ALT+TAB to switch to another program and then press ALT+TAB again to switch back to the custom form item.
Post-SP3 issues

The December 7, 2007, hotfix should resolve these issues, among others:

  • You apply security update 924085 (MS07-003) for Outlook 2003. You close an Outlook item that uses the Item.Close() event. If the currently closed item is discarded by making a call to the Item.Close olDiscard method, you receive an error message.
  • When you run a macro that retrieves the date of searched Outlook items, the date may be converted incorrectly according to the current time zone.
  • You view a Web page that uses the Outlook View control in your Web browser. If you change an item that is opened in the Outlook View control, Outlook may close unexpectedly.

The October 28, 2008, hotfix adds a NewAccel registry value to solve with the web browser control on custom forms displaying an "operation failed" error when common accelerator keys are used.

 The April 30, 2009, hotfix solves a problem with the default signature not being inserted as expected when an .oft file is used to create a new message while Word is the email editor. For details on how to use the new AttachSignatureToTemplate registry value see: