2011-07-05 43 views
1

Outlook 2007のVSTOで遊んでいます。
カレンダーの予定にアクセスすると、シリーズメインアイテムだけでなく、すべての定期的な予定を確認したいと思います。Outlookは予定の繰り返しを返しません

var calendarFolder = Globals.TestAddin.Application.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderCalendar); 
var outlookCalendarItems = calendarFolder.Items; 
outlookCalendarItems.IncludeRecurrences = includeRecurring; 

var appointmentItems = outlookCalendarItems.Cast<AppointmentItem>(); 
foreach (var appointmentItem in appointmentItems) 
{ 
    var item = appointmentItem; 
    this.LogBox.AppendText(item.Subject); 
} 

を以下のように

私のコードは、すべての通常の項目、全て直列マスターアイテムが、計算されない一連の予定を示しています。
例:1949年10月の母親の誕生日を定期的な項目として示していますが、1950年、1951年などの誕生日はありません。

私は間違っていますか?

アイデアありがとう!
サシャ1つの行がそれをやった追加

+0

見通し-プログラミングは非常に人気がないように思わ結果を制限する方法下記参照 - だけで16views 13日。 :-( – Sascha

答えて

2

:なし再発を含む

outlookCalendarItems.Sort("[Start]"); 
0

日付の間に、このコードは、永遠のループになる可能性を秘めている「検索」。

これは、見つけることができるそれぞれの発生に対して 'appointmentItem'を作成するためです。繰り返しの終了日が設定されていない定期的なカレンダーアイテムがある場合、このループは引き続き発生するたびに '予定アイテム'を作成します(永遠に)。この問題を回避するには

、あなたは見つけるの結果を制限する必要がある、:

http://msdn.microsoft.com/en-us/library/office/dd469461(v=office.12).aspx

Set currentAppointment = myAppointments.Find("[Start] >= """ & _ 
     tdystart & """ and [Start] <= """ & tdyend & """") 
関連する問題