IMAPISupport::RegisterPreprocessor

适用于:Outlook 2013 | Outlook 2016

(符合 PreprocessMessage 原型) 的函数注册传输提供程序的预处理器函数。

HRESULT RegisterPreprocessor(
LPMAPIUID lpMuid,
LPSTR lpszAdrType,
LPSTR lpszDLLName,
LPSTR lpszPreprocess,
LPSTR lpszRemovePreprocessInfo,
ULONG ulFlags
);

参数

lpMuid

[in]指向 MAPIUID 结构的指针,该结构包含预处理器函数处理的标识符。 lpMuid 参数可以为 NULL。

lpszAdrType

[in]指向函数操作的邮件的地址类型的指针,例如 FAX、SMTP 或 X500。 lpszAdrType 参数可以为 NULL。

lpszDLLName

[in]指向动态链接库名称的指针 (DLL) ,其中包含预处理器函数的入口点。

lpszPreprocess

[in]指向预处理器函数名称的指针。 lpszPreprocess 参数可以为 NULL。

lpszRemovePreprocessInfo

[in]指向函数名称的指针,该函数 (符合 RemovePreprocessInfo 原型) 的函数中删除预处理器信息。 lpszRemovePreprocessInfo 参数可以为 NULL。

ulFlags

保留;必须为零。

返回值

S_OK

预处理器函数已成功注册。

备注

IMAPISupport::RegisterPreprocessor 方法仅为传输提供程序支持对象实现。 传输提供程序调用 RegisterPreprocessor 以 (符合 PreprocessMessage 原型) 的函数注册预处理器函数。 必须先注册预处理器函数,然后 MAPI 后台处理程序才能调用它。

lpszPreprocesslpszRemovePreprocessInfolpszDLLName 参数应都指向可与对 Win32 GetProcAddress 函数的调用结合使用的字符串,以便正确调用预处理器的 DLL 入口点。

给调用方的说明

对预处理器的调用特定于传输提供程序顺序。 这意味着,如果提供程序前面的另一个传输提供程序能够处理消息,则不会为该消息调用预处理器函数。 预处理器函数将仅针对要处理的消息调用。

可以编写预处理器函数来处理存储在 MAPIUID 结构中的特定标识符或地址类型。 如果在 lpMuid 参数中同时指定 MAPIUID 结构和 lpszAdrType 参数中的地址类型,则将为与 MAPIUID 或地址类型匹配的邮件收件人调用函数。 如果 lpMuid 为 NULL 且 lpszAdrType 为非 NULL,则仅对地址与 lpszAdrType 指向的类型匹配的收件人调用函数。 如果 lpMuid 为非 NULL 且 lpszAdrType 为 NULL,则将为匹配 MAPIUID 的收件人调用函数,而不管其地址类型如何。 如果两者均为 NULL,则会为邮件的所有收件人调用函数。

另请参阅

MAPIUID
PreprocessMessage
RemovePreprocessInfo
IMAPISupport : IUnknown