Despite the fact that the Messaging API (MAPI) forms architecture that Outlook uses dates all the way back to the Exchange client, a lot of mystery and confusion still surrounds Outlook forms. One way to improve your understanding of forms is to examine a key property that distinguishes one type of Outlook item from another—the message class.

The Exchange Server 5.5 software development kit (SDK) glossary provides a good definition of a form: "a MAPI object that is used to display a message of a particular message class in a structured format based on MAPI properties." In other words, an item's message class determines the form that Outlook uses to display the item.

You can actually see the message class in Outlook items as the MessageClass property, and you can add the property to any table-type folder view by dragging it from the Field Chooser to the desired spot among the view's column headings. To get a feel for the different classes of the items you see every day, try adding the MessageClass property to the Deleted Items folder, which contains the greatest variety of Outlook items.

A custom Outlook form derives its default layout, properties, and functionality from one of the standard built-in Outlook forms. The name of a custom form's message class reflects this origin. For example, the message class for the standard email message form is IPM.Note. The message class for a custom message form for submitting requests for time off might be IPM.Note.VacationRequest. The IPM.Note prefix tells you that the designer based the VacationRequest form on the default IPM.Note message form.

The IPM prefix stands for "interpersonal message" and covers virtually all the individual items visible in Outlook. Nondelivery reports (NDRs) and other report items are an exception. An undeliverable message comes back to the sender as an item with the message class REPORT.IPM.Note.NDR. The REPORT prefix shows that the message is a report; the NDR suffix indicates that it's an NDR. A successfully delivered message would have a suffix of DR. Other suffixes you might see include IPNRN for read receipts and IPNNRN for messages that the recipient deleted without reading. The middle portion of the message class describes the original item. For example, if you request a read receipt for the vacation request form mentioned earlier, when your supervisor opens the request, you'll receive a REPORT.IPM.Note.VacationRequest.IPNRN item in response.

You can't use Outlook to build a new form from scratch and create a new IPM.MyForm message class. However, it's possible—though not easy—to build totally new forms using Extended MAPI and C++. You might have some of these forms already on your computer. For example, if you installed ActiveSync to synchronize Outlook with a Compaq iPAQ or other Pocket PC device, the Standard Forms Library in Outlook should show two additional forms—an Ink Notes Form with message class IPM.InkNotes and a Voice Notes Form with message class IPM.VoiceNotes. These forms let Outlook users access notes that you created with the stylus or voice recorder in Pocket PC then synchronized with your Outlook Notes folder.

When you understand that the MessageClass property of an item determines what form Outlook uses to display that item, you know the answer to one of the frequently asked questions about Outlook forms: How can I make existing contacts (or tasks and other items) use the new form I've created? The answer is to change the MessageClass property on existing items to point to the message class of the new form. For Outlook 2000, Microsoft provides the Outlook 2000 Existing Items Converter tool to change the message class of items in a folder. For other Outlook versions, you can use a macro that runs from the Microsoft Word document omsgclas.doc, which you can link to from the second URL listed below.

Outlook 2000 Existing Items Converter
"OL2000: Word Document to Change Message Class of Outlook Items"