Поделиться через


Сведения о табличных уведомлениях

Область применения: Outlook 2013 | Outlook 2016

Клиенты часто полагаются на уведомления таблицы, чтобы узнать об изменениях в объектах, а не регистрироваться для получения уведомлений непосредственно от объектов. К типичным изменениям, вызывающим отправку уведомлений, относятся добавление, удаление или изменение строки и любая критическая ошибка. При поступлении уведомлений клиенты могут определить, следует ли выполнить еще один вызов для перезагрузки таблицы.

Так как табличные уведомления являются асинхронными, существует несколько проблем, которые могут сделать обработку уведомлений менее простой:

  • Данные, передаваемые в TABLE_NOTIFICATION структуре, могут не представлять текущее состояние таблицы. Например, клиент может внести изменения в сообщение, а затем решить удалить его. Поставщик хранилища сообщений, реализующий таблицу содержимого, включающую сообщение, отправляет два уведомления: событие TABLE_ROW_MODIFIED, за которым следует событие TABLE_ROW_DELETED. В зависимости от времени уведомления поставщика хранилища сообщений клиент может получать уведомление о TABLE_ROW_MODIFIED после удаления строки.

  • Набор столбцов, включенный в уведомление, может отличаться от текущего набора столбцов таблицы. MAPI требует, чтобы набор столбцов уведомлений соответствовал набору столбцов, действовав в момент создания уведомления. Так как клиент может вызвать IMAPITable::SetColumns для изменения набора столбцов в любое время, в том числе после уведомления, два набора столбцов могут не синхронизироваться.

  • Уведомления о таблицах отправляются только для строк, входящих в представление. То есть, если строка исключена из представления из-за ограничения или из-за того, что таблица находится в свернутом состоянии, уведомление не будет отправлено, если эта строка изменится. Кроме того, уведомления не отправляются для информирования клиента об изменении состояния категории.

Клиенты должны помнить, что не все таблицы поддерживают уведомление TABLE_SORT_DONE и должны быть готовы к обработке этого условия следующим образом:

  1. Принудительное выполнение сортировки в синхронном режиме.

  2. Перезагрузка строк таблицы при возврате IMAPITable::SortTable .

См. также

Таблицы MAPI