IMAPIStatus::FlushQueues
适用于:Outlook 2013 | Outlook 2016
强制等待发送或接收的所有消息立即上传或下载。 MAPI 后台处理程序状态对象和传输提供程序实现的状态对象支持此方法。
HRESULT FlushQueues(
ULONG_PTR ulUIParam,
ULONG cbTargetTransport,
LPENTRYID lpTargetTransport,
ULONG ulFlags
);
参数
ulUIParam
[in]此方法显示的任何对话框或窗口的父窗口的句柄。
cbTargetTransport
[in] lpTargetTransport 参数指向的条目标识符中的字节计数。 cbTargetTransport 参数仅在调用 MAPI 后台处理程序的状态对象时设置。 对于对传输提供程序的调用, cbTargetTransport 参数设置为 0。
lpTargetTransport
[in]指向要刷新其消息队列的传输提供程序的条目标识符的指针。 lpTargetTransport 参数仅在调用 MAPI 后台处理程序的状态对象时设置。 对于对传输提供程序的调用, lpTargetTransport 参数设置为 NULL。
ulFlags
[in]控制刷新操作的标志的位掩码。 可以设置以下标志:
FLUSH_ASYNC_OK
刷新操作可以异步进行。 此标志仅适用于 MAPI 后台处理程序的状态对象。
FLUSH_DOWNLOAD
应刷新传入消息队列。
FLUSH_FORCE
不管怎样,刷新操作都应进行,尽管可能会降低性能。 当异步传输提供程序成为目标时,必须设置此标志。
FLUSH_NO_UI
状态对象不应显示进度指示器。
FLUSH_UPLOAD
应刷新传出消息队列。
返回值
S_OK
刷新操作成功。
MAPI_E_BUSY
另一个操作正在进行中;应该允许它完成,或者应该停止它,然后才能启动此操作。
MAPI_E_NO_SUPPORT
状态对象不支持此操作,状态对象的PR_RESOURCE_METHODS (PidTagResourceMethods) 属性中缺少 STATUS_FLUSH_QUEUES 标志。
备注
IMAPIStatus::FlushQueues 方法请求 MAPI 后台处理程序或传输提供程序立即发送传出队列中的所有消息或接收来自传入队列的所有消息。 FlushQueues 仅由 MAPI 后台处理程序状态对象和传输提供程序提供的状态对象实现。
应为异步请求返回MAPI_E_BUSY,以便客户端可以继续工作。
默认情况下, FlushQueues 是同步操作;在刷新完成之前,控件不会返回到调用方。 只有 MAPI 后台处理程序执行的刷新操作是异步的;客户端通过设置 FLUSH_ASYNC_OK 标志来请求此行为。
针对实现者的说明
远程传输提供程序的 FlushQueues 实现在登录对象的状态行中设置 PR_STATUS_CODE (PidTagStatusCode) 属性中的位,以控制队列的刷新方式。 如果远程查看器传入FLUSH_UPLOAD标志, FlushQueues 方法应设置STATUS_INBOUND_ENABLED位和STATUS_INBOUND_ACTIVE位。 如果远程查看器传入FLUSH_DOWNLOAD标志, FlushQueues 方法应设置STATUS_OUTBOUND_ENABLED和STATUS_OUTBOUND_ACTIVE位。 然后,FlushQueues 应返回S_OK。 然后,MAPI 后台处理程序将启动相应的操作来上传和下载消息。
给调用方的说明
对 MAPI 后台处理程序状态对象的调用是一个指令,用于将所有消息传输到相应的传输提供程序或从相应的传输提供程序传输。 调用单个传输提供程序的状态对象时,只会影响该提供程序的消息。