Поделиться через


IMAPIForm::ShutdownForm

Область применения: Outlook 2013 | Outlook 2016

Закрывает форму.

HRESULT ShutdownForm(
  ULONG ulSaveOptions
);

Параметры

ulSaveOptions

[в] Значение типа , определяющее способ сохранения данных в форме перед закрытием формы. Можно задать один из следующих флагов:

SAVEOPTS_NOSAVE

Данные формы не должны сохраняться.

SAVEOPTS_PROMPTSAVE

Пользователю должно быть предложено сохранить все измененные данные в форме.

SAVEOPTS_SAVEIFDIRTY

Данные формы должны быть сохранены, если они изменились с момента последнего сохранения. Если пользовательский интерфейс не отображается, форма может при необходимости переключиться на использование функции для параметра SAVEOPTS_NOSAVE.

Возвращаемое значение

S_OK

Форма закрыта.

E_UNEXPECTED

Форма уже была закрыта до вызова shutdownForm.

Замечания

Средства просмотра форм вызывают метод IMAPIForm::ShutdownForm , чтобы закрыть форму.

Примечания для исполнителей

Выполните следующие задачи в реализации формы завершения работы:

  1. Убедитесь, что средство просмотра еще не вызывало ShutdownForm, и верните E_UNEXPECTED, если оно имеет. Хотя это маловероятно, вы должны проверка.

  2. Вызовите метод IUnknown::AddRef формы, чтобы хранилище формы и всех внутренних структур данных оставалось доступным до завершения обработки.

  3. Определите, есть ли несохраненные изменения в данных формы. Сохранение несохраненных данных в соответствии с настройкой параметра ulSaveOptions путем вызова метода IMAPIMessageSite::SaveMessage средства просмотра.

  4. Уничтожьте окно пользовательского интерфейса формы.

  5. Освободите объекты сайта сообщений и сообщений формы, вызвав их методы IUnknown::Release .

  6. Уведомите всех зарегистрированных пользователей о ожидающем завершении работы, вызвав методы IMAPIViewAdviseSink::OnShutdown .

  7. Вызовите метод IMAPIViewContext::SetAdviseSink , чтобы отменить регистрацию формы для уведомления, установив для указателя приемника рекомендаций значение NULL.

  8. Вызовите функцию MAPIFreeBuffer , чтобы освободить память для свойств формы.

  9. Вызовите метод IUnknown::Release формы, соответствующий вызову AddRef , выполненного на шаге 2.

  10. Возврат S_OK.

Примечание.

После завершения этих действий единственными допустимыми методами в объекте формы, которые можно вызвать, являются методы из интерфейса IUnknown .

Примечания для вызывающих методов

Когда shutdownForm возвращает, независимо от того, возвращает ли она ошибку, отпустите форму, вызвав ее метод IUnknown::Release . Вы можете спокойно игнорировать любые ошибки, возвращаемые ShutdownForm.

См. также

IMAPIMessageSite::SaveMessage

IMAPIViewAdviseSink::OnShutdown

IMAPIViewContext::SetAdviseSink

MAPIFreeBuffer

IMAPIForm : IUnknown