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


IPersistMessage::InitNew

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

Инициализирует новое сообщение.

HRESULT InitNew(
  LPMAPIMESSAGESITE pMessageSite,
  LPMESSAGE pMessage
);

Параметры

pMessageSite

[в] Указатель на сайт сообщения, который форма будет использовать для работы с сообщением в средстве просмотра.

pMessage

[в] Указатель на новое сообщение.

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

S_OK

Новое сообщение успешно инициализировано.

Замечания

Средства просмотра форм вызывают метод IPersistMessage::InitNew , когда пользователь пишет новое сообщение, принадлежащее классу сообщений, обрабатываемому формой. Если объект формы имеет допустимый указатель пользовательского интерфейса, должен отображаться пользовательский интерфейс для объекта message.

InitNew не следует вызывать, если форма находится в каком-либо состоянии, кроме неинициализированного состояния. Если форма находится в одном из других состояний при вызове InitNew , верните E_UNEXPECTED.

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

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

Однако если обработка новых инициализированных сообщений включает задание одного или нескольких вычисляемых свойств и важно сохранить эти свойства, не помечайте сообщения как измененные. Так как вычисляемые свойства должны быть невидимыми для пользователей, диалоговое окно не должно отображаться.

Если форма содержит ссылку на активный сайт сообщений, отличный от того, который передается в InitNew, отпустите исходный сайт, так как он больше не будет использоваться. Сохраните указатели на сайт сообщения и сообщение из параметров pMessageSite и pMessage и вызовите методы IUnknown::AddRef обоих объектов для увеличения количества ссылок.

Задайте свойства PR_MESSAGE_FLAGS (PidTagMessageFlags) и PR_MSG_STATUS (PidTagMessageStatus) для нового сообщения значение, подходящее для вашего класса сообщений. Многие классы сообщений, например, задают PR_MESSAGE_FLAGS MSGFLAG_UNSENT для новых сообщений.

Перед возвратом переведите форму в обычное состояние, если ошибок не произошло. Отправьте уведомление о новом сообщении всем зарегистрированным зрителям, вызвав их методы IMAPIViewAdviseSink::OnNewMessage и возвратив S_OK.

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

После успешного вызова InitNew можно предположить, что для формы заданы следующие обязательные свойства, а не другие:

PR_DELETE_AFTER_SUBMIT (PidTagDeleteAfterSubmit)

PR_IMPORTANCE (PidTagImportance)

PR_ORIGINATOR_DELIVERY_REPORT_REQUESTED (PidTagOriginatorDeliveryReportRequested)

PR_PRIORITY (PidTagPriority)

PR_READ_RECEIPT_REQUESTED (PidTagReadReceiptReceiptRequested)

PR_SENSITIVITY (PidTagSensitivity)

PR_SENTMAIL_ENTRYID (PidTagSentMailEntId)

Дополнительные сведения о состояниях форм см. в разделе Состояния форм. Дополнительные сведения об инициализации объектов хранилища см. в статье Метод IPersistStorage::InitNew .

См. также

IPersistMessage : IUnknown