Compartilhar via


IPersistMessage::InitNew

Aplica-se a: Outlook 2013 | Outlook 2016

Inicializa uma nova mensagem.

HRESULT InitNew(
  LPMAPIMESSAGESITE pMessageSite,
  LPMESSAGE pMessage
);

Parâmetros

pMessageSite

[in] Um ponteiro para o site de mensagens que o formulário usará para trabalhar com a mensagem no visualizador.

pMessage

[in] Um ponteiro para a nova mensagem.

Valor de retorno

S_OK

A nova mensagem foi inicializada com êxito.

Comentários

Os espectadores de formulário chamam o método IPersistMessage::InitNew quando o usuário grava uma nova mensagem que pertence a uma classe de mensagem que o formulário manipula. Se o objeto de formulário tiver um ponteiro de interface do usuário válido, a interface do usuário do objeto de mensagem deverá ser exibida.

InitNew não deve ser chamado quando seu formulário está em qualquer estado, exceto o estado uninitializado . Se o formulário estiver em um dos outros estados quando InitNew for chamado, retorne E_UNEXPECTED.

Observações para implementadores

Normalmente, as mensagens que têm propriedades não salvas são marcadas como modificadas para que o cliente possa exibir uma caixa de diálogo que solicita ao usuário se essas propriedades devem ser salvas. Se o usuário indicar que uma mensagem deve ser salva, salve os dados, marque a mensagem como limpo e saia normalmente.

No entanto, se o processamento de suas mensagens recém-inicializadas incluir a configuração de uma ou mais propriedades computadas e for importante que essas propriedades sejam salvas, não marque as mensagens como modificadas. Como as propriedades computadas devem ser invisíveis para os usuários, nenhuma caixa de diálogo deve ser exibida.

Se o formulário tiver uma referência a um site de mensagens ativo diferente daquele que é passado para o InitNew, libere o site original porque ele não será mais usado. Armazene os ponteiros para o site de mensagens e a mensagem dos parâmetros pMessageSite e pMessage e chame os métodos IUnknown::AddRef de ambos os objetos para incrementar suas contagens de referência.

Defina as propriedades PR_MESSAGE_FLAGS (PidTagMessageFlags) e PR_MSG_STATUS (PidTagMessageStatus) para a nova mensagem como algo apropriado para sua classe de mensagem. Muitas classes de mensagens, por exemplo, definem PR_MESSAGE_FLAGS como MSGFLAG_UNSENT para novas mensagens.

Antes de retornar, faça a transição do formulário para o estado Normal se não houver erros. Envie uma nova notificação de mensagem para todos os visualizadores registrados chamando seus métodos IMAPIViewAdviseSink::OnNewMessage e retorne S_OK.

Notas para chamadores

Depois de fazer uma chamada bem-sucedida para o InitNew, você pode assumir que as seguintes propriedades necessárias e nenhuma outra foram definidas para o formulário:

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)

Para obter mais informações sobre os estados dos formulários, consulte Estados de Formulário. Para obter mais informações sobre como os objetos de armazenamento são inicializados, consulte o método IPersistStorage::InitNew .

Confira também

IPersistMessage : IUnknown