共用方式為


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]傳輸提供者之專案標識碼的指標,用來排清其消息佇列。 只有在呼叫MAPI多任務緩衝處理器的狀態物件時,才會設定 lpTargetTransport 參數。 對於傳輸提供者的呼叫, 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

status 物件不支援這項作業,如狀態物件的 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多任務緩衝處理程式狀態物件的呼叫是指示詞,可將所有訊息傳送至適當的傳輸提供者或從中傳送所有訊息。 當您呼叫個別傳輸提供者的狀態物件時,只會影響該提供者的訊息。

另請參閱

PidTagResourceMethods Canonical 屬性

PidTagStatusCode Canonical 屬性

IMAPIStatus:IMAPIProp