Freigeben über


FieldDefinition-Datenstromstruktur

Gilt für: Outlook 2013 | Outlook 2016

Eine FieldDefinition-Streamstruktur enthält entweder die Felddefinition eines benutzerdefinierten Felds oder eine Reihe von Datenbindungseinstellungen für ein integriertes Feld.

Sie können eine FieldDefinition-Streamstruktur programmgesteuert bearbeiten, wenn die Struktur die Felddefinition eines benutzerdefinierten Felds enthält. Sie sollten nicht versuchen, eine FieldDefinition-Struktur programmgesteuert zu erstellen oder zu ändern, wenn die Struktur Einstellungen für ein integriertes Feld enthält. Sie sollten die Microsoft Outlook Forms-Designer verwenden, um solche Einstellungen für integrierte Felder zu verwalten.

Hinweis

Outlook unterstützt zwei Formate von Felddefinitionen: PropDefV1 und PropDefV2. Das PropDefV1-Format von Felddefinitionen enthält die folgenden Datenelemente: Flags, VT, DispId, NmidNameLength, NmidName, NameANSI, FormulaANSI, ValidationRuleANSI, ValidationTextANSI und ErrorANSI. Das PropDefV2-Format enthält die gleichen Elemente und die Elemente InternalType und SkipBlocks.

Outlook verwaltet keine Unicode-Version für die Datenelemente FormulaANSI, ValidationRuleANSI und ValidationTextANSI im PropDefV2-Felddefinitionsformat. Wenn diese Elemente Nicht-ASCII-Zeichen enthalten, können diese Zeichen abhängig von der ANSI-Codepage des Computers, auf dem Outlook ausgeführt wird, inkonsistent interpretiert werden. Daher sollten Sie nur Zeichenfolgenwerte verwenden, die vollständig aus ASCII-Zeichen für diese Datenelemente bestehen.

Datenelemente in diesem Stream werden in Little-Endian-Bytereihenfolge gespeichert, die in der unten angegebenen Reihenfolge unmittelbar aufeinander folgen.

  • Flags: DWORD (4 Bytes), eine Kombination aus null oder mehr Flags, deren Werte und Bedeutungen in der folgenden Tabelle aufgeführt sind.

    Flagname Wert Beschreibung
    PDO_IS_CUSTOM
    0x00000001
    Die FieldDefinition-Struktur enthält eine Definition eines benutzerdefinierten Felds.
    PDO_REQUIRED
    0x00000002
    Für ein Formularsteuerelement, das an dieses Feld gebunden ist, ist das Kontrollkästchen Für dieses Feld ist ein Wert erforderlich auf der Registerkarte Validierung des Dialogfelds Eigenschaften aktiviert.
    PDO_PRINT_SAVEAS
    0x00000004
    Für ein Formularsteuerelement, das an dieses Feld gebunden ist, ist das Kontrollkästchen Dieses Feld zum Drucken einschließen und Speichern unter auf der Registerkarte Überprüfung des Dialogfelds Eigenschaften aktiviert.
    PDO_CALC_AUTO
    0x00000008
    Für ein Formularsteuerelement, das an dieses Feld gebunden ist, ist das Kontrollkästchen für Diese Formel automatisch berechnen auf der Registerkarte Wert des Dialogfelds Eigenschaften aktiviert.
    PDO_FT_CONCAT
    0x00000010
    Dies ist ein Feld vom Typ Kombination, und im Dialogfeld Kombinationsformelfeld ist die Option Felder und alle Textfragmente miteinander verknüpfen ausgewählt.
    PDO_FT_SWITCH
    0x00000020
    Dieses Feld ist vom Typ Kombination und verfügt über die Option Nur das erste nicht leere Feld anzeigen, nachfolgende Felder ignorieren im Dialogfeld Kombinationsformelfeld ausgewählt.
    PDO_PRINT_SAVEAS_DEF
    0x00000040
    Dieses Flag wird nicht von Outlook verwendet, ist aber für alle benutzerdefinierten Felddefinitionen enthalten.
  • VT: WORD (2 Bytes), der Datentyp des Felds, bei dem es sich um eine Konstante aus der VARENUM-Enumeration handelt.

  • DispId: DWORD (4 Byte), der Dispatchbezeichner des Felds. Für ein benutzerdefiniertes Feld ist der Wert 0.

  • NmidNameLength: WORD (2 Bytes), die Anzahl der Elemente im NmidName-Array.

  • NmidName: Ein Array von WCHAR. Bei einer benutzerdefinierten Felddefinition ist dies die Unicode-Darstellung (UTF-16) des Feldnamens. Die Anzahl dieses Arrays entspricht NmidNameLength.

  • NameANSI: Eine PackedAnsiString-Streamstruktur . Dies ist die ANSI-Darstellung des Feldnamens.

  • FormulaANSI: Eine PackedAnsiString-Streamstruktur. Dies ist eine ANSI-Darstellung der Berechnungsformel für das Feld. Sie wird im Abschnitt Anfangswert der Registerkarte Wert des Dialogfelds Eigenschaften eines Formularsteuerelements angezeigt, das an dieses Feld gebunden ist.

  • ValidationRuleANSI: Eine PackedAnsiString-Streamstruktur. Dies ist eine ANSI-Darstellung der Validierungsformel des Felds. Sie wird im Textfeld für Validierungsformel auf der Registerkarte Validierung des Dialogfelds Eigenschaften eines Formularsteuerelements angezeigt, das an dieses Feld gebunden ist.

  • ValidationTextANSI: Eine PackedAnsiString-Streamstruktur. Dies ist eine ANSI-Darstellung des Validierungsfehlertexts des Felds. Sie wird im Textfeld Diese Meldung anzeigen angezeigt, wenn die Überprüfung fehlschlägt auf der Registerkarte Überprüfung des Dialogfelds Eigenschaften eines Formularsteuerelements, das an dieses Feld gebunden ist.

  • ErrorANSI: Eine PackedAnsiString-Streamstruktur. Outlook verwendet dieses Element nicht. Sie sollten dieses Element auf eine leere Zeichenfolge festlegen.

  • InternalType: DWORD (4 Bytes), der interne Typ des Felds. Dieses Datenelement ist nur vorhanden, wenn das Felddefinitionsformat PropDefV2 ist. Der interne Typ ist einer der folgenden Werte, von denen jeder einem Typ im Dialogfeld Neues Feld für benutzerdefinierte Felder entspricht.

    Interner Typname Wert Entsprechender Typ im Dialogfeld "Neues Feld "
    iTypeString
    0
    Text
    iTypeNumber
    1
    Number
    iTypePercent
    2
    Percent
    Währung
    3
    Currency
    iTypeBool
    4
    Yes/No
    iTypeDateTime
    5
    Datum/Uhrzeit
    iTypeDuration
    6
    Duration
    iTypeCombination
    7
    Kombination, wobei die Option Nur das erste nicht leere Feld anzeigen, nachfolgende Felder ignorieren im Dialogfeld Kombinationsformelfeld ausgewählt ist.
    iTypeFormula
    8
    Formula
    iTypeResult
    9
    Dieser Typ wird nicht für benutzerdefinierte Felder verwendet.
    iTypeVariant
    10
    Dieser Typ wird nicht für benutzerdefinierte Felder verwendet.
    iTypeFloatResult
    11
    Dieser Typ wird nicht für benutzerdefinierte Felder verwendet.
    iTypeConcat
    12
    Kombination, wobei die Option Felder verknüpfen und alle Textfragmente miteinander verknüpfen im Dialogfeld Kombinationsformelfeld ausgewählt ist.
    iTypeKeywords
    13
    Schlüsselwort
    iTypeInteger
    14
    Integer
  • SkipBlocks: Eine Reihe von einer oder mehreren SkipBlock-Streamstrukturen . Dieses Datenelement ist nur vorhanden, wenn das Felddefinitionsformat PropDefV2 ist. Wenn das Felddefinitionsformat PropDefV2 ist, sollte die Reihe mindestens eine SkipBlock-Struktur, die SkipBlock-Struktur mit dem Size-Datenelement gleich 0 enthalten, und die Reihe sollte mit dieser SkipBlock-Struktur beginnen und enden.

    Der Zweck einer SkipBlock-Struktur hängt von ihrer relativen Position in der SkipBlocks-Reihe ab. Wenn die Felddefinition im PropDefV2-Format vorliegt und die erste Struktur nicht die abschließende Struktur ist (das Size-Datenelement ist größer als 0), geht Outlook davon aus, dass die erste SkipBlock-Struktur den Feldnamen in Unicode (UTF-16) angibt.

    Wichtig

    Wenn der erste SkipBlock die beendende Struktur ist, wird das NameANSI-Datenelement verwendet, um den Feldnamen zu bestimmen. Wenn diese Zeichenfolge Nicht-ASCII-Zeichen enthält, können diese Zeichen abhängig von der ANSI-Codepage des Computers, auf dem Outlook ausgeführt wird, inkonsistent interpretiert werden. Um solche Inkonsistenzen zu vermeiden, stellen Sie sicher, dass Sie immer den ersten SkipBlock in den von Ihnen erstellten Felddefinitionen angeben, zumindest wenn der Feldname Nicht-ASCII-Zeichen enthält.

    Wenn eine zukünftige Version eines Felddefinitionsformats zusätzliche Datenelemente im FieldDefinition-Stream einführt, können diese Daten als zusätzliche SkipBlock-Streamstrukturen in der SkipBlocks-Reihe vor der abschließenden SkipBlock-Struktur gespeichert werden, die das Size-Datenelement gleich 0 aufweist. Frühere Versionen von Outlook können diese zusätzlichen SkipBlock-Strukturen bis zur beendenden SkipBlock-Struktur sicher ignorieren und trotzdem alle unterstützten Blöcke ordnungsgemäß verarbeiten.

Siehe auch