Types of Tables

Applies to: Outlook 2013 | Outlook 2016

There are many different types of tables, each type differentiated by the information that it presents. Tables enable client applications and service providers to readily access and manipulate the important properties of many types of objects.

Some tables, such as contents tables, provide an alternative way of accessing properties. For example, a client can retrieve the subject of a message — its PR_SUBJECT (PidTagSubject) property — either directly from the message by calling its IMAPIProp::GetProps method or through the message's contents table. Other tables provide the only way to access object properties. For example, a client cannot access an attachment's PR_ATTACH_METHOD (PidTagAttachMethod) property by calling IMAPIProp::GetProps; it must always retrieve the attachment table of the message to which it is attached. PR_ATTACH_METHOD is a required column in all attachment tables.

A table view can be static or dynamic. With a static table view, changes to the underlying data do not cause the view to be updated. Once the view has been instantiated, it does not change. Users of static tables can be informed of changes to data through table notifications. A dynamic table view is updated when changes are made to the data. There are two types of dynamic tables: one that updates the columns of each row, but the rows remain static and one that updates both the columns and rows. This latter type of table always reflects the underlying data exactly.

Tables have a default column set, the minimum set of columns that a client or service provider can expect to see when retrieving rows from a table that has not yet been affected by an IMAPITable::SetColumns call. Clients and service providers can add columns to or remove columns from this default set by calling the SetColumns method. Changes can be made either statically or dynamically, following a client request. Not all tables support dynamic column set modification.

The MAPI tables and their implementers and users are:

Table Implementers
Attachment
Implemented by message store providers. Used by clients and transport providers.
Contents
Implemented by message store and address book providers. Used by clients.
Display
Implemented by MAPI and service providers. Used by MAPI and service providers.
Hierarchy
Implemented by message store and address book providers. Used by clients.
Message service
Implemented by MAPI. Used by clients.
Message store
Implemented by MAPI. Used by clients.
One-off
Implemented by address book providers. Used by MAPI.
Outgoing queue
Implemented by message store providers. Used by MAPI spooler.
Profile
Implemented by MAPI. Used by clients.
Provider
Implemented by MAPI. Used by clients.
Receive folder
Implemented by message store providers. Used by clients.
Recipient
Implemented by message store providers. Used by clients and transport providers.
Status
Implemented by MAPI and service providers. Used by clients.

See also

MAPI Tables