Last modified: July 23, 2011

Applies to: Outlook

Inserts a table row.

HRESULT HrInsertRow(
  ULONG uliRow,
  LPSRow lpSRow


[in] A sequential row number that represents a specific row. The new row will be placed after the row that the number indicates. The uliRow parameter can contains row numbers from 0 through n, where n is the total number of rows in the table. Passing n in uliRow appends the row to the end of the table.


[in] A pointer to an SRow structure that describes the row to be inserted.


The row was successfully inserted.


A row that has the same value for its index column as the row to be inserted already exists in the table.

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 end of the table.

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 (PidTagInstanceKey), 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 that have a view of the table and 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.

© 2016 Microsoft