More Outlook Resource Sites

Microsoft Developer Network (MSDN)

FAQs and other general resources

How the Outlook forms cache works

When a user opens an item, Outlook looks at the value of the item's MessageClass property to determine whether the item should be displayed with a standard form, a custom form, or (beginning in Outlook 2007), a form region. If the item requires a published custom form, Outlook stores a copy of the form on your local hard disk. The next time you need to use the form, Outlook checks this forms cache. If the form is in the cache, Outlook goes to the form's original location to check the form's Modified timestamp. If a user has modified the form since Outlook cached it, Outlook opens the form from its original location and updates the cache with the modified version. If no one has modified the form since Outlook cached it, Outlook loads the form from the cache, which is usually much faster than opening it from the original location.

If the required form isn't in the cache, Outlook looks in other locations, in this order:

  • The forms library for the currently displayed folder
  • Personal Forms library - in the user's default information store
  • Organization Forms library - on the Exchange server

The location of the forms cache depends on the operating system, where %username% is the environment variable containing the user's login name:

  • Windows Vista - C:\Users\%username%\AppData\Local\Microsoft\FORMS
  • Windows XP - C:\Documents and Settings\%username\Local Settings\Application Data\Microsoft\FORMS

The cache contains a Frmcache.dat file, which maintains a summary of cached forms and pointers to the cached files, plus a subfolder for each cached form.

Error Messages

Error messages such as

  • The form required to view this message cannot be displayed
  • Can't create item

often signal corruption related to a custom form—either in the form itself or in the data file on the client that stores forms cache information. Exactly what causes forms cache corruption is not known.

If corruption occurs frequently and clearing the forms cache (see below) does not solve the problem, you can use the ForceFormReload registry entry to force Outlook to reload a form from the original published version when Outlook can't load the form from the cache. See:

Clearing the Forms Cache

The first step in troubleshooting is to use the command in Outlook to clear the cache using the Manage Forms dialog (Tools | Options | Other | Advanced Options | Custom Forms, then click Manage Forms).

If that does not resolve the problem, shut down Outlook and delete the entire contents of the FORMS folder (for locations, see above). 

Notes

The order Outlook uses to look for a form explains a common problem. Suppose a user publishes a new form in the Personal Forms library. Later, the user makes changes to the form and publishes the revised form under the same name but in a different library—Organization Forms. When the user opens an item that uses the custom form for the first time, Outlook loads the version in the Personal Forms Library because Outlook checks that location first, but that version won't include the revisions on the version the user saved in the Organization Forms Library.

The stumbling block is the copy in the Personal Forms library. The solution is to delete that copy by using the Manage Forms dialog (Tools | Options | Other | Advanced Options | Custom Forms, then click Manage Forms). After you delete that copy, the Organization Forms copy usually loads fine. If it doesn't, make sure that you're incrementing the version number on the form's (Properties) page. You can also try using the form to create a new item. When opening a previously created item doesn't load the updated form into the cache, creating a new item sometimes does the job.