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

status オブジェクトには進行状況インジケーターを表示しないでください。

FLUSH_UPLOAD

送信メッセージ キューをフラッシュする必要があります。

戻り値

S_OK

フラッシュ操作が成功しました。

MAPI_E_BUSY

別の操作が進行中です。この操作を開始する前に、完了を許可するか、停止する必要があります。

MAPI_E_NO_SUPPORT

状態オブジェクトのPR_RESOURCE_METHODS (PidTagResourceMethods) プロパティにSTATUS_FLUSH_QUEUES フラグが存在しないことで示されているように、status オブジェクトはこの操作をサポートしていません。

注釈

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 標準プロパティ

PidTagStatusCode 標準プロパティ

IMAPIStatus : IMAPIProp