Structure de flux FieldDefinition
S’applique à : Outlook 2013 | Outlook 2016
Une structure de flux FieldDefinition contient la définition de champ d’un champ défini par l’utilisateur ou un ensemble de paramètres de liaison de données pour un champ intégré.
Vous pouvez manipuler par programmation une structure de flux FieldDefinition si la structure contient la définition de champ d’un champ défini par l’utilisateur. Vous ne devez pas tenter de créer ou de modifier par programmation une structure FieldDefinition si la structure contient des paramètres pour un champ intégré. Vous devez utiliser microsoft Outlook Forms Designer pour conserver ces paramètres pour les champs intégrés.
Remarque
Outlook prend en charge deux formats de définitions de champs : PropDefV1 et PropDefV2. Le format PropDefV1 des définitions de champs contient les éléments de données suivants : Flags, VT, DispId, NmidNameLength, NmidName, NameANSI, FormulaANSI, ValidationRuleANSI, ValidationTextANSI et ErrorANSI. Le format PropDefV2 contient les mêmes éléments et les éléments InternalType et SkipBlocks.
Outlook ne conserve pas de version Unicode pour les éléments de données FormulaANSI, ValidationRuleANSI et ValidationTextANSI au format de définition de champ PropDefV2. Si ces éléments contiennent des caractères non-ASCII, ces caractères peuvent être interprétés de manière incohérente en fonction de la page de codes ANSI de l’ordinateur sur lequel Outlook s’exécute. Par conséquent, vous devez utiliser uniquement des valeurs de chaîne qui se composent entièrement de caractères ASCII pour ces éléments de données.
Les éléments de données de ce flux sont stockés dans l’ordre d’octet little-endian, qui se suivent immédiatement dans l’ordre spécifié ci-dessous.
Indicateurs : DWORD (4 octets), combinaison de zéro ou plusieurs indicateurs dont les valeurs et les significations sont répertoriées dans le tableau suivant.
Nom de l’indicateur Valeur Description PDO_IS_CUSTOM 0x00000001 La structure FieldDefinition contient une définition d’un champ défini par l’utilisateur. PDO_REQUIRED 0x00000002 Pour un contrôle de formulaire lié à ce champ, la zone case activée une valeur est requise pour ce champ est sélectionnée sous l’onglet Validation de la boîte de dialogue Propriétés. PDO_PRINT_SAVEAS 0x00000004 Pour un contrôle de formulaire lié à ce champ, la zone case activée inclure ce champ pour l’impression et Enregistrer sous est sélectionnée dans l’onglet Validation de la boîte de dialogue Propriétés. PDO_CALC_AUTO 0x00000008 Pour un contrôle de formulaire lié à ce champ, la zone case activée calculer automatiquement cette formule est sélectionnée sous l’onglet Valeur de la boîte de dialogue Propriétés. PDO_FT_CONCAT 0x00000010 Il s’agit d’un champ de type Combinaison dont l’option Joindre les champs et tous les fragments de texte les uns avec les autres est sélectionnée dans sa boîte de dialogue Champ de formule combiné . PDO_FT_SWITCH 0x00000020 Ce champ est de type Combinaison et a l’option Affichage uniquement du premier champ non vide, en ignorant les champs suivants sélectionnés dans la boîte de dialogue Champ de formule combiné . PDO_PRINT_SAVEAS_DEF 0x00000040 Cet indicateur n’est pas utilisé par Outlook, mais il est inclus pour toutes les définitions de champ définies par l’utilisateur. VT : WORD (2 octets), type de données du champ, qui est une constante de l’énumération VARENUM .
DispId : DWORD (4 octets), identificateur de distribution du champ. Pour un champ défini par l’utilisateur, la valeur est 0.
NmidNameLength : WORD (2 octets), nombre d’éléments dans le tableau NmidName.
NmidName : tableau de WCHAR. Pour une définition de champ définie par l’utilisateur, il s’agit de la représentation Unicode (UTF-16) du nom du champ. Le nombre de ce tableau est égal à NmidNameLength.
NameANSI : structure de flux PackedAnsiString . Il s’agit de la représentation ANSI du nom du champ.
FormulaANSI : structure de flux PackedAnsiString. Il s’agit d’une représentation ANSI de la formule de calcul pour le champ. Il s’affiche dans la section Valeur initiale de l’onglet Valeur de la boîte de dialogue Propriétés d’un contrôle de formulaire lié à ce champ.
ValidationRuleANSI : structure de flux PackedAnsiString. Il s’agit d’une représentation ANSI de la formule de validation du champ. Il s’affiche dans la zone de texte Formule de validation sous l’onglet Validation de la boîte de dialogue Propriétés d’un contrôle de formulaire lié à ce champ.
ValidationTextANSI : structure de flux PackedAnsiString. Il s’agit d’une représentation ANSI du texte d’échec de validation du champ. Il s’affiche dans la zone de texte Afficher ce message si la validation échoue sous l’onglet Validation de la boîte de dialogue Propriétés d’un contrôle de formulaire lié à ce champ.
ErrorANSI : structure de flux PackedAnsiString. Outlook n’utilise pas cet élément ; vous devez définir cet élément sur une chaîne vide.
InternalType : DWORD (4 octets), type interne du champ. Cet élément de données est présent uniquement si le format de définition de champ est PropDefV2. Le type interne est l’une des valeurs suivantes, chacune correspondant à un type dans la boîte de dialogue Nouveau champ pour les champs définis par l’utilisateur.
Nom du type interne Valeur Type correspondant dans la boîte de dialogue Nouveau champ iTypeString 0 Texte iTypeNumber 1 Number iTypePercent 2 Pourcentage Devise 3 Devise iTypeBool 4 Yes/No iTypeDateTime 5 Date/Heure iTypeDuration 6 Duration iTypeCombination 7 Combinaison, avec l’option Affichage uniquement du premier champ non vide, en ignorant les champs suivants sélectionnés dans la boîte de dialogue Champ de formule combiné. iTypeFormula 8 Formule iTypeResult 9 Ce type n’est pas utilisé pour les champs définis par l’utilisateur. iTypeVariant 10 Ce type n’est pas utilisé pour les champs définis par l’utilisateur. iTypeFloatResult 11 Ce type n’est pas utilisé pour les champs définis par l’utilisateur. iTypeConcat 12 Combinaison, avec l’option Joindre les champs et les fragments de texte les uns avec les autres sélectionnés dans la boîte de dialogue Champ de formule combiné . iTypeKeywords 13 Mot clé iTypeInteger 14 Integer SkipBlocks : série d’une ou plusieurs structures de flux SkipBlock . Cet élément de données est présent uniquement si le format de définition de champ est PropDefV2. Si le format de définition de champ est PropDefV2, la série doit contenir au moins une structure SkipBlock, la structure SkipBlock dont l’élément de données Size est égal à 0, et la série doit commencer et se terminer par cette structure SkipBlock.
L’objectif d’une structure SkipBlock dépend de sa position relative dans la série SkipBlocks. Si la définition de champ est au format PropDefV2 et que la première structure n’est pas la structure de fin (l’élément de données Size est supérieur à 0), Outlook suppose que la première structure SkipBlock spécifie le nom du champ en Unicode (UTF-16).
Importante
Si le premier SkipBlock est la structure de fin, l’élément de données NameANSI est utilisé pour déterminer le nom du champ. Si cette chaîne contient des caractères non ASCII, ces caractères peuvent être interprétés de manière incohérente en fonction de la page de codes ANSI de l’ordinateur sur lequel Outlook est exécuté. Pour éviter de telles incohérences, veillez à toujours spécifier le premier SkipBlock dans les définitions de champ que vous créez, au moins lorsque le nom du champ inclut des caractères non-ASCII.
Si une version ultérieure d’un format de définition de champ introduit des éléments de données supplémentaires dans le flux FieldDefinition, ces données peuvent être stockées en tant que structures de flux SkipBlock supplémentaires dans la série SkipBlocks avant la structure SkipBlock de fin qui a l’élément de données Size égal à 0. Les versions antérieures d’Outlook peuvent ignorer en toute sécurité ces structures SkipBlock supplémentaires jusqu’à la structure SkipBlock de fin et traiter correctement tous les blocs qu’elles prennent en charge.