IMsgStore::SetLockState
適用対象: Outlook 2013 | Outlook 2016
メッセージをロックまたはロック解除します。 このメソッドは、MAPI スプーラーによってのみ呼び出されます。
HRESULT SetLockState(
LPMESSAGE lpMessage,
ULONG ulLockState
);
パラメーター
lpMessage
[in]ロックまたはロック解除するメッセージへのポインター。
ulLockState
[in]メッセージをロックするかロック解除するかを示す値。 次のいずれかの値が有効です。
MSG_LOCKED
メッセージはロックされている必要があります。
MSG_UNLOCKED
メッセージのロックを解除する必要があります。
戻り値
S_OK
メッセージのロック状態が正常に設定されました。
注釈
IMsgStore::SetLockState メソッドは、メッセージをロックまたはロック解除します。 SetLockState は、メッセージの送信中に MAPI スプーラーによってのみ呼び出すことができます。
通常、MAPI スプーラーが SetLockState を呼び出してメッセージをロックすると、最も古いメッセージ (つまり、MAPI スプーラーが送信するためにキューに入れた次のメッセージ) のみがロックされます。 キュー内の最も古いメッセージが一時的に使用できないトランスポート プロバイダーを待機していて、キュー内の次のメッセージが別のトランスポート プロバイダーを使用している場合、MAPI スプーラーは後のメッセージの処理を開始できます。 SetLockState を使用してそのメッセージをロックして処理を開始します。
実装に関するメモ
MAPI スプーラーが setLockState を呼び出し、 ulLockState パラメーターを MSG_LOCKED に設定した後、 IMsgStore::AbortSubmit メソッドを呼び出してメッセージの転送を取り消すには失敗する必要があります。
SetLockState 呼び出しが受信される前にメッセージに加えられた変更が保存されるように、SetLockState 実装でメッセージの IMAPIProp::SaveChanges メソッドを呼び出します。