Partager via


IPersistMessage::InitNew

S’applique à : Outlook 2013 | Outlook 2016

Initialise un nouveau message.

HRESULT InitNew(
  LPMAPIMESSAGESITE pMessageSite,
  LPMESSAGE pMessage
);

Paramètres

pMessageSite

[in] Pointeur vers le site de message que le formulaire utilisera pour travailler avec le message dans la visionneuse.

pMessage

[in] Pointeur vers le nouveau message.

Valeur renvoyée

S_OK

Le nouveau message a été initialisé avec succès.

Remarques

Les visionneuses de formulaires appellent la méthode IPersistMessage ::InitNew lorsque l’utilisateur écrit un nouveau message qui appartient à une classe de message que le formulaire gère. Si l’objet de formulaire a un pointeur d’interface utilisateur valide, l’interface utilisateur de l’objet message doit s’afficher.

InitNew ne doit pas être appelé lorsque votre formulaire est dans un état autre que l’état Non initialisé . Si le formulaire se trouve dans l’un des autres états lorsque InitNew est appelé, retournez E_UNEXPECTED.

Remarques pour les responsables de l’implémentation

En règle générale, les messages qui ont des propriétés non enregistrées sont marqués comme modifiés afin que le client puisse afficher une boîte de dialogue qui demande à l’utilisateur si ces propriétés doivent être enregistrées. Si l’utilisateur indique qu’un message doit être enregistré, enregistrez les données, marquez le message comme propre et quittez-le normalement.

Toutefois, si le traitement de vos messages nouvellement initialisés inclut la définition d’une ou de plusieurs propriétés calculées et qu’il est important que ces propriétés soient enregistrées, ne marquez pas les messages comme modifiés. Étant donné que les propriétés calculées doivent être invisibles pour les utilisateurs, aucune boîte de dialogue ne doit être affichée.

Si votre formulaire contient une référence à un site de messages actif autre que celui qui est passé dans InitNew, relâchez le site d’origine, car il ne sera plus utilisé. Stockez les pointeurs vers le site de message et le message des paramètres pMessageSite et pMessage , et appelez les méthodes IUnknown ::AddRef des deux objets pour incrémenter leur nombre de références.

Définissez les propriétés PR_MESSAGE_FLAGS (PidTagMessageFlags) et PR_MSG_STATUS (PidTagMessageStatus) pour le nouveau message sur un élément approprié pour votre classe de message. De nombreuses classes de messages, par exemple, définissent PR_MESSAGE_FLAGS sur MSGFLAG_UNSENT pour les nouveaux messages.

Avant de revenir, faites passer le formulaire à l’état Normal si aucune erreur ne s’est produite. Envoyez une nouvelle notification de message à toutes les visionneuses inscrites en appelant leurs méthodes IMAPIViewAdviseSink ::OnNewMessage et retournez S_OK.

Remarques pour les appelants

Une fois que vous avez effectué un appel réussi à InitNew, vous pouvez supposer que les propriétés requises suivantes, et aucune autre, ont été définies pour le formulaire :

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)

Pour plus d’informations sur les états des formulaires, consultez États des formulaires. Pour plus d’informations sur l’initialisation des objets de stockage, consultez la méthode IPersistStorage ::InitNew .

Voir aussi

IPersistMessage : IUnknown