188.8.131.52 Creating and Sending TableModified Event Notifications
If the client has subscribed to TableModified event notifications, by using the RopRegisterNotification ROP (section 184.108.40.206.1), the server SHOULD<12> require that a table view is created in order to send the TableModified event notifications, as specified in section 220.127.116.11.1. If a table view is required on the server, the server MUST receive a request from one of the following ROPs, each of which cause a table view to be created on the server: RopCollapseRow ([MS-OXCROPS] section 18.104.22.168), RopExpandRow ([MS-OXCROPS] section 22.214.171.124), RopFindRow ([MS-OXCROPS] section 126.96.36.199), RopQueryColumnsAll ([MS-OXCROPS] section 188.8.131.52), RopQueryPosition ([MS-OXCROPS] section 184.108.40.206), RopQueryRows ([MS-OXCROPS] section 220.127.116.11), RopSeekRow ([MS-OXCROPS] section 18.104.22.168), RopSeekRowFractional ([MS-OXCROPS] section 22.214.171.124), and RopSeekRowBookmark ([MS-OXCROPS] section 126.96.36.199). The server SHOULD then create a subscription to TableModified event notifications automatically for every table created on the server. The server MUST NOT create a subscription to table notifications for the tables that were created with a NoNotifications flag. For more details about the NoNotifications flag, see [MS-OXCFOLD] section 188.8.131.52.1 and [MS-OXCFOLD] section 184.108.40.206.1.
When a TableModified event occurs, the server generates a notification using one of the following three methods, listed in descending order of usefulness to the client.
The server generates an informative notification that specifies the nature of the change (content or hierarchy), the value of the Folder ID structure, as specified in [MS-OXCDATA] section 220.127.116.11, the value of the Message ID structure, as specified in [MS-OXCDATA] section 18.104.22.168, and new table values. The TableRowAdded, TableRowDeleted, and TableRowModified events each produce informative notifications.
The server generates a basic notification that does not include specifics about the change made. The TableChanged and TableRestrictionChanged events produce basic notifications.
The server does not generate a notification at all.
The notification level is server implementation-specific; however, the server SHOULD generate informative notifications whenever possible and only generate a basic notification when it is not feasible to generate an informative notification.
The server SHOULD<13> stop sending notifications if the RopResetTable ROP ([MS-OXCROPS] section 22.214.171.124) is received, until a new table view is created using one of the following ROPs: RopCollapseRow, RopExpandRow, RopFindRow, RopQueryColumnsAll, RopQueryPosition, RopQueryRows, RopSeekRow, RopSeekRowFractional, or RopSeekRowBookmark.