Speichern von MAPI-Eigenschaften
Gilt für: Outlook 2013 | Outlook 2016
Viele Objekte unterstützen ein Transaktionsmodell der Verarbeitung, bei dem Änderungen an Eigenschaften erst dann dauerhaft ausgeführt werden, wenn sie zu einem späteren Zeitpunkt committet werden. Während Änderungen an Eigenschaften von den Methoden IMAPIProp::SetProps und IMAPIProp::D eleteProps verarbeitet werden, wird der Commitschritt von IMAPIProp::SaveChanges verarbeitet. Erst nach einem erfolgreichen Aufruf von SaveChanges kann auf die neueste Version der Eigenschaften eines Objekts zugegriffen werden.
Wenn SaveChanges den Fehlerwert MAPI_E_OBJECT_CHANGED zurückgibt, ist dies eine Warnung, dass ein anderer Client gleichzeitig Änderungen an das Objekt committet. Abhängig vom Anbieter, der das Objekt implementiert, ist es möglich, dass mehrere Clients ein Objekt erfolgreich öffnen, indem sie die OpenEntry-Methode mit dem MAPI_MODIFY Flag aufrufen und ihnen Lese-/Schreibzugriff gewähren. Das Objekt, das von einem solchen OpenEntry-Aufruf zurückgegeben wird, ist eine Momentaufnahme der Speicherdaten. Jeder nachfolgende Versuch, diese Daten zu ändern, kann den vorherigen Versuch überschreiben.
Nach dem Empfang von MAPI_E_OBJECT_CHANGED von SaveChanges hat ein Client folgende Optionen:
Erstellen Sie eine Kopie des -Objekts, um die Änderungen zu speichern.
Führen Sie einen weiteren Aufruf von SaveChanges durch, indem Sie FORCE_SAVE angeben.
Das Aufrufen von SaveChanges mit dem FORCE_SAVE-Flag überschreibt das vorherige Speichern und macht die Änderungen eines Clients dauerhaft.