attMAPIProps
Gilt für: Outlook 2013 | Outlook 2016
Das attMAPIProps-Attribut ist besonders, da es verwendet werden kann, um jede MAPI-Eigenschaft zu codieren, die keine Entsprechung im Satz vorhandener TNEF-definierter Attribute aufweist. Bei den Attributdaten handelt es sich um einen gezählten Satz von MAPI-Eigenschaften, die end-to-End angeordnet sind. Das Format dieser Codierung, die einen beliebigen Satz von MAPI-Eigenschaften zulässt, lautet wie folgt:
Property_Seq:
property-count-Property_Value,...
Es müssen so viele Property_Value Elemente vorhanden sein, wie der Wert der Eigenschaftsanzahl angibt.
Property_Value:
property-tag Property_property-tag_Proptag_Name-Eigenschaft
Das property-tag ist einfach der Wert, der dem Eigenschaftenbezeichner zugeordnet ist, z. B. 0x0037001F für PR_SUBJECT (PidTagSubject).
Eigenschaft:
WertwertanzahlWert,...
Wert:
Wert-Daten-Wert-Größe Wert-Daten-Auffüllung Wertgröße Wert-IID-Wert-Daten-Auffüllung
Proptag_Name:
name-guid name-kind name-id name-guid name-kind name-string-length name-string-padding
Die Kapselung der einzelnen Eigenschaften variiert je nach Eigenschaftenbezeichner und Eigenschaftentyp. Eigenschaftstags, Bezeichner und Typen werden in den Headerdateien Mapitags.h und Mapidefs.h definiert.
Wenn es sich bei der Eigenschaft um eine benannte Eigenschaft handelt, folgt unmittelbar auf das Eigenschaftentag der MAPI-Eigenschaftsname, der aus einer GUID (Globally Unique Identifier), einem Typ und entweder einem Bezeichner oder einer Unicode-Zeichenfolge besteht.
Mehrwertige Eigenschaften und Eigenschaften mit Werten variabler Länge, z. B. PT_BINARY, PT_STRING8, PT_UNICODE oder PT_OBJECT Eigenschaftentypen, werden wie folgt behandelt. Zuerst wird die Anzahl der Werte, die als 32-Bit-Länge ohne Vorzeichen codiert sind, in den TNEF-Stream eingefügt, gefolgt von den einzelnen Werten. Die Wertdaten jeder Eigenschaft werden als Größe in Bytes codiert, gefolgt von den Wertdaten selbst. Die Wertdaten werden bis zu einer 4-Byte-Grenze aufgefüllt, obwohl der Abstand nicht in der Wertgröße enthalten ist.
Wenn die Eigenschaft vom Typ PT_OBJECT ist, folgt auf die Wertgröße der Schnittstellenbezeichner des Objekts. Die aktuelle Implementierung von TNEF unterstützt nur die schnittstellenbezeichner IID_IMessage, IID_IStorage und IID_Istream. Die Größe des Schnittstellenbezeichners ist in der Wertgröße enthalten.
Wenn das Objekt eine eingebettete Nachricht ist (d. h., es verfügt über den Eigenschaftentyp PT_OBJECT und den Schnittstellenbezeichner IID_Imessage), werden die Wertdaten als eingebetteter TNEF-Stream codiert. Die tatsächliche Codierung einer eingebetteten Nachricht in der TNEF-Implementierung erfolgt durch Öffnen eines zweiten TNEF-Objekts für den ursprünglichen Datenstrom und Verarbeiten des Datenstroms inline.