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 の実装で次のタスクを実行します。
ビューアーで ShutdownForm がまだ呼び出されていないことを確認し、存在する場合はE_UNEXPECTEDを返します。 これはありそうもありませんが、チェックする必要があります。
フォームの IUnknown::AddRef メソッドを呼び出して、処理が完了するまでフォームと内部データ構造のストレージを使用できるようにします。
フォームのデータに未保存の変更があるかどうかを判断します。 ビューアーの IMAPIMessageSite::SaveMessage メソッドを呼び出して ulSaveOptions パラメーターを設定する方法に従って、未保存のデータを保存します。
フォームのユーザー インターフェイス ウィンドウを破棄します。
IUnknown::Release メソッドを呼び出して、フォームのメッセージ およびメッセージ サイト オブジェクトを解放します。
IMAPIViewAdviseSink::OnShutdown メソッドを呼び出して、登録されているすべてのビューアーに保留中のシャットダウンを通知します。
IMAPIViewContext::SetAdviseSink メソッドを呼び出して、アドバイズ シンク ポインターを null に設定して、通知のフォームの登録を取り消します。
MAPIFreeBuffer 関数を呼び出して、フォームのプロパティのメモリを解放します。
フォームの IUnknown::Release メソッドを呼び出し、手順 2 で行った AddRef 呼び出しと一致します。
S_OK ��Ԃ��܂��B
注:
これらのアクションが完了した後、呼び出される可能性があるフォーム オブジェクトの有効なメソッドは 、IUnknown インターフェイスからのメソッドだけです。
呼び出し側への注意
ShutdownForm からエラーが返されるかどうかに関係なく、IUnknown::Release メソッドを呼び出してフォームを解放します。 ShutdownForm によって返されるエラーは無視しても問題ありません。
関連項目
IMAPIViewAdviseSink::OnShutdown