ITnef::FinishComponent

適用対象: Outlook 2013 | Outlook 2016

メッセージから個々のコンポーネントを一度に 1 つずつ、Transport-Neutral カプセル化形式 (TNEF) ストリームに処理します。

HRESULT FinishComponent(
  ULONG ulFlags,
  ULONG ulComponentID,
  LPSPropTagArray lpCustomPropList,
  LPSPropValue lpCustomProps,
  LPSPropTagArray lpPropList,
  LPSTnefProblemArray FAR * lppProblems
);

パラメーター

ulFlags

[in]完了するコンポーネントを制御するフラグのビットマスク。 次のいずれかのフラグを設定する必要があります。

TNEF_COMPONENT_ATTACHMENT

添付ファイル オブジェクトの処理が完了します。 ulComponentID パラメーターには、添付ファイルの PR_ATTACH_NUM (PidTagAttachNumber) プロパティが含まれています。

TNEF_COMPONENT_MESSAGE

メッセージ オブジェクトの処理は完了します。

ulComponentID

[入力] メッセージの処理、または処理する添付ファイルの PR_ATTACH_NUM プロパティを示す 0。 ulFlags パラメーターにTNEF_COMPONENT_MESSAGE フラグが設定されている場合、ulComponentID は 0 にする必要があります。

lpCustomPropList

[in]lpCustomProps パラメーターで渡されるプロパティを識別するプロパティ タグを含む SPropTagArray 構造体へのポインター。 lpCustomProps の各プロパティ値と lpCustomPropList パラメーターのプロパティ タグの間には、1 対 1 の対応が必要です。

lpCustomProps

[in]エンコードするプロパティのプロパティ値を含む SPropValue 構造体へのポインター。

lpPropList

[in]エンコードするプロパティのプロパティ タグを含む SPropTagArray 構造体へのポインター。

lppProblems

[out]返された STnefProblemArray 構造体へのポインター。 STnefProblemArray 構造体は、適切にエンコードされていないプロパティ (存在する場合) を示します。 lppProblems パラメーターに NULL が渡された場合、プロパティの問題配列は返されません。

戻り値

S_OK

�ʘb���������A�\�������l�܂��͒l���Ԃ���܂��B

注釈

トランスポート プロバイダー、メッセージ ストア プロバイダー、ゲートウェイは ITnef::FinishComponent メソッドを呼び出して、 ulFlags パラメーターに設定されたフラグによって示されるように、1 つのコンポーネント (メッセージまたは添付ファイル) に対して TNEF 処理を実行します。

コンポーネント処理を有効にするには、呼び出し元のプロバイダーまたはゲートウェイが、オブジェクトを開いてエンコードを受け取る OpenTnefStream または OpenTnefStreamEx 関数の ulFlags でTNEF_COMPONENT_ENCODING フラグを渡します。

lpCustomPropList パラメーターと lpCustomProps パラメーターに値を渡すと、ITnef::SetProps メソッドと同等のコンポーネント エンコードが実行されます。 lpPropList パラメーターに値を渡すと、ulFlags で TNEF_PROP_INCLUDE フラグが設定された ITnef::AddProps メソッドと同等のコンポーネント エンコードが実行されます。 これらの値を渡すと、複数の呼び出しではなく、1 つの呼び出しでエンコードを実行できます。

TNEF 実装は、 FinishComponent プロセスを停止せずに TNEF ストリーム エンコードの問題を報告します。 lppProblems で返される STnefProblemArray 構造体は、処理できなかった TNEF 属性または MAPI プロパティ (存在する場合) を示します。 STnefProblemArray に含まれる STnefProblem 構造体の scode メンバーで返される値は、特定の問題を示します。 プロバイダーまたはゲートウェイは、 FinishComponent が問題レポートを返さないすべてのプロパティまたは属性が正常に処理されたことを前提として動作できます。

プロバイダーまたはゲートウェイが問題のある配列で動作しない場合は、 lppProblems で NULL を渡すことができます。この場合、問題のある配列は返されません。

lppProblems で返される値は、呼び出しがS_OKを返す場合にのみ有効です。 S_OKが返されると、プロバイダーまたはゲートウェイは、STnefProblemArray 構造体で返される値をチェックする必要があります。 呼び出しでエラーが発生した場合、 STnefProblemArray 構造体は入力されず、呼び出し元プロバイダーまたはゲートウェイは構造体を使用または解放しないでください。 呼び出しでエラーが発生しない場合、呼び出し元のプロバイダーまたはゲートウェイは、MAPIFreeBuffer 関数を呼び出すことによって、STnefProblemArray のメモリを解放する必要があります。

関連項目

ITnef::AddProps
ITnef::SetProps
MAPIFreeBuffer
OpenTnefStream
OpenTnefStreamEx
SPropTagArray
STnefProblemArray
ITnef : IUnknown