Compartir a través de


TABLE_NOTIFICATION

Hace referencia a: Outlook 2013 | Outlook 2016

Describe una fila de una tabla que se ha visto afectada por algún tipo de evento, como un cambio o un error. Esto hace que se genere una notificación de tabla.

Propiedad Valor
Archivo de encabezado:
Mapidefs.h
typedef struct _TABLE_NOTIFICATION
{
  ULONG ulTableEvent;
  HRESULT hResult;
  SPropValue propIndex;
  SPropValue propPrior;
  SRow row;
} TABLE_NOTIFICATION;

Members

ulTableEvent

Máscara de bits de marcas usadas para representar el tipo de evento de tabla. Se pueden establecer las siguientes marcas:

TABLE_CHANGED

Indica en un nivel alto que algo sobre la tabla ha cambiado. El estado de la tabla es el mismo que antes del evento. Esto significa que todas las propiedades, marcadores, posicionamiento actual y selecciones de interfaz de usuario de PR_INSTANCE_KEY (PidTagInstanceKey) siguen siendo válidas. Para controlar este evento, vuelva a leer la tabla. Los proveedores de servicios que no quieren implementar notificaciones de tabla enriquecida envían eventos TABLE_CHANGED en lugar de eventos más detallados para indicar un tipo determinado de cambio.

TABLE_ERROR

Se ha producido un error, normalmente durante el procesamiento de una operación asincrónica. Los errores durante el procesamiento de los métodos siguientes pueden generar este evento:

Después de recibir un evento TABLE_ERROR, un cliente no puede confiar en la precisión del contenido de la tabla. Además, es posible que se pierdan las notificaciones pendientes sobre otros cambios. Es posible que el método IMAPITable::GetLastError no proporcione información adicional sobre el error porque se generó en algún momento anterior, no necesariamente a partir de la última llamada al método.

TABLE_RELOAD

Los datos de la tabla se deben volver a cargar. Los proveedores de servicios envían TABLE_RELOAD cuando, por ejemplo, los datos subyacentes se almacenan en una base de datos y la base de datos se reemplaza. Controle este evento suponiendo que nada de la tabla sigue siendo válido y volviendo a leer la tabla. Todos los marcadores, claves de instancia, estado e información de posicionamiento no son válidos.

TABLE_RESTRICT_DONE

Se ha completado una operación de restricción iniciada con una llamada al método IMAPITable::Restrict .

TABLE_ROW_ADDED

Se ha agregado una nueva fila a la tabla y se ha guardado el objeto correspondiente. TABLE_ROW_ADDED eventos se generan después de una llamada al método IMAPIProp::SaveChanges .

TABLE_ROW_DELETED

Se ha quitado una fila de la tabla. El miembro propPrior se establece en NULL.

TABLE_ROW_MODIFIED

Se ha cambiado una fila. El miembro de fila contiene las propiedades afectadas para la fila. Se envían varios eventos TABLE_ROW_MODIFIED en el orden en que aparecen en la vista de tabla.

TABLE_ROW_MODIFIED eventos se envían después de confirmar los cambios en el objeto correspondiente con una llamada al método IMAPIProp::SaveChanges . Si la fila modificada es ahora la primera fila de la tabla, el valor de la etiqueta de propiedad del miembro propPrior es PR_NULL (PidTagNull).

TABLE_SETCOL_DONE

Se ha completado una operación de configuración de columna iniciada con una llamada al método IMAPITable::SetColumns .

TABLE_SORT_DONE

Se ha completado una operación de ordenación de tabla iniciada con una llamada al método IMAPITable::SortTable .

Hresult

Valor HRESULT para el error que se ha producido, si el miembro ulTableEvent está establecido en TABLE_ERROR.

propIndex

Estructura SPropValue para la propiedad PR_INSTANCE_KEY de la fila afectada.

propPrior

Estructura SPropValue para la propiedad PR_INSTANCE_KEY de la fila antes de la afectada. Si la fila afectada es la primera fila de la tabla, propPrior debe establecerse en PR_NULL y no en cero. Cero no es una etiqueta de propiedad válida.

Fila

Estructura SRow que describe la fila afectada. Esta estructura se rellena para todos los eventos de notificación de tabla. Para los eventos de notificación de tabla que no pasan datos de fila, el miembro cValues de la estructura SRow se establece en cero y el miembro lpProps se establece en NULL. Porque esta estructura SRow es de solo lectura; los clientes deben hacer una copia de ella si quieren realizar modificaciones. La función ScDupPropset se puede usar para realizar la copia.

Comentarios

La estructura TABLE_NOTIFICATION es uno de los miembros de la unión de estructuras incluidas en el miembro de información de la estructura NOTIFICATION . El miembro de información incluye una estructura TABLE_NOTIFICATION cuando el miembro ulEventType de la estructura se establece en fnevTableModified.

El orden y el tipo de columnas del miembro de fila reflejan el orden y el tipo que estaba en vigor en el momento en que se generó la notificación. El orden y el tipo en el momento en que se generó la notificación no es necesariamente el mismo que cuando se entregó la notificación.

Para obtener más información sobre la notificación, consulte los temas descritos en la tabla siguiente.

Tema Descripción
Notificación de eventos en MAPI
Introducción general a los eventos de notificación y notificación.
Control de notificaciones
Explicación de cómo los clientes deben controlar las notificaciones.
Notificación de eventos auxiliar
Explicación de cómo los proveedores de servicios pueden usar el método IMAPISupport para generar notificaciones.

Dado que las notificaciones de tabla son asincrónicas, los clientes pueden recibir notificaciones de una fila agregada después de conocer la adición a través de otro medio. Es posible recibir un evento TABLE_ERROR cuando hay un error en un método IMAPITable::Sort, IMAPITable::Restrict o IMAPITable::SetColumns o cuando un proceso subyacente intenta actualizar una tabla con, por ejemplo, filas nuevas o modificadas.

Vea también