Speichern von Daten in VSTO Outlook Add-Ins mittels StorageItem

19.09.2016

Bei der Speicherung von Einstellungen, Präferenzen o.ä. des Outlook Add-In für calvaDrive kam es bei jedem Update von Microsoft Outlook zu Problemen. Alle gespeicherten Informationen waren verschwunden.

Dies ist dadurch zurück zu führen, dass die Informationen über die herkömmliche settings-Datei von .NET-Anwendungen gespeichert wurden. Alle benutzerspezifischen Einstellungen wurden dabei in einem benutzerspezifischen Ordner abgelegt, dessen Name abhängig von der Outlook-Version ist. Wurde nun ein Update von Outlook installiert, so wurden die benutzerspezifischen Einstellungen an einem anderen Ort gesucht. Dadurch gingen die Informationen verloren.

Lösung:

Werden die benutzerspezifischen Einstellungen mittels StorageItem gespeichert, so gehen sie nach einem Update von Outlook nicht mehr verloren. [1]

Und so funktioniert’s:

GetStorageItem
Hole den Outlook-Speicher bzw. erstelle ihn, wenn nicht vorhanden

Folder inbox = (Folder) Globals.thisAddIn.Application.Session.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
StorageItem myStorage = inbox.GetStorage("MyStorageName", OlStorageIdentifierType.olIdentifyBySubject);

GetProperty
Hole ein Property mit einem bestimmten Namen

// If myProperty is null, then there is no property saved with this name
UserProperty myProperty = myStorage.UserProperties["MyPropertyName"];
return myProperty.Value;

CreateProperty
Erstelle ein Property, das mit einem bestimmten Namen noch nicht vorhanden ist

UserProperty myProperty = myStorage.UserProperties.Add("MyPropertyName", OlUserPropertyType.olText);
myProperty.Value = "MyPropertyValue";
myStorage.Save();

SetValue
Setze einen neuen Wert für ein bestimmtes Property

UserProperty myProperty = myStorage.UserProperties["MyPropertyName"];
myProperty.Value = "MyNewValue";
myStorage.Save();

 

Quellen

[1] http://stackoverflow.com/questions/10171454/what-storage-should-i-use-for-a-outlook-plugin
[2] https://msdn.microsoft.com/de-de/library/office/ff864182.aspx
[3] https://msdn.microsoft.com/en-us/library/bb147821(v=office.12).aspx
[4] https://msdn.microsoft.com/en-us/library/bb206773(v=office.12).aspx

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*