Freigeben über


IPersistMessage::InitNew

Gilt für: Outlook 2013 | Outlook 2016

Initialisiert eine neue Nachricht.

HRESULT InitNew(
  LPMAPIMESSAGESITE pMessageSite,
  LPMESSAGE pMessage
);

Parameter

pMessageSite

[in] Ein Zeiger auf die Nachrichtenwebsite, die das Formular verwendet, um mit der Nachricht im Viewer zu arbeiten.

pMessage

[in] Ein Zeiger auf die neue Nachricht.

Rückgabewert

S_OK

Die neue Nachricht wurde erfolgreich initialisiert.

Hinweise

Formularanzeigen rufen die IPersistMessage::InitNew-Methode auf, wenn der Benutzer eine neue Nachricht schreibt, die zu einer Nachrichtenklasse gehört, die vom Formular verarbeitet wird. Wenn das Formularobjekt über einen gültigen Benutzeroberflächenzeiger verfügt, sollte die Benutzeroberfläche für das Nachrichtenobjekt angezeigt werden.

InitNew sollte nicht aufgerufen werden, wenn sich ihr Formular in einem zustand außer dem Nicht initialisierten Zustand befindet. Wenn sich das Formular in einem der anderen Zustände befindet, wenn InitNew aufgerufen wird, geben Sie E_UNEXPECTED zurück.

Hinweise für Implementierer

In der Regel werden Nachrichten mit nicht gespeicherten Eigenschaften als geändert markiert, sodass der Client ein Dialogfeld anzeigen kann, das den Benutzer auffordert, ob diese Eigenschaften gespeichert werden sollen. Wenn der Benutzer angibt, dass eine Nachricht gespeichert werden soll, speichern Sie die Daten, markieren Sie die Nachricht als sauber, und beenden Sie sie normal.

Wenn die Verarbeitung für Ihre neu initialisierten Nachrichten jedoch das Festlegen einer oder mehrerer berechneter Eigenschaften umfasst und es wichtig ist, dass diese Eigenschaften gespeichert werden, markieren Sie die Nachrichten nicht als geändert. Da berechnete Eigenschaften für Benutzer unsichtbar sein sollten, sollte kein Dialogfeld angezeigt werden.

Wenn Ihr Formular einen Verweis auf eine andere aktive Nachrichtenwebsite als die an InitNew übergebene hat, geben Sie die ursprüngliche Website frei, da sie nicht mehr verwendet wird. Speichern Sie die Zeiger auf die Nachrichtenwebsite und die Nachricht aus den Parametern pMessageSite und pMessage , und rufen Sie die IUnknown::AddRef-Methoden beider Objekte auf, um ihre Verweisanzahl zu erhöhen.

Legen Sie die Eigenschaften PR_MESSAGE_FLAGS (PidTagMessageFlags) und PR_MSG_STATUS (PidTagMessageStatus) für die neue Nachricht auf eine für Ihre Nachrichtenklasse geeignete Eigenschaft fest. Viele Nachrichtenklassen legen beispielsweise PR_MESSAGE_FLAGS auf MSGFLAG_UNSENT für neue Nachrichten fest.

Wechseln Sie vor der Rückgabe des Formulars in den Zustand Normal , wenn keine Fehler aufgetreten sind. Senden Sie eine neue Nachrichtenbenachrichtigung an alle registrierten Viewer, indem Sie deren IMAPIViewAdviseSink::OnNewMessage-Methoden aufrufen und S_OK zurückgeben.

Hinweise für Aufrufer

Nachdem Sie einen erfolgreichen Aufruf von InitNew durchgeführt haben, können Sie davon ausgehen, dass die folgenden erforderlichen Eigenschaften und keine anderen eigenschaften für das Formular festgelegt wurden:

PR_DELETE_AFTER_SUBMIT (PidTagDeleteAfterSubmit)

PR_IMPORTANCE (PidTagImportance)

PR_ORIGINATOR_DELIVERY_REPORT_REQUESTED (PidTagOriginatorDeliveryReportRequested)

PR_PRIORITY (PidTagPriority)

PR_READ_RECEIPT_REQUESTED (PidTagReadReceiptRequested)

PR_SENSITIVITY (PidTagSensitivity)

PR_SENTMAIL_ENTRYID (PidTagSentMailEntryId)

Weitere Informationen zu den Status von Formularen finden Sie unter Formularzustände. Weitere Informationen zur Initialisierung von Speicherobjekten finden Sie unter der IPersistStorage::InitNew-Methode .

Siehe auch

IPersistMessage : IUnknown