Partager via


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.

Voir aussi