Salvando propriedades MAPI

Aplica-se a: Outlook 2013 | Outlook 2016

Muitos objetos suportam um modelo de transação de processamento em que as alterações nas propriedades não se tornam permanentes até que sejam confirmadas posteriormente. Enquanto as alterações nas propriedades são tratadas pelos métodos IMAPIProp::SetProps e IMAPIProp::D eleteProps , a etapa de confirmação é manipulada por IMAPIProp::SaveChanges. Não é até depois de uma chamada bem-sucedida para SaveChanges que a versão mais recente das propriedades de um objeto pode ser acessada.

Quando SaveChanges retorna o valor de erro MAPI_E_OBJECT_CHANGED, isso é um aviso de que outro cliente está simultaneamente confirmando alterações no objeto. É possível, dependendo do provedor que implementa o objeto, que vários clientes abram um objeto com êxito chamando seu método OpenEntry com o sinalizador MAPI_MODIFY definido, dando-lhes acesso de leitura/gravação. O objeto retornado de uma chamada OpenEntry é um snapshot dos dados de armazenamento. Cada tentativa subsequente de alterar esses dados pode substituir a tentativa anterior.

Ao receber MAPI_E_OBJECT_CHANGED do SaveChanges, um cliente tem a opção de:

  • Faça uma cópia do objeto para armazenar as alterações.

  • Faça outra chamada para SaveChanges, especificando FORCE_SAVE.

Chamar SaveChanges com o sinalizador FORCE_SAVE substitui o salvamento anterior e torna as alterações de um cliente permanentes.

Confira também

Visão geral da propriedade MAPI