Compartir a través de


Mostrar tablas

Hace referencia a: Outlook 2013 | Outlook 2016

En una tabla para mostrar se describe cómo mostrar un tipo específico de cuadro de diálogo: una que tiene una o varias páginas de propiedades con pestañas dedicadas a mostrar y, posiblemente, editar una o varias propiedades. Asociado a cada tabla para mostrar es una implementación de interfaz IMAPIProp: IUnknown . La implementación IMAPIProp mantiene los datos de propiedad que se presentan en el cuadro de diálogo.

Las filas de una tabla para mostrar representan los controles o objetos de interfaz de usuario que se muestran en el cuadro de diálogo. MAPI define muchos tipos de controles, algunos con valores estáticos y otros con valores dinámicos que un usuario puede cambiar. La mayoría de los controles se pueden asociar a las propiedades mantenidas con la implementación IMAPIProp . Cuando un usuario cambia el valor de un control modificable, se actualiza la propiedad correspondiente.

Los proveedores de servicios implementan tablas para mostrar y la interfaz IMAPIProp . La creación de una tabla para mostrar es similar a escribir un programa con un lenguaje de scripting. Los proveedores de servicios pueden crear una tabla para mostrar mediante:

  • Llamar a la función BuildDisplayTable .

    • O-
  • Incluir código personalizado que rellena la tabla para mostrar directamente mediante un objeto de datos de tabla, un objeto que admite la interfaz ITableData : IUnknown .

La función BuildDisplayTable combina información de estructuras de tabla para mostrar con elementos visuales de un recurso de cuadro de diálogo para compilar filas de tabla para mostrar. La función devuelve un puntero a una implementación de interfaz IMAPITable: IUnknown y, si se solicita, un puntero a una implementación de interfaz ITableData .

El uso de BuildDisplayTable para crear una tabla de presentación es sencillo y facilita el mantenimiento cuando cambian los elementos visuales de la pantalla. Sin embargo, los proveedores de servicios que prefieren no usar BuildDisplayTable pueden crear una tabla para mostrar con código personalizado que use los métodos de ITableData. Por ejemplo, los proveedores de servicios que tienen una estructura de plantilla existente para sus páginas de propiedades pueden querer crear código personalizado en lugar de usar BuildDisplayTable.

Hay varias maneras en que los proveedores de servicios pueden implementar la interfaz de propiedad para su tabla de presentación. Entre las que se incluyen:

El tipo de implementación depende de las características de los datos que se van a mostrar y del proveedor de servicios responsable. Por ejemplo, si hay una relación implícita entre los datos de dos controles de edición y uno de los controles cambia, la implementación IMAPIProp debe cambiar el valor del otro control correctamente.

Las tablas para mostrar tienen las siguientes propiedades en su conjunto de columnas necesario:

Valor
PR_XPOS (PidTagXCoordinate)
PR_YPOS (PidTagYCoordinate)
PR_DELTAX (PidTagDeltaX)
PR_DELTAY (PidTagDeltaY)
PR_CONTROL_TYPE (PidTagControlType)
PR_CONTROL_FLAGS (PidTagControlFlags)
PR_CONTROL_STRUCTURE (PidTagControlStructure)
PR_CONTROL_ID (PidTagControlId)

PR_XPOS y PR_YPOS especificar las coordenadas X e Y de la esquina superior izquierda del control. Las unidades horizontales son 1/4 de la unidad de ancho base del cuadro de diálogo; las unidades verticales son 1/8 de la unidad de alto base del cuadro de diálogo. Windows calcula las unidades base del cuadro de diálogo actual desde el alto y el ancho de la fuente del sistema actual. Las coordenadas son relativas al origen del área de la página de propiedades. El tamaño de las páginas de propiedades está limitado a aproximadamente 200 por 180 unidades de diálogo.

PR_DELTAX y PR_DELTAY son el ancho y el alto del control. Estos son valores de ULONG. Las unidades de ancho son 1/4 de la unidad de ancho base del cuadro de diálogo; las unidades de alto son 1/8 de la unidad de alto base del cuadro de diálogo. Las coordenadas son relativas al origen del control.

Las otras cuatro propiedades describen varias características del control. PR_CONTROL_TYPE indica el tipo de control. MAPI define doce tipos de controles, cada uno con un conjunto diferente de atributos. Estos atributos se describen en la propiedad flags, PR_CONTROL_FLAGS. Algunos ejemplos de atributos son si un control es editable o obligatorio.

La estructura de control, PR_CONTROL_STRUCTURE, contiene información relevante para el tipo determinado de control. Cada tipo de control se describe con una estructura diferente. Por ejemplo, los controles de edición se describen con la estructura DTBLEDIT . Las estructuras DTBLEDIT contienen miembros que enumeran el número y tipos específicos de caracteres que se pueden colocar en el control y una etiqueta de propiedad que identifica la propiedad cuyo valor se va a mostrar en el control. PR_CONTROL_STRUCTURE se almacena como una propiedad binaria.

El identificador de control, PR_CONTROL_ID, identifica de forma única el control en el cuadro de diálogo descrito por la tabla para mostrar. PR_CONTROL_ID se establece a partir de los valores colocados en los miembros lpbNotif y cbNotif de la estructura DTCTL que usa BuildDisplayTable para crear la tabla para mostrar. Dado que MAPI a veces combina tablas para mostrar, el identificador de PR_CONTROL_ID siempre debe ser único. Normalmente, los proveedores asignan una estructura GUID a PR_CONTROL_ID para garantizar su exclusividad. La propiedad PR_CONTROL_ID se incluye en la estructura TABLE_NOTIFICATION cuando se genera una notificación de tabla para mostrar.

Para obtener más información sobre las tablas para mostrar, vea Mostrar implementación de tablas y Acerca de mostrar notificaciones de tabla.

Vea también

Tablas MAPI