Platform SDK: MAPI

ITableData::HrInsertRow

The ITableData::HrInsertRow method inserts a table row.

Quick Info

See ITableData : IUnknown.

HRESULT HrInsertRow(
  ULONG uliRow,  
  LPSRow lpSRow  
);
 

Parameters

uliRow
[in] A sequential row number representing the row after which the new row should be inserted. The uliRow parameter can hold row numbers from 0 through n, where n is the total number of rows in the table; passing n in uliRow results in the row being appended to the table's end.
lpSRow
[in] Pointer to an SRow structure describing the row to be inserted.

Return Values

S_OK
The row was successfully inserted.
MAPI_E_INVALID_PARAMETER
A row already exists in the table with the same value for its index column as the row to be inserted.

Remarks

The ITableData::HrInsertRow method inserts a row into a table at a particular position. The new row is inserted after the row that is in the position specified by the uliRow parameter.

If uliRow is set to the number of rows in the table, the new row is appended to the table's end.

The property that acts as the index column for the table must be included in the lpProps member of the SRow structure pointed to by the lpSRow parameter. This index property, typically PR_INSTANCE_KEY, is used to uniquely identify the row for future maintenance tasks.

The property columns in the SRow structure do not have to be in the same order as the property columns in the table.

After the row is inserted, notifications are sent to all clients or service providers with a view of the table that have called the table's IMAPITable::Advise method to register for notifications. No notification is sent if the inserted row is not included in the view due to a restriction.

See Also

SRow, TABLE_NOTIFICATION