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 オブジェクトを開き、ストリームをインラインで処理することによって行われます。