C#でOutlook VSTOアドインを開発しました。私はビジータイムスロットを見るために共有カレンダーから既存の予定を読む必要があります。私はすべての共有カレンダーに公開エディタのアクセス許可を持っており、非公開の予定とシームレスに連携しています。Outlookアドインから共有予定表にプライベート予定にアクセスする
私の唯一の問題はCalendarFolder.ItemsコレクションがolPrivateまたはolPersonal感度設定を持つ予定アイテムが含まれていないということです。 ビルトインのOutlookの予定表ビューには、これらのアイテムに小さなロックアイコンが表示されます。
個人の予定では開始時刻と終了時刻のみが公開されていることを理解しています。
基礎となるExchangeサーバーのバージョンでは、我々は、Outlook 2013と2016
これを引き起こす可能性がありますどのような任意のアイデアを使用して2013年のですか?
ありがとうございます。
UPDATE:
最後に、私はEWS Managed API 2.0を使用して、この問題の解決策を見つけました。
using Microsoft.Exchange.WebServices.Data;
// ......
ExchangeService EWSService = new ExchangeService();
EWSService.Credentials = new WebCredentials("EXCHUser", "EXCHPW");
EWSService.Url = new Uri("https://...../EWS/Exchange.asmx");
Mailbox primary = new Mailbox(Tools.MainWindow.SelectedConsultant.Email);
var calendar = Microsoft.Exchange.WebServices.Data.CalendarFolder.Bind(EWSService,
new FolderId(WellKnownFolderName.Calendar, primary));
ItemView cView = new ItemView(100);
// Limit the properties returned to the appointment's subject,
// start time, end time and sensitivity.
cView.PropertySet = new PropertySet(AppointmentSchema.Subject,
AppointmentSchema.Start,
AppointmentSchema.End,
AppointmentSchema.Sensitivity);
// Filter by sensitivity and retrieve a collection of appointments by using the item view.
String SearchFilterValue = Sensitivity.Private.ToString();
SearchFilter.IsEqualTo filter = new SearchFilter.IsEqualTo(AppointmentSchema.Sensitivity, SearchFilterValue);
FindItemsResults<Item> appointments = calendar.FindItems(filter, cView);
foreach (Appointment a in appointments)
{
if (a.Sensitivity == Sensitivity.Private)
{
// Do what you want with the matched item
}
}
// ......
EWSでは、資格情報を入力する必要があります。また、オンラインメールボックスを使用しているため、データがOutlookで表示されているものと同期していない可能性があります。データはローカルに存在し、Extended MAPIまたはRedemptionでOOMをバイパスするだけで済みます。 –
はい、私は知っています、ありがとうございます。私の現在の状況では、それは容認できる妥協である。 – Hudgi