Applies to: Outlook 2013 | Outlook 2016

Returns a list of columns for the table.

HRESULT QueryColumns(
ULONG ulFlags,
LPSPropTagArray FAR * lpPropTagArray



[in] Bitmask of flags that indicates which column set should be returned. The following flag can be set:


The table should return all available columns.


[out] Pointer to an SPropTagArray structure containing the property tags for the column set.

Return value


The column set was successfully returned.


Another operation is in progress that prevents the column set retrieval operation from starting. Either the operation in progress should be allowed to complete or it should be stopped.


The IMAPITable::QueryColumns method can be called to retrieve:

  • The default column set for a table.

  • The current column set for a table, as established by a call to the IMAPITable::SetColumns method.

  • The complete column set for a table, the columns that are available, but not necessarily part of the current set.

Notes to callers

If you do not set the TBL_ALL_COLUMNS flag, IMAPITable::QueryColumns returns either a table's default or current column set, depending on whether the table has been affected by a call to IMAPITable::SetColumns. SetColumns changes the order and selection of columns in a table's column set.

If you set the TBL_ALL_COLUMNS flag, QueryColumns returns all of the columns that are capable of being in the table's column set.

Free the memory for the property tag array pointed to by the lpPropTagArray parameter by calling the MAPIFreeBuffer function.

MFCMAPI reference

For MFCMAPI sample code, see the following table.

File Function Comment
MFCMAPI uses the IMAPITable::QueryColumns method to retrieve the current column set for a table so the user can edit it.

See also




IMAPITable : IUnknown

MFCMAPI as a Code Sample