This Commentary is the third in a series about Outlook forms architecture and management. The first two covered Outlook''s MessageClass property and Forms Manager tool. This time, we''ll look at two other tools that can help you explore the locations where Outlook stores forms.
You probably already know that you can publish custom Outlook forms to three locations-–the Personal Forms library, the Organizational Forms library for the Exchange Server system, and any folder''s forms library. For the Organizational Forms library, you need permission to create items. For a public folder''s forms library, you need Owner permission.
Forms reside as hidden items in hidden folders, but tools such as Mdbvu32 (mdbvu32.exe on the Exchange CD-ROM) and OutlookSpy ( http://www.dimastr.com ) can help bring them to light. I personally prefer OutlookSpy, which is easier to use and has more features than Mdbvu32.
First, let''s locate the Personal Forms library, which is in a hidden folder in the user''s default information store. To use Mdbvu32, start the program; accept the default NULL logon parameter; choose MDB, Open Message Store; and choose the store marked with a D for default. In most cases, that store is the user''s Exchange mailbox. Choose MDB, Open Root Folder. In the Child Folders list, double-click Common Views. Look in the Associated Messages in Fld list for the Common Views hidden folder. You should see a list of views and other items that begin with ""cb: 40."" The other items are custom-form definitions. You can double-click any form to view its properties in Mdbvu32.
To use OutlookSpy, click the IMsgStore button on the OutlookSpy toolbar in Outlook. In the IMsgStore dialog box, click Open Root Container. In the IMAPIFolder dialog box that appears next, select the GetHierarchyTable tab, then double-click Common Views, which will appear in a new IMAPIFolder window. Select the Associated Contents tab, and you''ll see several rows labeled IPM.Microsoft.FolderDesign.FormDescription. These are the custom forms. As in Mdbvu32, you can double-click any form to see its properties in detail.
Don''t try to modify any of the form properties. The ones that distinguish a form from an Outlook data item are largely undocumented, and many are binary. You can''t edit the form definition to change the location of a particular control on the form, for example. You can, however, delete a form. In Mdbvu32, select the form from the Associated Messages in Fld list, choose lpdFld->DeleteMessages() from the drop-down function list, then click Call Function. In OutlookSpy, select a form in the Associated Contents list, then click Delete.
Now that you know how to locate the Personal Forms library, you can hunt for the other forms libraries. Mdbvu32 shows the forms published to any Outlook folder in the Associated Messages in Fld list for the folder; OutlookSpy shows them on the Associated Contents tab for the folder.
To locate the Organizational Forms library with Mdbvu32, go back to the MDB View Test Application dialog box (Mdbvu32''s main window) and choose Store Logoff to start over with a new information store. Choose MDB, Open Message Store and pick Public Folders from the store list. Choose MDB, Open Root Folder. Double-click NON_IPM_SUBTREE, EFORMS REGISTRY, Organizational Forms.
In OutlookSpy, select any public folder in Outlook, then click the IMsgStore button on the OutlookSpy toolbar. Click Open Root Container, then select the Get Hierarchy Table tab in the IMAPIFolder dialog box that pops up. Double-click the NON_IPM_SUBTREE entry. On the next dialog box''s Get Hierarchy Table tab, double-click EFORMS REGISTRY. Select the Get Hierarchy Table tab of the last dialog box, and you should see Organizational Forms. Forms published to that library appear on its Associated Contents tab.
Understanding that Outlook stores form definitions in hidden folders helps explain one problem that often occurs when you use a tool such as ExMerge to export mailbox data to a Personal Folders (.pst) file, then import it into a new mailbox. This process handles only the visible data items in the mailbox—it doesn''t transfer the custom forms stored in the Personal Folders library or in folder forms libraries. Before moving the user''s data, you can use the Forms Manager, as described in "Using Outlook''s Forms Manager," August 20, 2002, to back up and restore the forms.