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 函数的指针,用于分配内存。

lpAllocateMore

[in]指向 MAPIAllocateMore 函数的指针,用于根据需要分配额外的内存。

lpFreeBuffer

[in]指向 MAPIFreeBuffer 函数的指针,用于释放内存。

lpcOutbound

[out]指向 lpppMessage 参数指向的数组中消息数的指针。

lpppMessage

[out]指向指向预处理或其他生成消息的指针数组的指针的指针的指针的指针。

lppRecipList

[out]指向返回的可选 ADRLIST 结构的指针,其中列出了邮件无法送达的预处理器检测到的收件人。 有关此列表内容的详细信息,请参阅 IMAPISupport::StatusRecips 方法。

返回值

S_OK

已成功预处理消息内容。

备注

传输提供程序消息预处理器可以在消息预处理期间显示进度指示器。 但是,它不应在消息预处理期间显示需要用户交互的对话框。

当预处理器向出站消息添加大量数据时,应遵循某些过程。 这种类型的消息可以存储在基于服务器的消息存储中,导致预处理器访问远程存储,这是一个耗时的过程。 为了避免必须执行此操作,预处理器应有一个选项,使它能够在本地消息存储中存储占用大量空间的数据,并在消息中提供对该本地存储的引用。

预处理器不应释放最初传递给 基于 PreprocessMessage 的 函数的任何对象。

在 MAPI 后台处理程序可以调用 PreprocessMessage 函数之前,传输提供程序必须在调用 IMAPISupport::RegisterPreprocessor 方法时注册该函数。 调用 PreprocessMessage 函数后,后台处理程序在函数返回之前无法继续提交消息。

MAPI 后台处理程序拥有提交消息的任务。 这意味着原始消息永远不会放置在消息指针数组中,并且从不需要调用 SubmitMessage 方法。

另请参阅

IAddrBook : IMAPIProp
IMAPIFolder : IMAPIContainer
IMAPISupport : IUnknown