Estructura de flujo FieldDefinition
Hace referencia a: Outlook 2013 | Outlook 2016
Una estructura de flujo FieldDefinition contiene la definición de campo de un campo definido por el usuario o un conjunto de opciones de enlace de datos para un campo integrado.
Puede manipular mediante programación una estructura de flujo FieldDefinition si la estructura contiene la definición de campo de un campo definido por el usuario. No debe intentar crear o modificar mediante programación una estructura FieldDefinition si la estructura contiene la configuración de un campo integrado. Debe usar el Designer de Formularios de Microsoft Outlook para mantener dicha configuración para los campos integrados.
Nota:
Outlook admite dos formatos de definiciones de campo: PropDefV1 y PropDefV2. El formato PropDefV1 de las definiciones de campo contiene los siguientes elementos de datos: Flags, VT, DispId, NmidNameLength, NmidName, NameANSI, FormulaANSI, ValidationRuleANSI, ValidationTextANSI y ErrorANSI. El formato PropDefV2 contiene los mismos elementos y los elementos InternalType y SkipBlocks.
Outlook no mantiene una versión Unicode para los elementos de datos FormulaANSI, ValidationRuleANSI y ValidationTextANSI en el formato de definición de campo PropDefV2. Si estos elementos contienen caracteres no ASCII, esos caracteres pueden interpretarse de forma incoherente en función de la página de códigos ANSI del equipo en el que se ejecuta Outlook. Por lo tanto, solo debe usar valores de cadena que constan completamente de caracteres ASCII para estos elementos de datos.
Los elementos de datos de esta secuencia se almacenan en orden de bytes little-endian, inmediatamente después entre sí en el orden especificado a continuación.
Marcas: DWORD (4 bytes), una combinación de cero o más marcas cuyos valores y significados se enumeran en la tabla siguiente.
Nombre de marca Valor Descripción PDO_IS_CUSTOM 0x00000001 La estructura FieldDefinition contiene una definición de un campo definido por el usuario. PDO_REQUIRED 0x00000002 Para un control de formulario enlazado a este campo, la casilla de verificación Un valor es necesaria para este campo está seleccionada en la pestaña Validación del cuadro de diálogo Propiedades . PDO_PRINT_SAVEAS 0x00000004 Para un control de formulario enlazado a este campo, la casilla Incluir este campo para imprimir y Guardar como está seleccionada en la pestaña Validación del cuadro de diálogo Propiedades . PDO_CALC_AUTO 0x00000008 Para un control de formulario enlazado a este campo, la casilla Calcular esta fórmula se selecciona automáticamente en la pestaña Valor del cuadro de diálogo Propiedades . PDO_FT_CONCAT 0x00000010 Se trata de un campo de tipo Combinación y tiene la opción Combinar campos y fragmentos de texto entre sí seleccionada en su cuadro de diálogo Campo de fórmula de combinación . PDO_FT_SWITCH 0x00000020 Este campo es de tipo Combinación y tiene la opción Mostrar solo el primer campo no vacío, omitiendo los siguientes seleccionados en el cuadro de diálogo Campo de fórmula de combinación . PDO_PRINT_SAVEAS_DEF 0x00000040 Outlook no usa esta marca, pero se incluye para todas las definiciones de campo definidas por el usuario. VT: WORD (2 bytes), el tipo de datos del campo, que es una constante de la enumeración VARENUM .
DispId: DWORD (4 bytes), el identificador de distribución del campo. Para un campo definido por el usuario, el valor es 0.
NmidNameLength: WORD (2 bytes), el número de elementos de la matriz NmidName.
NmidName: matriz de WCHAR. Para una definición de campo definida por el usuario, esta es la representación Unicode (UTF-16) del nombre del campo. El recuento de esta matriz es igual a NmidNameLength.
NameANSI: estructura de flujo PackedAnsiString . Esta es la representación ANSI del nombre del campo.
FormulaANSI: estructura de flujo PackedAnsiString. Se trata de una representación ANSI de la fórmula de cálculo para el campo. Se muestra en la sección Valor inicial de la pestaña Valor del cuadro de diálogo Propiedades de un control de formulario enlazado a este campo.
ValidationRuleANSI: estructura de flujo PackedAnsiString. Se trata de una representación ANSI de la fórmula de validación del campo. Se muestra en el cuadro de texto de Fórmula de validación en la pestaña Validación del cuadro de diálogo Propiedades de un control de formulario enlazado a este campo.
ValidationTextANSI: estructura de flujo PackedAnsiString. Se trata de una representación ANSI del texto de error de validación del campo. Se muestra en el cuadro de texto Mostrar este mensaje si se produce un error en la validación en la pestaña Validación del cuadro de diálogo Propiedades de un control de formulario enlazado a este campo.
ErrorANSI: estructura de flujo PackedAnsiString. Outlook no usa este elemento; debe establecer este elemento en una cadena vacía.
InternalType: DWORD (4 bytes), el tipo interno del campo. Este elemento de datos solo está presente si el formato de definición de campo es PropDefV2. El tipo interno es uno de los siguientes valores, cada uno de los cuales corresponde a un tipo en el cuadro de diálogo Nuevo campo para campos definidos por el usuario.
Nombre de tipo interno Valor Tipo correspondiente en el cuadro de diálogo Nuevo campo iTypeString 0 Text iTypeNumber 1 Number iTypePercent 2 Percent Moneda 3 Moneda iTypeBool 4 Sí/No iTypeDateTime 5 Fecha y hora iTypeDuration 6 Duración iTypeCombination 7 Combinación, con la opción Mostrar solo el primer campo no vacío, omitiendo los siguientes seleccionados en el cuadro de diálogo Campo de fórmula de combinación . iTypeFormula 8 Formula iTypeResult 9 Este tipo no se usa para campos definidos por el usuario. iTypeVariant 10 Este tipo no se usa para campos definidos por el usuario. iTypeFloatResult 11 Este tipo no se usa para campos definidos por el usuario. iTypeConcat 12 Combinación, con la opción Combinar campos y fragmentos de texto entre sí seleccionada en el cuadro de diálogo Campo de fórmula de combinación . iTypeKeywords 13 Palabra clave iTypeInteger 14 Integer SkipBlocks: una serie de una o varias estructuras de flujo SkipBlock . Este elemento de datos solo está presente si el formato de definición de campo es PropDefV2. Si el formato de definición de campo es PropDefV2, la serie debe contener al menos una estructura SkipBlock, la estructura SkipBlock que tiene el elemento de datos Size igual a 0 y la serie debe comenzar y finalizar con esta estructura SkipBlock.
El propósito de una estructura SkipBlock depende de su posición relativa en la serie SkipBlocks. Si la definición de campo está en formato PropDefV2 y la primera estructura no es la estructura de terminación (el elemento de datos Size es mayor que 0), Outlook asume que la primera estructura SkipBlock especifica el nombre del campo en Unicode (UTF-16).
Importante
Si el primer SkipBlock es la estructura de terminación, se usa el elemento de datos NameANSI para determinar el nombre del campo. Si esa cadena contiene caracteres que no sean ASCII, esos caracteres pueden interpretarse de forma incoherente en función de la página de códigos ANSI del equipo en el que se ejecuta Outlook. Para evitar estas incoherencias, asegúrese de especificar siempre el primer SkipBlock en las definiciones de campo que cree, al menos cuando el nombre del campo incluya caracteres no ASCII.
Si una versión futura de un formato de definición de campo introduce fragmentos adicionales de datos en el flujo FieldDefinition, estos datos se pueden almacenar como estructuras de flujo SkipBlock adicionales en la serie SkipBlocks antes de que finalice la estructura SkipBlock que tiene el elemento de datos Size igual a 0. Las versiones anteriores de Outlook pueden omitir de forma segura estas estructuras SkipBlock adicionales hasta la estructura SkipBlock de terminación y seguir procesando correctamente todos los bloques que admiten.