attMAPIProps
適用対象: Outlook 2013 | Outlook 2016
attMAPIProps 属性は、既存の TNEF 定義属性のセットに対応するものがない MAPI プロパティをエンコードするために使用できる点で特別です。 属性データは、エンド ツー エンドで配置された MAPI プロパティのカウントされたセットです。 MAPI プロパティのセットを許可するこのエンコードの形式は次のとおりです。
Property_Seq:
property-count Property_Value,...
プロパティカウント値が示 す数のProperty_Value 項目が必要です。
Property_Value:
property-tag Property_property-tag_Proptag_Name プロパティ
property-tag は、 PR_SUBJECTの0x0037001F (PidTagSubject) など、プロパティ識別子に関連付けられた値です。
プロパティ:
Value value-count Value,...
Value:
value-data value-size value-data padding value-size value-IID value-data padding
Proptag_Name:
name-guid name-kind name-id name-guid name-kind name-string-length name-string padding
各プロパティのカプセル化は、プロパティ識別子とプロパティの種類によって異なります。 プロパティ タグ、識別子、および型は、Mapitags.h ヘッダー ファイルと Mapidefs.h ヘッダー ファイルで定義されます。
プロパティが名前付きプロパティの場合、プロパティ タグの直後に MAPI プロパティ名が続き、グローバル一意識別子 (GUID)、型、識別子または Unicode 文字列で構成されます。
PT_BINARY、PT_STRING8、PT_UNICODE、PT_OBJECT プロパティ型など、可変長の値を持つ複数値のプロパティとプロパティは、次のように扱われます。 最初に、32 ビット符号なし long としてエンコードされた値の数が TNEF ストリームに配置され、その後に個々の値が配置されます。 各プロパティの値データは、バイト単位でサイズとしてエンコードされ、その後に値データ自体が続きます。 値データは 4 バイト境界に埋め込まれますが、パディングの量は値サイズに含まれません。
プロパティが PT_OBJECT 型の場合、値サイズの後に オブジェクトのインターフェイス識別子が続きます。 TNEF の現在の実装では、IID_IMessage、IID_IStorage、および IID_Istream インターフェイス識別子のみがサポートされています。 インターフェイス識別子のサイズは、値サイズに含まれます。
オブジェクトが埋め込みメッセージ (つまり、PT_OBJECTのプロパティ型とIID_Imessageのインターフェイス識別子) である場合、値データは埋め込み TNEF ストリームとしてエンコードされます。 TNEF 実装での埋め込みメッセージの実際のエンコードは、元のストリームの 2 つ目の TNEF オブジェクトを開き、ストリームをインラインで処理することによって行われます。