2016-04-21 16 views
0

Gibt es eine Möglichkeit, die GlobalAppointmentId eines Termins zu ändern.Outlook AddIn - ändern Sie die GlobalAppointmentId

fand ich diese Eigenschaft Schema:

var globalIdPropertySchema = @"http://schemas.microsoft.com/mapi/id/{6ED8DA90-450B-101B-98DA-00AA003F1305}/00030102"; 

und ich einen neuen Wert zu:

Item.PropertyAccessor.SetProperty(globalIdPropertySchema, MY_NEW_ID); 

dann, wenn ich es Item.PropertyAccessor.GetProperty bekommen mit Ich bin die neue id bekommen, aber die Item.GlobalAppointmentId ist immer noch das Original.

Ich brauche dies, damit mein AddIn Termine mit ICS-Dateien synchronisieren kann. Unser System sendet ICS-Dateien mit einem Suffix im Feld iCalendar UID. Es ist jedoch möglich, Termine für unser System über das Outlook-Add-In zu erstellen. Die ICS-Datei, die gesendet wird, verwendet die GlobalAppointmentID als UID-Feld in der ICS-Datei. Wir speichern es, aber es muss unser Suffix haben. Irgendwelche Tipps?

Antwort

1

Sie müssen den Termin vollständig freigeben, um sicherzustellen, dass Outlook beim nächsten Mal neu geladen wird.

Wird die Änderung nach dem Neustart von Outlook angezeigt?

+0

Ich sehe die Änderung nicht nach einem Outlook-Neustart, es sieht aus wie die 'Item.GlobalAppointmentId' ist irgendwo zwischengespeichert, gibt es eine programmatische wway, um das Objekt freizugeben? –

+0

Sind Sie sicher, dass die ID auf einen korrekt konstruierten Wert gesetzt ist? Können Sie die Änderung in OutlookSpy sehen (klicken Sie auf IMessage), nachdem Sie AppointmentItem.Save aufgerufen haben? –

+1

Ich habe vergessen 'Appointment.Save' nach' SetProperty' zu nennen, danke dass du mich in die richtige Richtung weist! –

Verwandte Themen