Last modified: July 23, 2011

Applies to: Outlook

Deletes multiple table rows.

HRESULT HrDeleteRows(
  ULONG ulFlags,
  LPSRowSet lprowsetToDelete,
  ULONG FAR * cRowsDeleted


[in] A bitmask of flags that controls the deletion. The following flag can be set:


Deletes all rows from the table and all corresponding views, sending a single TABLE_RELOAD notification.


[in] A pointer to a row set that describes the rows to be deleted. The lprowsetToDelete parameter can be NULL if the TAD_ALL_ROWS flag is set in the ulFlags parameter.


[out] The count of the deleted rows.


The table rows were successfully deleted.

The ITableData::HrDeleteRows method locates and removes the table rows that contain the columns that match the property pointed to by the lpProps member of each aRow entry in the row set. An index column is used to identify each row; this column must have the same property tag as the property tag passed in the ulPropTagIndexColumn parameter in the call to the CreateTable function.

The number of rows that were actually deleted is returned in cRowsDeleted. No error is returned if one or more rows could not be found.

After the rows are deleted, 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.

Deleting rows does not reduce the columns available to existing table views or subsequently opened table views, even if the deleted rows are the last that have values for a specific column.