This article summarizes how the Microsoft Outlook forms cache works in an Microsoft Exchange Server environment and discusses limitations of the forms cache design that you may encounter when creating an Outlook forms solution.
Purpose of the forms cache
To increase performance when opening forms, Outlook stores a copy of the form in a cache so it does not have to retrieve the form every time an item is opened. When forms are stored in a Microsoft Exchange public folder or in the Organizational Forms Library, using a cached version of the form increases performance considerably on both the local computer and the server.
How Outlook locates forms
Before discussing the forms cache, it is helpful to understand how Outlook locates the necessary form when an item is opened. When you first create an item that uses a custom form, the Message Class
field of the item is set to the name of the form. For example, if you have a custom task form called "Corporate" in a public folder, the message class will be IPM.Task.Corporate
When the item is opened from the folder, Outlook checks the message class to see what form should be used to display the item. It then conducts a search for the required form, looking in the following locations:
- Forms Cache: Outlook first checks the forms cache on your computer to see if you have used the form before. If the form is located in the cache, Outlook will load the form from your hard disk drive.
- Current Folder: If the form is not in the cache, Outlook will look in the current folder for the form. Other folders, including parent folders, will not be searched. Forms that are published to a folder are stored as hidden items and cannot be seen in any of the Outlook views.
- Personal Forms Library: If the form is not found in a folder, Outlook checks the Personal Forms Library. The Personal Forms Library is stored in the top-level folder of the default mail store. The default mail store is the set of folders that contains the Inbox that receives incoming mail.
- The Organizational Forms Library: If the form is not available in the Personal Forms Library, Outlook then will check the Organizational Forms Library on the Microsoft Exchange Server.
- The Web Forms Library: If someone created an HTML-based form, published it to a Web server, and you have enabled Web Services in Outlook, Outlook will check to see if an HTML version of the form is available and then open the form in your Web browser.
If a form cannot be found in any of the locations listed, the item is displayed using the standard form for that type of item (standard mail message for a custom mail message, standard contact form for a custom contact form, and so on).
When Outlook checks for an updated form, the last modified time of the form in the cache is compared to the last modified time of the form in the original location. If the original location contains an updated form, Outlook downloads the updated version and updates the forms cache.
Where the forms cache is located
Microsoft Windows 98, and Microsoft Windows NT computersNote
You cannot install Outlook 2002 on a Windows 95-based computer.
Unlike previous versions of Outlook, the forms cache is no longer located in the C:\Windows\Forms folder. The new locations in Outlook 2000 support roaming users. If Windows is not configured for multiple user profiles, the forms cache is located in the following folder:
C:\Windows\Local Settings\Application Data\Microsoft\Forms
If Windows is configured for multiple user profiles, the forms cache is located in the following folder:
Microsoft Windows 2000 Computers
The forms cache is located in the following folder:
C:\Documents and Settings\user_name\Local Settings\Application Data\Microsoft\Forms
How the forms cache works
The forms cache contains a Frmcache.dat file. This file contains summary information and pointers to both the default Outlook forms and any custom forms you have used. Cached copies of custom forms are stored in subfolders of the Forms folder.
The subfolders of the Forms folder are randomly named, but typically resemble the name of the form. The actual forms stored within these folders are cryptically named, but have a .tmp file name extension. If you are unsure about which folder contains a copy of a particular form, the time stamp of the folder or .tmp file may help indicate which form is which.
Outlook sets a 2048-KB limit on the total size of the forms cache by default. To change this setting:
- On the Tools menu, click Options.
- Click the Other tab, and then click Advanced Options.
- Click Custom Forms, type a number greater than 2048 under Maximum space on hard disk, and then click OK.
After the maximum disk space for the forms cache is reached, the oldest unused forms are purged from the cache.
Cache does not support duplicate form names
If you publish more than one form with the same name to multiple locations, the forms cache does not update correctly if you try to use the form from both locations. This limitation is documented in the Outlook 97 forms Help file (Olform.hlp) but was inadvertently omitted from the Outlook 98, 2000, and 2002 versions of this file. The Outlook 97 Help file states the following:
About the form name and message classNote
(first three paragraphs of topic omitted)
Before publishing a form, you should change the form name and message class of the form to avoid problems with your forms cache. When you save a form on your local computer, a copy of the form is placed in the forms cache. If the form you publish has the exact name and message class as the form in your personal forms cache, when you open the form, you will get the version that is on your computer, not the one you published. When you publish the form for the final time to a public folder or Organization Forms Library, change the name or an attribute of the form, such as the version number. However, changing the version number is still useful for troubleshooting forms issues. Users can use the Help | About This Form command to determine what version of the form they are using.
If you change the version number or another property of the form, you do not affect the form cache behavior, as this paragraph implies. When Outlook checks to see if a new version of the form has been published, only the last modified time is used to determine which version is most current.
There are generally two scenarios in which publishing the same form name to more than one location causes a problem:
- On the Developer Computer: As a forms developer, you should ensure that you do not publish the same form to multiple locations. If you do, you may find that Outlook is using an earlier version of the form than you might expect. This typically happens when you publish the form to a folder and then also publish to your Personal Forms Library or the Organizational Forms Library.
- On the User's Computer: As a developer, you may want to use the same form and publish it to multiple public folders so that different groups of users can use it. Ideally, each time the form is published to a folder it should be given a different form name or message class. However, as long as a single user does not try to access the same form from more than one location, you can safely publish multiple form names. Microsoft does not recommend this approach.
Cannot change the forms cache location or contents
Outlook 2000 and Outlook 2002 were designed to support roaming users and therefore the forms cache location can change depending on which user is currently logged on to a computer. There are no user-configurable settings to indicate where the forms cache is located. Therefore, it is not possible to directly change the location of the forms cache to a location other than the default location.
The format of the Frmcache.dat file is undocumented and therefore direct modification of the file is unsupported. Microsoft cannot support direct modifications to any of the contents of the Forms folder unless such changes are documented by Microsoft, or recommended by Microsoft Product Support Services for troubleshooting purposes only. Before you make any modifications to the contents of the Forms folder, you should first make a backup.Note
The size of the form cache is stored in the Frmcache.dat file and therefore there is no programmatic way to change the size of the form cache.
For more information about recovering a form from the forms cache, click the following article number to view the article in the Microsoft Knowledge Base:
Restoring an Outlook form from a cached copy