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 后台处理程序才能调用它。
lpszPreprocess、lpszRemovePreprocessInfo 和 lpszDLLName 参数应都指向可与对 Win32 GetProcAddress 函数的调用结合使用的字符串,以便正确调用预处理器的 DLL 入口点。
给调用方的说明
对预处理器的调用特定于传输提供程序顺序。 这意味着,如果提供程序前面的另一个传输提供程序能够处理消息,则不会为该消息调用预处理器函数。 预处理器函数将仅针对要处理的消息调用。
可以编写预处理器函数来处理存储在 MAPIUID 结构中的特定标识符或地址类型。 如果在 lpMuid 参数中同时指定 MAPIUID 结构和 lpszAdrType 参数中的地址类型,则将为与 MAPIUID 或地址类型匹配的邮件收件人调用函数。 如果 lpMuid 为 NULL 且 lpszAdrType 为非 NULL,则仅对地址与 lpszAdrType 指向的类型匹配的收件人调用函数。 如果 lpMuid 为非 NULL 且 lpszAdrType 为 NULL,则将为匹配 MAPIUID 的收件人调用函数,而不管其地址类型如何。 如果两者均为 NULL,则会为邮件的所有收件人调用函数。
另请参阅
MAPIUID
PreprocessMessage
RemovePreprocessInfo
IMAPISupport : IUnknown