IMsgStore::StoreLogoff
適用対象: Outlook 2013 | Outlook 2016
メッセージ ストアの並べ替えログオフを有効にします。
HRESULT StoreLogoff(
ULONG FAR * lpulFlags
);
パラメーター
lpulFlags
[in, out]メッセージ ストアからのログオフを制御するフラグのビットマスク。 入力時に、このパラメーターに設定されたすべてのフラグは相互に排他的です。呼び出し元は、呼び出しごとに 1 つのフラグのみを指定する必要があります。 次のフラグは入力時に有効です。
LOGOFF_ABORT
ログオフする前に、このメッセージ ストアのトランスポート プロバイダー アクティビティを停止する必要があります。 アクティビティが停止した後、呼び出し元に制御が返されます。 トランスポート プロバイダーのアクティビティが行われている場合、ログオフは発生せず、MAPI スプーラーまたはトランスポート プロバイダーの動作の変更は発生しません。 トランスポート プロバイダーアクティビティがアイドル状態の場合、MAPI スプーラーはストアを解放します。
LOGOFF_NO_WAIT
メッセージ ストアは、終了する前にトランスポート プロバイダーからのメッセージを待機しないでください。 送信する準備ができている送信メッセージが送信されます。 このストアに既定の受信トレイが含まれている場合は、処理中のメッセージが受信され、さらに受信が無効になります。 すべてのアクティビティが完了すると、MAPI スプーラーはストアを解放し、コントロールはすぐに呼び出し元に返されます。
LOGOFF_ORDERLY
メッセージ ストアは、終了する前にトランスポート プロバイダーからの情報を待機しないでください。 現在処理中のメッセージは完了しますが、新しいメッセージは処理されません。 すべてのアクティビティが完了すると、MAPI スプーラーはストアを解放し、コントロールはすぐにストア プロバイダーに返されます。
LOGOFF_PURGE
ログオフは、LOGOFF_NO_WAIT フラグが設定されている場合と同じように機能しますが、適切なトランスポート プロバイダーの IXPLogon::FlushQueues メソッドまたは IMAPIStatus::FlushQueues メソッドを呼び出す必要があります。 LOGOFF_PURGE フラグは、完了後に呼び出し元に制御を返します。
LOGOFF_QUIET
トランスポート プロバイダーのアクティビティが発生している場合は、ログオフは発生しません。
次のフラグは出力時に有効です
LOGOFF_INBOUND
受信メッセージは現在到着しています。
LOGOFF_OUTBOUND
送信メッセージは送信中です。
LOGOFF_OUTBOUND_QUEUE
送信メッセージは保留中です (つまり、送信トレイにあります)。
戻り値
S_OK
ログオフが正常に完了しました。
注釈
IMsgStore::StoreLogoff メソッドは、ログオフ プロセス中にメッセージ ストアとトランスポート プロバイダーの相互作用を制御します。 StoreLogoff の呼び出しは、呼び出し元によってのみ使用されているメッセージ ストアに対してのみ有効です。 たとえば、2 つのクライアントが同じメッセージ ストアを使用していて、そのうちの 1 つが StoreLogoff を呼び出すと、メッセージ ストアはすぐに解放され、呼び出し元のクライアントに制御が返されます。
実装に関するメモ
StoreLogoff に渡されるフラグを保存し、IMAPISupport::StoreLogoffTransports メソッドを呼び出すときに渡します。 メッセージ ストアの参照カウントが 0 になるまで、 StoreLogoffTransports を呼び出さないでください。 StoreLogoffTransports への複数の呼び出しは、保存されたフラグを上書きするだけです。
メッセージ ストアの参照カウントが 0 に達する前に StoreLogoff への呼び出しが行われなかった場合は、StoreLogoffTransports に渡す ulFlags パラメーターにLOGOFF_ABORT フラグを設定します。