適用されます: OutlookApplies to: Outlook

フォームを閉じます。Closes the form.

HRESULT ShutdownForm(
  ULONG ulSaveOptions



[in]フォームを閉じる前にフォーム内のデータを保存するかどうか方法を制御する値です。[in] A value that controls how or whether data in the form is saved before the form is closed. 次のフラグのいずれかを設定できます。One of the following flags can be set:


フォーム データを保存することがありませんか。Form data should not be saved.


ユーザーは、フォーム内で変更されたデータを保存する求められます。The user should be prompted to save any changed data in the form.


最後の保存以降変更されている場合、フォーム データを保存する必要があります。Form data should be saved if it has changed since the last save. ユーザー インターフェイスが表示されていない場合は、フォームを SAVEOPTS_NOSAVE オプションの機能を使用して切り替えることができますオプションで。If no user interface is being displayed, the form can optionally switch to using the functionality for the SAVEOPTS_NOSAVE option.

�߂�lReturn value


フォームが閉じられました。The form was closed.


ShutdownFormの前回の呼び出しで、フォームが既に閉じました。The form was already closed by a prior call to ShutdownForm.


フォームの閲覧者は、フォームを終了するのにはIMAPIForm::ShutdownFormメソッドを呼び出します。Form viewers call the IMAPIForm::ShutdownForm method to close a form.

実装者へのメモNotes to implementers

ShutdownFormの実装では、次のタスクを実行します。Perform the following tasks in your implementation of ShutdownForm:

  1. 確認しているビューアーが既に呼び出されませんShutdownFormとがある場合は E_UNEXPECTED を返します。Check that a viewer has not already called ShutdownForm, and return E_UNEXPECTED if it has. ではありませんが、チェックする必要があります。Although this is unlikely, you should check.

  2. 処理が完了するまで、フォームと内部データ構造体のストレージが利用可能なままにするために、フォームのIUnknown::AddRefメソッドを呼び出します。Call your form's IUnknown::AddRef method so that storage for the form and any internal data structures remain available until processing is finished.

  3. フォームのデータに未保存の変更があるかどうかを決定します。Determine whether there are any unsaved changes to the form's data. ビューアーのIMAPIMessageSite::SaveMessageメソッドを呼び出すことによって、 _ulSaveOptions_パラメーターを設定する方法に応じて、保存されていないデータを保存します。Save unsaved data according to how the ulSaveOptions parameter is set by calling your viewer's IMAPIMessageSite::SaveMessage method.

  4. フォームのユーザー インターフェイスのウィンドウを破棄します。Destroy your form's user interface window.

  5. メソッドを呼び出すことによって、フォームのメッセージとメッセージのサイト オブジェクトを解放します。Release your form's message and message site objects by calling their IUnknown::Release methods.

  6. IMAPIViewAdviseSink::OnShutdownメソッドを呼び出すことによって登録されているすべての視聴者の保留中のシャット ダウンを通知します。Notify all registered viewers of the pending shutdown by calling their IMAPIViewAdviseSink::OnShutdown methods.

  7. アドバイズ シンク ポインターをnullに設定して、フォームの登録をキャンセルするIMAPIViewContext::SetAdviseSinkメソッドを呼び出します。Call the IMAPIViewContext::SetAdviseSink method to cancel your form's registration for notification by setting the advise sink pointer to null.

  8. フォームのプロパティのメモリを解放するMAPIFreeBuffer関数を呼び出します。Call the MAPIFreeBuffer function to free the memory for your form's properties.

  9. 手順 2 で行われたAddRef呼び出しに一致するフォームの**** メソッドを呼び出します。Call your form's IUnknown::Release method, matching the AddRef call made in step 2.

  10. S_OK ��Ԃ��܂��BReturn S_OK.


これらの操作を完了すると、呼び出される form オブジェクトにのみ有効なメソッドは、 IUnknownインターフェイスから。After these actions have been completed, the only valid methods on the form object that may be called are those from the IUnknown interface.

呼び出し側への注意Notes to callers

ShutdownForm制御が戻るとき、エラーを返すかどうかに関係なく、リ スのメソッドを呼び出して、フォームを離します。When ShutdownForm returns, regardless of whether it returns an error, release the form by calling its IUnknown::Release method. ShutdownFormによって返されるエラーを無視できます。You can safely ignore any errors returned by ShutdownForm.

関連項目See also





IMAPIForm: IUnknownIMAPIForm : IUnknown