次の方法で共有


PreprocessMessage

適用対象: Outlook 2013 | Outlook 2016

メッセージの内容またはメッセージの形式を前処理する関数を定義します。

プロパティ
ヘッダー ファイル:
Mapispi.h
によって実装される定義された関数:
トランスポート プロバイダー
によって呼び出される定義済み関数:
MAPI スプーラー
HRESULT PreprocessMessage(
  LPVOID lpvSession,
  LPMESSAGE lpMessage,
  LPADRBOOK lpAdrBook,
  LPMAPIFOLDER lpFolder,
  LPALLOCATEBUFFER AllocateBuffer,
  LPALLOCATEMORE AllocateMore,
  LPFREEBUFFER FreeBuffer,
  ULONG FAR * lpcOutbound,
  LPMESSAGE FAR * FAR * lpppMessage,
  LPADRLIST FAR * lppRecipList
);

パラメーター

lpvSession

[in]使用するセッションへのポインター。

lpMessage

[in]前処理するメッセージへのポインター。

lpAdrBook

[in]ユーザーがメッセージの受信者を選択するアドレス帳へのポインター。

lpFolder

[in, out]フォルダーへのポインター。 入力時に、 lpFolder パラメーターは 、前処理するメッセージを含むフォルダーを指します。 出力時に、 lpFolder は 前処理されたメッセージが配置されているフォルダーを指します。

lpAllocateBuffer

[in]メモリの割り当てに使用する MAPIAllocateBuffer 関数へのポインター。

lpAllocateもっと

[in] MAPIAllocateMore 関数へのポインター。必要に応じて追加のメモリを割り当てるために使用されます。

lpFreeBuffer

[in]メモリを解放するために使用する MAPIFreeBuffer 関数へのポインター。

lpcOutbound

[out] lpppMessage パラメーターによって指される配列内のメッセージの数へのポインター。

lpppMessage

[out]前処理されたメッセージまたはその他の方法で生成されたメッセージへのポインターの配列へのポインターへのポインター。

lppRecipList

[out]オプションで返された ADRLIST 構造体へのポインター。メッセージが配信不能であるプリプロセッサによって検出された受信者を一覧表示します。 この一覧の内容の詳細については、 IMAPISupport::StatusRecips メソッドを参照してください。

戻り値

S_OK

メッセージの内容が正常に前処理されました。

注釈

トランスポート プロバイダー メッセージ プリプロセッサは、メッセージの前処理中に進行状況インジケーターを表示できます。 ただし、メッセージの前処理中にユーザーの操作を必要とするダイアログ ボックスを表示しないでください。

プリプロセッサが大量のデータを送信メッセージに追加する場合は、特定の手順に従う必要があります。 この種類のメッセージはサーバー ベースのメッセージ ストアに格納できるため、プリプロセッサはリモート ストア (時間のかかる手順) にアクセスできます。 これを回避するには、プリプロセッサに、大量の領域を取るデータをローカル メッセージ ストアに格納し、そのローカル ストアへの参照をメッセージに提供できるようにするオプションが必要です。

プリプロセッサは、最初に 前処理Message ベースの関数に渡されたオブジェクトを解放しないでください。

MAPI スプーラーが 前処理Message 関数を呼び出すには、トランスポート プロバイダーが IMAPISupport::RegisterPreprocessor メソッドの呼び出しで関数を登録している必要があります。 PreprocessMessage 関数を呼び出した後、スプーラーは関数が戻るまでメッセージの送信を続行できません。

MAPI スプーラーは、メッセージを送信するタスクを所有しています。 つまり、元のメッセージはメッセージ ポインターの配列に配置されることはなく、 SubmitMessage メソッドの呼び出しは必要ありません。

関連項目

IAddrBook : IMAPIProp
IMAPIFolder : IMAPIContainer
IMAPISupport: IUnknown