attMAPIProps
S’applique à : Outlook 2013 | Outlook 2016
L’attribut attMAPIProps est spécial en ce sens qu’il peut être utilisé pour encoder toute propriété MAPI qui n’a pas d’équivalent dans l’ensemble des attributs définis par TNEF existants. Les données d’attribut sont un ensemble compté de propriétés MAPI placées de bout en bout. Le format de cet encodage, qui autorise n’importe quel ensemble de propriétés MAPI, est le suivant :
Property_Seq :
Property_Value,... property-count
Il doit y avoir autant d’éléments Property_Value que la valeur du nombre de propriétés l’indique.
Property_Value :
property-tag Property_property-tag_Proptag_Name Property
Property-tag est simplement la valeur associée à l’identificateur de propriété, par exemple 0x0037001F pour PR_SUBJECT (PidTagSubject).
Propriété:
Valeur valeur-count Valeur Valeur,...
Valeur :
value-data value-size value-data remplissage valeur-size value-IID value-data padding
Proptag_Name :
name-guid name-kind name-id name-guid name-kind name-string-length name-string padding
L’encapsulation de chaque propriété varie en fonction de l’identificateur de propriété et du type de propriété. Les balises de propriété, les identificateurs et les types sont définis dans les fichiers d’en-tête Mapitags.h et Mapidefs.h.
Si la propriété est une propriété nommée, la balise de propriété est immédiatement suivie du nom de propriété MAPI, composé d’un identificateur global unique (GUID), d’un type et d’un identificateur ou d’une chaîne Unicode.
Les propriétés à valeurs multiples et les propriétés avec des valeurs de longueur variable, telles que les types de propriétés PT_BINARY, PT_STRING8, PT_UNICODE ou PT_OBJECT, sont traitées de la manière suivante. Tout d’abord, le nombre de valeurs, encodées en tant que long non signé 32 bits, est placé dans le flux TNEF, suivi des valeurs individuelles. La valeur-data de chaque propriété est encodée en tant que taille en octets suivie de la valeur-data elle-même. Les données de valeur sont complétées à une limite de 4 octets, bien que la quantité de remplissage ne soit pas incluse dans la taille de la valeur.
Si la propriété est de type PT_OBJECT, la valeur-size est suivie de l’identificateur d’interface de l’objet. L’implémentation actuelle de TNEF prend uniquement en charge les identificateurs d’interface IID_IMessage, IID_IStorage et IID_Istream. La taille de l’identificateur d’interface est incluse dans la valeur-size.
Si l’objet est un message incorporé (c’est-à-dire qu’il a un type de propriété de PT_OBJECT et un identificateur d’interface de IID_Imessage), les données de valeur sont encodées en tant que flux TNEF incorporé. L’encodage réel d’un message incorporé dans l’implémentation TNEF s’effectue en ouvrant un deuxième objet TNEF pour le flux d’origine et en traitant le flux inline.