Información sobre las notificaciones de tabla para mostrar
Hace referencia a: Outlook 2013 | Outlook 2016
Las notificaciones de una tabla para mostrar las envía el proveedor de servicios responsable de crear la tabla para mostrar en MAPI. MAPI registra estas notificaciones llamando al método IMAPITable::Advise de una tabla para mostrar y especificando el evento de modificación de tabla.
Al igual que con todas las notificaciones de tabla, las notificaciones de tabla para mostrar incluyen una estructura de TABLE_NOTIFICATION . Solo los miembros ulTableEvent y propIndex de esta estructura son significativos; se omiten los demás miembros. El miembro ulTableEvent se establece en TABLE_ROW_MODIFIED y el miembro propIndex se establece en el valor de la columna PR_CONTROL_ID (PidTagControlId) de la fila correspondiente. MAPI responde a la notificación llamando al método IMAPIProp::GetProps para la propiedad mostrada en el control y mostrando el nuevo valor.
Un proveedor de servicios puede usar las notificaciones de tabla de presentación para coordinar los cambios en los controles relacionados en el cuadro de diálogo. Por ejemplo, si la implementación de la interfaz de propiedad necesita actualizar uno o varios campos en el cuadro de diálogo, quizás en respuesta a otro control que haya establecido la marca DT_SET_IMMEDIATE en su propiedad PR_CONTROL_FLAGS (PidTagControlFlags), puede generar una notificación de tabla para mostrar. Una notificación de tabla para mostrar puede alertar a la implementación de la interfaz de propiedad de que el valor de uno o varios controles debe volver a leerse debido a un cambio realizado o a que se produzca un evento externo.
Un proveedor de servicios puede emitir notificaciones de tabla para mostrar mediante:
Llamar a ITableData::HrNotify, si la tabla para mostrar se creó con un objeto de datos de tabla.
- O-
Con su propio código, si la tabla para mostrar se creó con la implementación IMAPITable del proveedor.
MAPI responde a las notificaciones de tabla para mostrar cuando sea necesario volviendo a leer el valor de un control de la implementación de la interfaz de propiedad. En la tabla siguiente se describen los detalles que rodean cómo MAPI controla las notificaciones de tipos específicos de controles.
Control | Acción MAPI |
---|---|
Botón |
Llama a IMAPIProp::OpenPropertypara recuperar el objeto de control mediante la propiedad representada por el miembro ulPRControl de la estructura DTBLBUTTON si la llamada había producido un error anterior. Llama a IMAPIControl::GetState del objeto de control para determinar si el botón debe estar habilitado y habilita o deshabilita el botón en consecuencia. |
Casilla |
Vuelve a leer el valor del miembro ulPRPropertyName . |
Cuadro combinado |
Vuelve a abrir la tabla asociada al miembro ulPRTableName de la estructura DTBLCOMBOBOX . Vuelve a leer todas las filas, incluido el valor del miembro ulPRPropertyName. |
Cuadro de lista desplegable |
Vuelve a abrir la tabla asociada al miembro ulPRTableName de la estructura DTBLDDLBX y vuelve a leer todas las filas. Llama a IMAPIProp::GetProps para recuperar los valores de las propiedades almacenadas en ulPRDisplayProperty y los miembros ulPRSetProperty . |
Editar |
Vuelve a leer la propiedad y vuelve a mostrarla. |
Cuadro de grupo |
Omite la notificación. |
Etiqueta |
Omite la notificación. |
Cuadro de lista selección múltiple |
Si una de las columnas es un identificador de entrada, actualiza el cuadro de lista. El objeto correspondiente no se cierra ni se vuelve a cargar. |
Cuadro de lista de selección única |
Lee la propiedad set e intenta identificarla. |
Cuadro de lista multivalor |
Vuelve a leer la propiedad y vuelve a rellenar el cuadro de lista. |
Página con pestañas |
No hay ninguna notificación para este control; todo es estático. |
Botón de radio |
Vuelve a leer la propiedad asociada al botón y se almacena en el miembro ulPropTag de la estructura DTBLRADIOBUTTON y realiza la selección adecuada con los controles. |