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


TABLE_NOTIFICATION

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

Описывает строку в таблице, на которую повлияло событие определенного типа, например изменение или ошибка. Это приводит к созданию уведомления таблицы.

Свойство Значение
Файл заголовка:
Mapidefs.h
typedef struct _TABLE_NOTIFICATION
{
  ULONG ulTableEvent;
  HRESULT hResult;
  SPropValue propIndex;
  SPropValue propPrior;
  SRow row;
} TABLE_NOTIFICATION;

Members

ulTableEvent

Битовая маска флагов, используемых для представления табличного типа события. Можно задать следующие флаги:

TABLE_CHANGED

На высоком уровне указывает, что что-то в таблице изменилось. Состояние таблицы равно состоянию, которое было до события. Это означает, что все свойства PR_INSTANCE_KEY (PidTagInstanceKey), закладки, текущее расположение и выбор пользовательского интерфейса по-прежнему действительны. Обработайте это событие, перечитав таблицу. Поставщики услуг, которые не хотят реализовывать расширенные табличные уведомления, отправляют события TABLE_CHANGED вместо более подробных событий для указания определенного типа изменений.

TABLE_ERROR

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

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

TABLE_RELOAD

Данные в таблице должны быть перезагружены. Поставщики услуг отправляют TABLE_RELOAD, когда, например, базовые данные хранятся в базе данных и база данных заменяется. Обработайте это событие, предположив, что ничего из таблицы по-прежнему допустимо, и перечитав таблицу. Все закладки, ключи экземпляров, сведения о состоянии и расположении недопустимы.

TABLE_RESTRICT_DONE

Операция ограничения, инициированная вызовом метода IMAPITable::Restrict , завершена.

TABLE_ROW_ADDED

В таблицу добавлена новая строка, а соответствующий объект сохранен. TABLE_ROW_ADDED события создаются после вызова метода IMAPIProp::SaveChanges .

TABLE_ROW_DELETED

Строка удалена из таблицы. Элемент propPrior имеет значение NULL.

TABLE_ROW_MODIFIED

Строка изменена. Элемент строки содержит затронутые свойства строки. Несколько событий TABLE_ROW_MODIFIED отправляются в том порядке, в который они отображаются в представлении таблицы.

TABLE_ROW_MODIFIED события отправляются после фиксации изменений в соответствующем объекте с помощью вызова метода IMAPIProp::SaveChanges . Если измененная строка теперь является первой строкой в таблице, значение тега свойства в элементе propPrior равно PR_NULL (PidTagNull).

TABLE_SETCOL_DONE

Операция настройки столбца, инициированная вызовом метода IMAPITable::SetColumns , завершена.

TABLE_SORT_DONE

Операция сортировки таблиц, инициированная вызовом метода IMAPITable::SortTable , завершена.

Hresult

Значение HRESULT для возникней ошибки, если для элемента ulTableEvent задано значение TABLE_ERROR.

propIndex

Структура SPropValue для свойства PR_INSTANCE_KEY затронутой строки.

propPrior

Структура SPropValue для свойства PR_INSTANCE_KEY строки перед затронутой. Если затронутая строка является первой строкой в таблице, значение propPrior должно быть равно PR_NULL , а не нулю. Ноль не является допустимым тегом свойства.

Строки

Структура SRow, описывающая затронутую строку. Эта структура заполняется для всех событий уведомлений таблицы. Для событий табличного уведомления, которые не передают данные строки, член cValues структуры SRow имеет значение 0, а член lpProps — значение NULL. Поскольку эта структура SRow доступна только для чтения; если они хотят внести изменения, клиенты должны сделать его копию. Для создания копии можно использовать функцию ScDupPropset .

Замечания

Структура TABLE_NOTIFICATION является одним из членов объединения структур, включенных в элемент info структуры NOTIFICATION . Элемент info включает структуру TABLE_NOTIFICATION , если для элемента ulEventType структуры задано значение fnevTableModified.

Порядок и тип столбцов в элементе строки отражают порядок и тип, действовав на момент создания уведомления. Порядок и тип во время создания уведомления не обязательно совпадают с порядком доставки уведомления.

Дополнительные сведения об уведомлениях см. в разделах, описанных в следующей таблице.

Статья Описание
Уведомление о событиях в MAPI
Общие сведения о событиях уведомлений и уведомлений.
Обработка уведомлений
Обсуждение того, как клиенты должны обрабатывать уведомления.
Поддержка уведомлений о событиях
Обсуждение того, как поставщики услуг могут использовать метод IMAPISupport для создания уведомлений.

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

См. также