IMAPIContainer::GetContentsTable

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Returns a pointer to the container's contents table.

HRESULT GetContentsTable(
  ULONG ulFlags,
  LPMAPITABLE FAR * lppTable
);

Parameters

  • ulFlags
    [in] A bitmask of flags that controls how the contents table is returned. The following flags can be set:

    • MAPI_ASSOCIATED
      The container's associated contents table should be returned instead of the standard contents table. This flag is used only with folders. The messages that are included in the associated contents table were created with the MAPI_ASSOCIATED flag set in the call to the IMAPIFolder::CreateMessage method. Clients typically use the associated contents table to retrieve forms, views, and other hidden messages.

    • ACLTABLE_FREEBUSY
      Enables access to the frightsFreeBusySimple and frightsFreeBusyDetailed rights in PR_MEMBER_RIGHTS.

    • MAPI_DEFERRED_ERRORS
      GetContentsTable can return successfully, possibly before the table is made available to the caller. If the table is not available, making a subsequent table call can raise an error.

    • MAPI_UNICODE
      Requests that the columns that contain string data be returned in the Unicode format. If the MAPI_UNICODE flag is not set, the strings should be returned in the ANSI format.

    • SHOW_SOFT_DELETES
      Shows items that are currently marked as soft deleted—that is, they are in the deleted item retention time phase.

  • lppTable
    [out] A pointer to a pointer to the contents table.

Return Value

  • S_OK
    The contents table was successfully retrieved.

  • MAPI_E_BAD_CHARWIDTH
    Either the MAPI_UNICODE flag was set and the implementation does not support Unicode, or MAPI_UNICODE was not set and the implementation supports only Unicode.

  • MAPI_E_NO_SUPPORT
    The container has no contents and cannot provide a contents table.

Remarks

The IMAPIContainer::GetContentsTable method returns a pointer to the contents table of a container. A contents table contains summary information about objects in the container.

Contents tables have lengthy column sets. For a complete list of the required and optional columns in contents tables, see Contents Tables.

It is possible for some containers to have no contents. These containers return MAPI_E_NO_SUPPORT from their implementations of GetContentsTable.

Notes to Implementers

If you support a contents table for your container, you must also do the following:

A remote transport provider's implementation of this method must return a pointer to an IMAPITable : IUnknown interface in the ppTable parameter passed into the GetContentsTable method. If your transport provider has an existing contents table, it is sufficient to return a pointer to it. If not, this method must create a new IMAPITable : IUnknown object, populate the table with message headers (if any are available), and return a pointer to the new table. The ITableData::HrGetView method is useful for generating a return value and storing the table pointer in the ppTable parameter. The contents table must support at least the following property columns:

Notes to Callers

String and binary contents table columns can be truncated. Typically, providers return 255 characters. Because you cannot know beforehand whether a table includes truncated columns, assume that a column is truncated if the length of the column is either 255 or 510 bytes. You can always retrieve the full value of a truncated column, if necessary, directly from the object by using its entry identifier to open it and then calling the IMAPIProp::GetProps method.

Depending on the provider's implementation, restrictions and sorting operations can apply to all of a string or to the truncated version of that string.

MFCMAPI Reference

For MFCMAPI sample code, see the following table.

File

Function

Comment

ContentsTableDialog.cpp

CContentsTableDlg::CContentsTableDlg

The CContentsTableDlg class uses GetContentsTable to obtain the entries in a contents table.

See Also

Reference

IMAPIProp::GetPropList

IMAPIProp::GetProps

IMAPIProp::OpenProperty

IMAPITable : IUnknown

PidTagContainerContents Canonical Property

IMAPIContainer : IMAPIProp

Concepts

MFCMAPI as a Code Sample