适用于:Outlook 2013 | Outlook 2016
某些接口方法接受 MAPI_DEFERRED_ERRORS 标志作为输入参数。 设置此标志时,方法不必立即返回值;它可以在稍后某个时间让调用方知道调用的结果。
延迟错误可帮助服务提供商实现复杂方法,从而加快处理速度。 延迟错误不是处理许多请求并为每个请求返回一个值,而是允许在服务提供商中捆绑调用。 同时处理多个请求可减少网络流量,从而提高性能。 延迟错误在删除或复制属性的调用中特别有用,这些操作可能非常耗时。
当客户端在不设置只能以延迟方式处理MAPI_DEFERRED_ERRORS标志的情况下进行调用时,服务提供商可以延迟错误,也可以返回MAPI_E_TOO_COMPLEX。 大多数客户端应延迟错误,作为调用失败的最好策略。
设置MAPI_DEFERRED_ERRORS标志会更改客户端的错误处理实现,以便随时而不是在计划的时间传递返回的信息。 如果为时已晚,无法对其进行任何操作,或者有关原始请求的数据不再可用,则可能会返回错误。 例如,如果客户端调用 IMsgStore::OpenEntry 以打开设置了MAPI_DEFERRED_ERRORS的已删除文件夹,则在进行 IMAPIProp::GetProps 调用以检索文件夹的属性之一之前,客户端将不知道该问题。 然后,GetProps 将返回MAPI_E_NOT_FOUND。