Microsoft KB Archive/839804

From BetaArchive Wiki

Article ID: 839804

Article Last Modified on 4/13/2004



APPLIES TO

  • Microsoft Office Outlook 2003



Important This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry


SUMMARY

This article describes how Microsoft Office Outlook 2003 locates forms, where the forms cache is located, how to change the size of the forms cache, and how to use the ForceFormReload registry key. This article also describes some problems that may occur with the Outlook forms cache and how to troubleshoot these problems.


INTRODUCTION

This article describes the Outlook forms cache. This article also describes various forms cache problems that may occur in Outlook 2003.

Outlook stores a local copy of a custom form in a cache. Outlook does this so that the form does not have to be retrieved from disk every time an item is opened. When forms are stored in a Microsoft Exchange public folder or in the Organizational Forms library on the Exchange Server, Outlook can use the cached version of the form. This helps improve performance on the local computer and on the server computer.

Problems may occur with the forms cache. These problems typically occur when you open a new item or an existing item in a folder. You may receive one of the following error messages:

Message 1

The form you selected could not be displayed. Contact your administrator.

Message 2

The form required to view this message cannot be displayed. Contact your administrator.

Other times, Outlook may not display an error message but may open a default form instead of a custom form.

back to the top

Locate the form

This section describes how Outlook locates the form that is required 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 that is named "Corporate" in a public folder, the message class will be IPM.Task.Corporate.
When the item is opened, Outlook checks the Message Class field to see what form must be used to display the item. Outlook then conducts a search for the required form. Outlook looks in the following locations, and in the following specified order:

  • Memory


If you have another item open that uses the same form, Outlook already has the form in memory, and Outlook uses that copy of the form instead of re-loading the form.

  • Forms cache


Outlook 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 loads the form from the cache.

  • Current folder


If the form is not in the cache, Outlook checks to see if the form was published to the current folder. Other folders, including parent folders, are not searched. Forms that are published to a folder are stored as hidden items and cannot be seen in any Outlook views.

  • Personal Forms library


If the form is not found in the current 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 contain the Inbox folder that receives incoming mail.

  • The Organizational Forms library


If the form is not available in the Personal Forms library, Outlook then checks the Organizational Forms library on the Microsoft Exchange Server.

  • The Web Forms library


If you create an HTML-based form, publish that HTML-based form to a Web server, and then you enable Web services in Outlook, Outlook checks for the availability of an HTML version of the form. Outlook then opens the form in your Web browser. Typically, this feature is seldom used, but this feature may be enabled in some organizations.

If a form cannot be found in any one of the previous locations, the item appears in the standard form for that type of item. For example, a standard e-mail message form may be used instead of a custom e-mail message form, or a standard contact form may be used instead of a custom contact form.

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 then updates the forms cache.

back to the top

Locate the forms cache

You may locate the forms cache in the following folder:

C:\Documents and Settings\<user_name>\Local Settings\Application Data\Microsoft\FORMS

Outlook 2003 supports roaming users. Therefore, the forms cache location may change. The forms cache location depends on what user is currently logged on to the computer. You cannot configure user setting to indicate where the forms cache is located. Therefore, you cannot directly change the location of the forms cache to a location other than the default location.

back to the top

Understand the forms cache architecture

Warning If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

The forms cache contains the Frmcache.dat file. The Frmcache.dat file contains summary information and pointers to both the default Outlook forms and any custom forms that you use. Cached copies of custom forms are stored in subfolders of the Forms folder.

The subfolders of the Forms folder are randomly named. However, the names of the subfolders look similar to the names of the forms. The actual forms that are stored in these folders are cryptically named, but the forms have a .tmp file name extension. If you do not know the folder that contains the copy of a particular form, you can use the time stamp of the folder or the time stamp of the form to help you locate the form.

Outlook also stores the registry keys that correspond to custom forms that have been cached. The registry keys are at the following location:

HKEY_CURRENT_USER\Software\Classes\CLSID

In earlier versions of Outlook, the forms cache did not keep track of where a form came from when the form was cached. For example, assume that you have two different forms that are published in two different public folders, and both forms have the same name. If you access the first folder, the form in that folder is cached. Then, if you access the second folder, Outlook still uses the cached form from the first folder, and not the form that is in the second folder. This means that every form name (or Message Class field) is supposed to be unique to prevent conflicts when you use forms. This has been the forms-cache design since Microsoft Outlook 97 was released.

The forms cache changed in Outlook 2003. In Outlook 2003, information about the folder and the forms library is also cached. This change was made because of a security-related issue. For example, you may have ten different public folders in Outlook 2003, all with the same form name that is published in the ten folders. In earlier versions of Outlook, the form was cached one time, and then Outlook used the same form from the local forms cache every time because all the forms had the same name. However, Outlook 2003 caches the form from each folder.

back to the top

Understand and change the forms cache size

By default, Outlook sets a limit of 2048 kilobytes (KB) for the maximum size of the forms cache. To change this setting, follow these steps:

  1. On the Tools menu, click Options.
  2. Click the Other tab, and then click Advanced Options.
  3. Click Custom Forms, type a number that is greater than 2048 under Maximum space on hard disk, and then click OK.

After you reach the maximum disk space that you set for the forms cache, the oldest unused form is purged from the cache.

Note The size of the forms cache is stored in the Frmcache.dat file. The format of the Frmcache.dat file is undocumented. Direct modification of the Frmcache.dat file is not supported. Therefore, there is no way to programmatically change the size of the forms cache. Microsoft does not support direct modifications to any part 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 must first make a backup copy.

back to the top

Recover forms that you may have accidentally deleted

If you accidentally delete a published form, and you cannot recover that form from the folder that the form was published from, you may be able to recover a copy of the form from the forms cache.

For additional information about recovering a form from the forms cache, click the following article number to view the article in the Microsoft Knowledge Base:

292494 OL2002: Restoring an Outlook form from a cached copy


back to the top

Troubleshooting the forms cache

If the forms cache does not seem to be functioning correctly, or if you have problems when you open items or open custom forms, there may be other factors that cause the unexpected behavior. Use the following troubleshooting methods before you delete the forms cache.

  • Method 1

    Verify that items use a one-off form

    You can store a form definition in an item instead of at a published location. If you store a form definition in an item, and then open the item, the form that you use is always the form that is stored in the item. If you make changes to the published version of the form, a one-off item continues to use the older version of the form that you stored in the item. This may appear to be a problem with the forms cache, but this is how the one-off item works.

    Determine if a form definition is stored in an item because this may cause unexpected behavior. This may cause you to incorrectly presume that your problem is related to the forms cache.

    For additional information about how the one-off item functions, click the following article number to view the article in the Microsoft Knowledge Base:

    290657 OL2002: Working with form definitions and one-off forms

  • Method 2

    Verify that the problem is not memory-related

    Outlook may not release a form from memory. This problem may be related to how you implement Visual Basic Scripting Edition code in a custom form. If Outlook does not unload the form from memory, you may have to exit and then restart Outlook. This removes the form from memory and forces Outlook to reload the form from the cache, the forms library, or a folder.

    You must also verify that Outlook exits. You can use Microsoft Windows Task Manager to verify that Outlook is not running. However, Microsoft recommends that you restart your computer to make sure that the problem is not related to something that occurs in memory.

    If Outlook does not exit, this may be the cause of the forms cache problem. If the form contains Visual Basic Scripting Edition code, try to determine if there is something in the form that causes Outlook not to exit. Also, disable any COM add-ins or any non-standard Microsoft Exchange extensions. Either of these may be contributing factors.

back to the top

Clear the forms cache

There are different methods that you can use to clear the Outlook forms cache. Each method has advantages and disadvantages.

  • Method 1


Microsoft recommends that you use the Clear Cache method. To do this, follow these steps:

    1. On the Tools menu, click Options, and then click the Other tab.
    2. Click Advanced Options.
    3. In the Advanced Options box, click Custom Forms.
    4. In the Custom Forms box, click Manage Forms.
    5. In the Forms Manager box, click Clear Cache.
  • Method 2


If you are an advanced user, you can also resolve problems with the forms cache by manually renaming or manually deleting specific components of the cache that may be causing a problem. For example, if you are having a problem with a specific form, you can start by deleting the corresponding folder for that cached form.

  • Method 3


You can also rename the Frmcache.dat file. Do not do this as your first attempt to resolve a problem with the forms cache because the Frmcache.dat file may contain information about other forms. However, if your other efforts to clear the forms cache have failed, you can rename the Frmcache.dat file and then restart Outlook.

  • Method 4


You can investigate the registry keys. The registry keys are at the following location:

HKEY_CURRENT_USER\Software\Classes\CLSID

Typically, the registry keys do not play a role in forms cache problems, but they do contain information about cached forms. If all other efforts to correct a problem form fail, you can verify that this section of the registry contains information about the form. You can remove the information about the form, and then restart Outlook.

back to the top

Use the ForceFormReload registry key

When the forms cache seems to cause problems sporadically, and you cannot determine the cause of the problem, you can to set the ForceFormReload registry key in Outlook. When the ForceFormReload registry key is enabled, and Outlook encounters an error when opening an item that is based on a custom form, Outlook automatically clears the cache for this specific form. Then, Outlook tries to open the item again. While this method does not correct the cause of the forms cache problem, this method does make the problem transparent to people who use custom forms.

To enable the ForceFormReload registry key functionality, follow these steps:

  1. Start Registry Editor.
  2. Click the following key in the registry:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Outlook
  3. On the Edit menu, click Add Value, and then add the following registry value:
    Value name ForceFormReload
    Data type REG_DWORD
    Value data 1
  4. Quit Registry Editor.

    Note This functionality is also available in Outlook 2000 and Outlook 2002 if you have the latest service packs installed.

    For additional information about how to obtain the latest service packs, click the following article numbers to view the articles in the Microsoft Knowledge Base:

    285129 OL2000: Error Message: The form you have selected...cannot be displayed, please contact your administrator

    305403 OL2002: Error Message: The form you have selected...cannot be displayed, please contact your administrator

back to the top

Troubleshooting form-specific problems that may occur when you open an item

If a problem occurs when you try to open an item that is based on a specific custom form, the problem may be related to problems with that specific form and not to the forms cache itself. The following methods describe how to troubleshoot problems with a specific form. You must do the methods in the order that they are listed.

  • Method 1

    You can disable the custom Visual Basic Scripting Edition code in the form. This may indicate to you that the problem is related to the Visual Basic Scripting Edition code. To do this, hold down the SHIFT key when you open an item. This prevents the Visual Basic Scripting Edition code from running.
  • Method 2

    You can remove all the controls from all the form pages. Custom controls on the form may have problems initializing and may prevent Outlook from opening a form. The following reasons can prevent Outlook from opening a form:
    • The custom controls are not installed on the local computer.
    • The licensing registry key is incorrect.
    You can open the form in design mode, remove all the controls from all the form pages, republish the form with a different name, and then try to open a new item that is based on the newly-published form. If this works, there is some kind of problem with the controls.
  • Method 3

    You can remove all the custom fields from a form. Problems may be related to the fields on a form. Fields can contain formulas. These formulas may create circular references that may cause performance problems or other problems that may affect how the form opens. This is not common, but if you suspect that a form may be corrupted, you can remove all the custom fields from the form and then publish the form with a different name for testing purposes.

back to the top

Understand forms cache problems

Because of security changes and architectural changes, new problems occur with the forms cache in Outlook 2003. This section discusses the known problems with the Outlook 2003 forms cache. This section also provides information about the availability status of hotfixes. This section will be updated as new information becomes available.

  • Folder-naming problem causes Outlook 2003 to stop responding

    When Outlook repeatedly caches a form with the same name, Outlook is supposed to append a numbering scheme to the file system folder in the forms cache. This numbering scheme is supposed to incrementally number file names beginning with 001 and to continue numbering sequentially. However, the original version of Outlook 2003 does not handle the file names correctly. The folders are incorrectly named. After a form is cached five times, the sixth-cached form fails. This causes Outlook stop responding.

    To determine if this problem is occurring, check the forms cache on the local hard disk. Typically, the path of the forms cache is as follows:

    C:\Documents and Settings\<username>\Local Settings\Application Data\Microsoft\FORMS

    There is a folder for each form that was cached. The folder names correspond to the Message Class field of the form. If this problem has occurred, you can see zeros appended to the folder name as in the following examples:

    IPM.Contact.FormName
    IPM.Contact.FormName00000
    IPM.Contact.FormName0000
    IPM.Contact.FormName000
    IPM.Contact.FormName00

    Use the Clear Cache method to clear the forms cache. The problem is temporarily resolved until more forms are cached, and then the problem occurs again.

    There is a hotfix that is available for this problem. You can contact Product Support Services to obtain the hotfix. This hotfix is scheduled to be included in Outlook 2003 Service Pack 1.
  • A problem occurs when you access a public folder by using the Favorites folder

    If you access a public folder by using the Favorites folder, and then you open items that are based on a custom form, the form is cached every time that you open a new item or an existing item. The Favorites folder becomes a factor in the following scenarios:
    • You use the Folder List navigation pane to see all the Outlook folders, and then you access the Favorites folder.
    • You use a navigation pane for a specific type of item, such as the Calendar or the Contacts, and then you use the Other <itemtype> folder. This list of folders is also related to using the Favorites folder.

    To temporarily work around this problem, do not use the Favorites folder. Access the folder directly by using the Folder List navigation pane.

    Note This problem increases the caching frequency. This causes the previous problem to quickly occur again.

    There is a hotfix that is available for this problem. However, install the later hotfix rollup package because the later hotfix rollup package includes other cache-related hotfixes besides this hotfix.

    833856 Outlook 2003 Hotfix Package: January 20, 2004

    This hotfix is scheduled to be included in Outlook 2003 Service Pack 1.
  • A crash occurs when you use the ForceFormReload registry key

    Outlook 2003 permits you to set the optional ForceFormReload registry key. In earlier versions of Outlook, the ForceFormReload registry key was used if a form did not load. Outlook automatically deleted the forms cache entry for that form and then tried to reopen the form. This indirectly helped to resolve many of the seemingly random forms cache problems that occurred. However, if you use the ForceFormReload registry key with Outlook 2003, Outlook 2003 may crash.

    There is a hotfix that is available for this problem. You can contact Product Support Services to obtain the hotfix. This hotfix is scheduled to be included in Outlook 2003 Service Pack 1.
  • Outlook incorrectly caches a form two times

    Outlook may incorrectly cache a form two times. This can eventually lead to a damaged forms cache.

    There is a hotfix that is available for this problem. You can contact Product Support Services to obtain the hotfix. This hotfix is scheduled to be included in Outlook 2003 Service Pack 1.
  • Organizational Forms library problems and cached mode problems occur

    There are a variety of problems where Outlook does not cache custom forms correctly. These problems occur in scenarios that are related to offline mode, to cached mode, and to losing connection to the server. Most of these problems are related to publishing a form in the Organizational Forms library. However, the scope of the problem may be greater and may include any form that is published in another location. These problems are scheduled to be addressed in Outlook 2003 Service Pack 1, but these problems do not have hotfixes that are associated with them.
  • Outlook Find command problem occurs

    If you use the Outlook Find command to filter the items that appear in a folder, and you open an item, the item may not appear using a custom form that the item is supposed to use. This is not a forms cache problem, but may be confused with a forms cache problem.

    There is a hotfix that is available for this problem. You can contact Product Support Services to obtain the hotfix. This hotfix is scheduled to be included in Outlook 2003 Service Pack 1.

back to the top


Additional query words: OutSol2003 cached custom form

Keywords: kbhowtomaster KB839804