Platform SDK: MAPI

Grouping and Restricting Tables in Message Store Providers

Client applications frequently allow users some control over how the contents of a folder are displayed. Typically, a user can choose to have messages grouped according to the value of one or more properties on the messages, or can choose to exclude messages matching some criteria from the list. This is done within the IMAPITable interface. Client applications can restrict the rows returned from the table to whatever criteria the user specifies. Therefore, a message store provider needs to implement the following IMAPITable methods.

IMAPITable method Purpose
FindRow Returns rows from a table that match the specified criteria.
QueryColumns Returns the set of columns in a table or the set of currently used columns.
QueryRows Returns one or more rows from a table starting from a given position.
Restrict Applies a restriction to a table so that subsequent calls to FindRow only return rows that match the restriction.
SetColumns Specifies which columns should be returned when rows are retrieved from the table.

Restrictions can be complex to implement; see About Restrictions for details. For more information on implementing tables, see Tables.