The ITableData::HrModifyRow method inserts a new table row, possibly replacing an existing row.
HRESULT HrModifyRow(
LPSRow lpSRow
);
The ITableData::HrModifyRow method inserts the row described by the SRow structure pointed to by the lpSRow parameter. If a row already exists in the table that has the same value for its index column as the row that is pointed to by lpSRow, the existing row is replaced. If no row exists that matches the one included in the SRow structure, HrModifyRow adds the row to the end of the table.
All views of the table are modified to include the row pointed to by lpSRow. However, if a view has a restriction in place that excludes the row, it may not be visible to the user.
The columns in the row pointed to by lpSRow do not have to be in the same order as the columns in the table. The caller can also include as columns properties that are not currently in the table. For existing views, HrModifyRow makes these new columns available but does not include them in the current column set. For future views, HrModifyRow includes the new columns in the column set.
After HrModifyRow has added the row, notifications are sent to all clients or service providers with a view of the table and that have called the table's IMAPITable::Advise method to register for notifications.