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 フラグを設定します。

関連項目

IMAPIStatus::FlushQueues

IMAPISupport::StoreLogoffTransports

IXPLogon::FlushQueues

IMsgStore: IMAPIProp