IMAPIForm::ShutdownForm

適用対象: Outlook 2013 | Outlook 2016

フォームを閉じます。

HRESULT ShutdownForm(
  ULONG ulSaveOptions
);

パラメーター

ulSaveOptions

[in]フォームを閉じる前にフォーム内のデータを保存する方法または保存するかどうかを制御する値。 次のいずれかのフラグを設定できます。

SAVEOPTS_NOSAVE

フォーム データは保存しないでください。

SAVEOPTS_PROMPTSAVE

ユーザーは、フォームに変更されたデータを保存するように求められます。

SAVEOPTS_SAVEIFDIRTY

フォーム データは、前回の保存以降に変更された場合は保存する必要があります。 ユーザー インターフェイスが表示されていない場合は、必要に応じて、SAVEOPTS_NOSAVE オプションの機能を使用して に切り替えることができます。

戻り値

S_OK

フォームが閉じられました。

E_UNEXPECTED

フォームは、 ShutdownForm の前の呼び出しによって既に閉じられています。

注釈

フォーム ビューアーは IMAPIForm::ShutdownForm メソッドを呼び出してフォームを閉じます。

実装に関するメモ

ShutdownForm の実装で次のタスクを実行します。

  1. ビューアーで ShutdownForm がまだ呼び出されていないことを確認し、存在する場合はE_UNEXPECTEDを返します。 これはありそうもありませんが、チェックする必要があります。

  2. フォームの IUnknown::AddRef メソッドを呼び出して、処理が完了するまでフォームと内部データ構造のストレージを使用できるようにします。

  3. フォームのデータに未保存の変更があるかどうかを判断します。 ビューアーの IMAPIMessageSite::SaveMessage メソッドを呼び出して ulSaveOptions パラメーターを設定する方法に従って、未保存のデータを保存します。

  4. フォームのユーザー インターフェイス ウィンドウを破棄します。

  5. IUnknown::Release メソッドを呼び出して、フォームのメッセージ およびメッセージ サイト オブジェクトを解放します。

  6. IMAPIViewAdviseSink::OnShutdown メソッドを呼び出して、登録されているすべてのビューアーに保留中のシャットダウンを通知します。

  7. IMAPIViewContext::SetAdviseSink メソッドを呼び出して、アドバイズ シンク ポインターを null に設定して、通知のフォームの登録を取り消します

  8. MAPIFreeBuffer 関数を呼び出して、フォームのプロパティのメモリを解放します。

  9. フォームの IUnknown::Release メソッドを呼び出し、手順 2 で行った AddRef 呼び出しと一致します。

  10. S_OK ��Ԃ��܂��B

注:

これらのアクションが完了した後、呼び出される可能性があるフォーム オブジェクトの有効なメソッドは 、IUnknown インターフェイスからのメソッドだけです。

呼び出し側への注意

ShutdownForm からエラーが返されるかどうかに関係なく、IUnknown::Release メソッドを呼び出してフォームを解放します。 ShutdownForm によって返されるエラーは無視しても問題ありません。

関連項目

IMAPIMessageSite::SaveMessage

IMAPIViewAdviseSink::OnShutdown

IMAPIViewContext::SetAdviseSink

MAPIFreeBuffer

IMAPIForm : IUnknown