Known issues when you develop custom solutions for Office Outlook 2007

Summary

This article discusses some known issues when you develop custom solutions for Microsoft Office Outlook 2007. This article also provides an overview of some known issues with the Outlook 2007 development platform. These issues include changes to command locations and changes to how Outlook displays COM add-ins. Additionally, this article discusses functionality changes in Outlook 2007. The known issues that are mentioned in this article are not directly related to the object model, to custom forms in Microsoft Office Outlook 2003 or in earlier versions of Outlook, or to the form regions in Outlook 2007.

The "Disabled Items" command is now located on the Help menu

In Outlook 2007, the Disabled Items command has moved from the About window to the Help menu. To access the Disabled Items dialog box, use one of the following methods.

  • Method 1

    On the Help menu, select Disable Items.

  • Method 2

    1. On the Tools menu, select Trust Center.
    2. In the Navigation Pane, select Add-ins.
    3. In the Manage list, select Disabled Items, and then select Go.

COM add-ins are disabled when you start Outlook 2007 by using the /safe switch

You can start Outlook 2007 and earlier versions of Outlook by using the /safe switch. In earlier versions of Outlook, the /safe switch only disables Microsoft Exchange client extensions (ECEs). In Outlook 2007, the /safe switch also prevents COM add-ins from loading. This behavior has been the behavior in other Office applications since Office 2000.

To access the Allow script in shared folders option and the Allow script in public folders option in Outlook 2007, follow these steps:

  1. On the Tools menu, select Trust Center.
  2. In the Navigation Pane, select E-mail Security.

Notice that the Allow script in shared folders option and the Allow script in Public Folders option are located under Script in Folders.

The new DontDisplayHKLMAddins registry entry hides COM add-ins

In Outlook 2007, you can use the DontDisplayHKLMAddins registry entry to hide COM add-ins that are registered under the HKEY_LOCAL_MACHINE key. When you hide these COM add-ins, users cannot unload them. When you enable the DontDisplayHKLMAddins registry entry, Outlook 2007 has the same behavior as earlier versions of Outlook.

To add the DontDisplayHKLMAddins registry entry, follow these steps:

  1. Select Start, select Run, type regedit in the Open box, and then select OK.

  2. Locate and then right-click the subkey HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\Security.

  3. Point to New, and then select DWORD Value.

  4. Type DontDisplayHKLMAddins, and then press ENTER.

  5. Right-click DontDisplayHKLMAddins, and then select Modify.

  6. In the Value Data box, type 1 to hide the COM add-ins that are registered under the HKEY_LOCAL_MACHINE key, and then select OK.

    Note

    If you type 0 in the Value Data box, or if you leave the Value Data box empty, the COM add-ins are displayed.

  7. Exit Registry Editor, and then restart the computer.

When the select registry entry is equal to 1, all COM add-ins are still displayed in the Trust Center. This registry setting hides HKLM-registered COM add-ins only in the COM Add-Ins dialog box. This should be acceptable because you can only load and unload the add-ins by using the COM Add-Ins dialog box.

The new DisableCreateServices registry entry prevents specific MAPI services from loading

An administrator can create the DisableCreateServices registry entry under the HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\Options key. This registry entry is new in Outlook 2007. You can use the DisableCreateServices registry entry to prevent specific MAPI services from loading.

The DisableCreateServices registry entry stores a string value. The string value is a semicolon-delimited list of MAPI services. The names of the services are the MAPI names that appear in the Mapisvc.inf file. For example, if the following is a subset from a Mapisvc.inf file, you can use a string value of MSOMS;OMSAB in the DisableCreateServices registry entry to prevent users from adding these two services.

[Services]
MSOMS=Outlook Mobile Service
OMSAB=Mobile Address Book

[Default Services]
MSOMS=Outlook Mobile Service
OMSAB=Mobile Address Book

In the context of custom solutions, developers should be aware that organizations can now deploy policies that may restrict using the MAPI service.

Custom properties may not propagate in some scenarios

The AllowNamedProps registry key was introduced in Microsoft Office Outlook 2003 Service Pack 2 (SP2). This key stores a list of custom properties that you can use in Outlook. For more information, see Changes to custom properties in Outlook.

Microsoft Knowledge Base article 907985 also describes the following registry keys:

  • AllowTNEFtoCreateProps
  • AllowMSGFilestoCreateProps
  • DisallowTNEFPreservation

These three registry keys are no longer supported in Outlook 2007.

Limited support for customizing context menus

Outlook 2007 provides support for customizing some of Outlook's native context menu. For more information, see How to: Customize an Item Context Menu.

It is not possible to customize Word's context menu that appears when the user right-clicks in the Message or Notes field (Body property) of an item. This functionality is provided in later versions of Microsoft Word.

Outlook Today is being deprecated

Developers are encouraged not to customize the Outlook Today page. This feature is being deprecated. It is being maintained only for backward-compatibility reasons.

Visual Basic 6.0 MAPI controls are no longer supported

Microsoft Visual Basic 6.0 includes two MAPI controls that use Simple MAPI to provide integration with MAPI-based e-mail applications. These controls were not tested with Outlook 2007. However, there is at least one major known issue with these controls in Outlook 2007. Use of these controls with Outlook 2007 is not supported.

The Outlook protocol no longer works outside Outlook

The Outlook protocol (Outlook://) has been changed. This protocol will only work when you use it in Outlook. You can use this protocol on a folder home page, on the Web toolbar, or in the body of an Outlook item.

Note

Outlook does not automatically recognize the Outlook protocol when you type the protocol in the body of any item. However, the protocol works if you set it as a hyperlink.

Collaboration Data Objects 1.2.1 is no longer included with the 2007 Office system

Collaboration Data Objects (CDO) 1.2.1 is a package that provides access to Outlook-compatible objects through a COM-based API. Instead of using CDO 1.2.1, developers are encouraged to use the Outlook object model if they can.

Note

This version of CDO was created for Microsoft Exchange Server. Therefore, this version of CDO does not generate guard security prompts for the Outlook object model when you use CDO to programmatically access recipient information or send e-mail messages. Because of this behavior, the new Group Policy support for security settings in Outlook 2007 does not apply to CDO.

Developing attachment preview handlers for Outlook

Outlook 2007 lets you preview certain types of attached files when you are viewing e-mail messages. Outlook and other applications in the 2007 Office system use the same API architecture that Windows Vista uses. For information about how to create a preview handler, see Building Preview Handlers.

Web form functionality has been removed

You cannot use Outlook 2007 to connect to Microsoft Exchange Server 5.5. Additionally, the Exchange Server 5.5 Web form rendering feature has been removed from the Options dialog box. To access this feature, follow these steps:

  1. On the Tools menu, select Options, and then select the Other tab.
  2. Under General, select Advanced Options.
  3. Under In all Microsoft Office programs, select Custom Forms.

MAPI forms no longer open by default

By default, Outlook 2007 does not open MAPI forms that were created by using C++. To enable this functionality, follow these steps:

  1. On the Tools menu, select Options, and then select the Other tab.
  2. Under General, select Advanced Options.
  3. Under In all Microsoft Office programs, select Custom Forms.
  4. Select the Allow forms that bypass Outlook check box.

The DisableAddinBtns policy key is no longer supported

Earlier versions of Outlook support the DisableAddinBtns policy key. You can use this policy key to disable the buttons for add-ins. When you disable the buttons, users cannot load or unload Exchange client extensions in Outlook. Outlook 2007 no longer supports this policy key.

COM add-ins that are registered in the HKEY_LOCAL_MACHINE key are no longer hidden by default

COM add-ins can be registered in either the HKEY_CURRENT_USER key or the HKEY_LOCAL_MACHINE key. In earlier versions of Office, add-ins that are registered in the HKEY_CURRENT_USER key appear in the COM Add-ins window. However, add-ins that are registered in the HKEY_LOCAL_MACHINE key do not appear in the COM Add-ins window. This behavior lets developers and administrators register an add-in in the HKEY_LOCAL_MACHINE key so that users cannot remove the add-in.

The 2007 Microsoft Office system changes this default behavior. The Trust Center and the COM Add-ins window list all registered add-ins. If administrators want to hide add-ins that are registered in the HKEY_LOCAL_MACHINE key, they can deploy a policy key to enable the earlier behavior.

To hide add-ins that are registered in the HKEY_LOCAL_MACHINE key, follow these steps:

  1. Select Start, select Run, type regedit in the Open box, and then select OK.
  2. Locate and then right-click the subkey HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\Security.
  3. Point to New, and then select DWORD Value.
  4. Type DontDisplayHKLMAddins, and then press ENTER.
  5. Right-click DontDisplayHKLMAddins, and then select Modify.
  6. In the Value Data box, type 1 to hide the add-ins that are registered in the HKEY_LOCAL_MACHINE key. Select OK.
  7. Exit Registry Editor, and then restart the computer.

Management of server-side Exchange Server scripts is no longer supported

In earlier versions of Outlook, you can manage Exchange Server scripts on the Agents tab in a folder's Properties. Exchange Server 5.5 and later versions of Exchange Server support these server-side scripts. The Agents tab is provided by an Exchange client extension (Scrptxtn.dll) that Outlook installs. Additionally, these scripts depend on the Microsoft Exchange Server Event Service Configuration Object Library (Esconf.dll).

The Scrptxtn.dll file and the Esconf.dll file are not included with Outlook 2007. Therefore, you cannot install, uninstall, and manage server-side Exchange Server scripts in Outlook 2007. If you must have this functionality, you must use an earlier version of Outlook.

Note

Exchange 2000 Server introduced the more robust event sink functionality that is designed to replace Exchange Server scripts. The Agents tab is not related to event sinks. Additionally, because event sinks have been available for a while, the effect of this design change should be minimal.

Exchange client extensions are being deprecated

The Exchange client extension (ECE) architecture was originally supported by the Exchange Server client in Microsoft Windows 95. Outlook 97 also supports Exchange client extensions. Later versions of Outlook, including Outlook 2007, still support ECEs for backward compatibility reasons. However, developers are now strongly encouraged using the COM add-in architecture for building new Outlook add-ins. Many of the changes in Outlook 2007 have been implemented as "ECE-parity" features. Because Outlook now has these features, support for Exchange client extensions may be discontinued.

Exchange client extensions do not handle To-Do Bar selections correctly

Outlook 2007's new To-Do Bar feature was not designed to work with the manner in which Exchange client extensions keep track of selected folders and items in the OnSelectionChange event. This is a limitation of ECEs in Outlook 2007. Developers should use the Selection object in the Outlook object model instead.