ITnef::ExtractProps

適用対象: Outlook 2013 | Outlook 2016

TNEF カプセル化からプロパティを抽出します。

HRESULT ExtractProps(
  ULONG ulFlags,
  LPSPropTagArray lpPropList,
  LPSTnefProblemArray FAR * lpProblems
);

パラメーター

ulFlags

[in]プロパティのデコード方法を制御するフラグのビットマスク。 次のフラグを設定できます。

TNEF_PROP_EXCLUDE

lpPropList パラメーターで指定されていないすべてのプロパティをデコードします。

TNEF_PROP_INCLUDE

lpPropList で指定されたすべてのプロパティをデコードします。

lpPropList

[in]デコード操作に含める、またはデコード操作から除外するプロパティの一覧へのポインター。

lpProblems

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

戻り値

S_OK

呼び出しは成功し、期待される値または値を返しました。

MAPI_E_CORRUPT_DATA

ストリームにデコードされているデータが破損しています。

注釈

トランスポート プロバイダー、メッセージ ストア プロバイダー、およびゲートウェイは 、ITnef::ExtractProps メソッドを呼び出して、メッセージのカプセル化または OpenTnefStream 関数に渡された添付ファイルからプロパティを抽出 (つまりデコード) します。 呼び出し元のプロバイダーまたはゲートウェイは、デコードするプロパティの一覧を指定できます。 プロバイダーとゲートウェイは、 ExtractProps を 使用して、添付ファイルの特別な処理に関する情報を提供することもできます。

ExtractProps は、OpenTnefStream に渡された元のメッセージにデコードされたプロパティを設定します。 後続 の ExtractProps 呼び出しはメッセージに戻り、プロパティの新しいリストを抽出します。

ITnef::Finish メソッドが呼び出されるまでキューでアクションを要求した ITnef::AddProps メソッドとは異なり、ExtractProps メソッドは、呼び出されるとすぐにカプセル化されたプロパティをデコードします。 そのため、カプセル化デコードのターゲット メッセージは比較的空である必要があります。 ターゲット メッセージ内の既存のプロパティは、カプセル化されたプロパティによって上書きされます。

ExtractProps は、OpenTnefStream または OpenTnefStreamEx 関数のTNEF_DECODE フラグで開かれたオブジェクトに対してのみサポートされます。

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

注:

MAPI カプセル化ブロック内のプロパティを処理できず、TNEF ストリームのデコード中にストリームを信頼できない状態にした場合、カプセル化ブロックのデコードが停止され、問題が報告されます。 この種類の問題の問題配列には、 attMAPIPropsulPropTag メンバーまたは attAttachmentulAttribute メンバーの 0L と、scode メンバーのMAPI_E_UNABLE_TO_COMPLETEが含まれています。 ストリームのデコードは停止せず、MAPI カプセル化ブロックのデコードのみであることに注意してください。 ストリームのデコードは、次の属性ブロックで続行されます。

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

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

関連項目

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