OpenTnefStreamEx
適用対象: Outlook 2013 | Outlook 2016
トランスポートまたはゲートウェイおよびメッセージ ストアで使用するために、メッセージ オブジェクトを TNEF データ ストリームにエンコードまたはデコードするために使用できる、Transport-Neutral カプセル化形式 (TNEF) オブジェクトを作成します。 これは TNEF アクセスのエントリ ポイントです。
プロパティ | 値 |
---|---|
ヘッダー ファイル: |
Tnef.h |
実装元: |
MAPI |
呼び出し元: |
トランスポート プロバイダー |
HRESULT OpenTnefStreamEx(
LPVOID lpvSupport,
LPSTREAM lpStream,
LPSTR lpszStreamName,
ULONG ulFlags,
LPMESSAGE lpMessage,
WORD wKeyVal,
LPADDRESSBOOK lpAddressBook,
LPITNEF FAR * lppTNEF
);
パラメーター
lpvSupport
[in]サポート オブジェクトを渡すか、NULL を渡します。 NULL の場合、 lpAddressBook パラメーターは null 以外である必要があります。
lpStream
[in]TNEF ストリーム メッセージのソースまたは宛先を提供する、OLE IStream インターフェイスなどのストレージ ストリーム オブジェクトへのポインター。
lpszStreamName
[in]TNEF オブジェクトが使用するデータ ストリームの名前へのポインター。 呼び出し元が OpenTnefStream の呼び出しで TNEF_ENCODE フラグ (ulFlags パラメーター) を設定した場合、lpszName パラメーターは、ファイルの名前付けに有効と見なされる文字で構成される null 以外の文字列への null 以外のポインターを指定する必要があります。 MAPI では、ファイル システムで使用が許可されている場合でも、文字 "["、"]"、または ":"を含む文字列名は許可されません。 lpszName パラメーターに渡される文字列のサイズは、パス名を含む文字列の最大長であるMAX_PATHの値を超えてはなりません。
ulFlags
[in]関数のモードを示すために使用されるフラグのビットマスク。 次のフラグを設定できます。
TNEF_BEST_DATA
可能なすべてのプロパティはダウンレベルの属性にマップされますが、ダウンレベル属性への変換によってデータが失われる可能性がある場合は、プロパティもカプセル化でエンコードされます。 これにより、TNEF ストリーム内の情報が重複する可能性があることに注意してください。 TNEF_BEST_DATAは、他のモードが指定されていない場合の既定値です。
TNEF_COMPATIBILITY
古いクライアント アプリケーションとの下位互換性を提供します。 このフラグでエンコードされた TNEF ストリームは、使用可能なすべてのプロパティを対応するダウンレベル属性にマップします。 このモードでは、下位レベルのクライアントに必要な一部のプロパティの既定値も発生します。
注意
このフラグは廃止されており、使用しないでください。
TNEF_DECODE
指定されたストリームの TNEF オブジェクトは、読み取り専用アクセスで開かれます。 関数が後続のデコードのためにオブジェクトを初期化する場合、トランスポート プロバイダーはこのフラグを設定する必要があります。
TNEF_ENCODE
指定されたストリーム上の TNEF オブジェクトは、読み取り/書き込みアクセス許可のために開かれます。 トランスポート プロバイダーは、関数が後続のエンコードのためにオブジェクトを初期化する場合は、このフラグを設定する必要があります。
TNEF_PURE
MAPI カプセル化ブロックにすべてのプロパティをエンコードします。 したがって、"純粋" TNEF ファイルは、attMAPIProps、attAttachment、attRenddata、attRecipTable の属性で構成されます。 このモードは、下位互換性が必要ない場合に使用するのに最適です。
lpMessage
[in]添付ファイルを含むデコードされたメッセージの宛先、または添付ファイルを含むエンコードされたメッセージのソースとしてのメッセージ オブジェクトへのポインター。 宛先メッセージのプロパティは、エンコードされたメッセージのプロパティによって上書きできます。
wKeyVal
[in]メッセージ テキストに挿入されたテキスト タグに添付ファイルを照合するために TNEF オブジェクトが使用する検索キー。 この値は、メッセージ間で比較的一意である必要があります。
lpAddressBook
[in]エントリ識別子のアドレス情報を取得するために使用されるアドレス帳オブジェクトへのポインター。
lppTNEF
[out]新しい TNEF オブジェクトへのポインター。
戻り値
S_OK
�ʘb���������A�\�������l�܂��͒l���Ԃ���܂��B
注釈
OpenTnefStreamEx 関数は、TNEF アクセスの元のエントリ ポイントである OpenTnefStream の推奨される置き換えです。
OpenTnefStreamEx 関数によって作成された TNEF オブジェクトは、後で OLE メソッド IUnknown::AddRef を呼び出して、サポート オブジェクト、ストリーム オブジェクト、およびメッセージ オブジェクトの参照を追加します。 トランスポート プロバイダーは、TNEF オブジェクトの OLE メソッド IUnknown::Release を 1 回呼び出して、3 つすべてのオブジェクトの参照を解放できます。
OpenTnefStreamEx は、MAPI メッセージを TNEF ストリーム メッセージにエンコードする際に使用するプロバイダーの TNEF オブジェクトを割り当てて初期化します。 または、この関数は、 ITnef::ExtractProps への後続の呼び出しで使用するプロバイダーのオブジェクトを設定して、TNEF ストリーム メッセージを MAPI メッセージにデコードすることもできます。 TNEF オブジェクトを解放してセッションを閉じるには、トランスポート プロバイダーがオブジェクトで継承された IUnknown::Release メソッドを呼び出す必要があります。
wKeyVal パラメーターの基本値は 0 ではなく、OpenTnefStreamEx の呼び出しごとに同じにすることはできません。 代わりに、ランタイム ライブラリの乱数ジェネレーターのシステム時間に基づいて乱数を使用します。
MFCMAPI リファレンス
MFCMAPI のサンプル コードについては、次の表を参照してください。
ファイル | 関数 | コメント |
---|---|---|
File.cpp |
LoadFromTNEF |
MFCMAPI は OpenTnefStreamEx メソッドを使用して TNEF ファイルでストリームを開き、プロパティを抽出できるようにします。 |