2012-02-09 5 views
0

Ok Я пытаюсь подключиться к календарю Outlook, с C#, используя следующий код:Подключение к календаря Outlook из C# с помощью Interop

using Outlook = Microsoft.Office.Interop.Outlook; 

Outlook.Application msOutlook = new Outlook.Application(); 
Outlook.NameSpace ns = msOutlook.GetNamespace("MAPI"); 
Outlook.MAPIFolder folder = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar); 

foreach (Outlook.MAPIFolder subfolder in folder.Folders) 
{ 
    MessageBox.Show(subfolder.Name); 
} 

Однако, несмотря на наличие двух календарей, кусок кода выше не см. любой!

Я думаю, что я, возможно, больше повезло с кода ниже:

Outlook.MAPIFolder folder = ns.GetFolderFromID("CalendarName", Type.Missing); 

Но это бросает следующее исключение:

Не удалось открыть элемент. Попробуй еще раз.

Я предполагаю, что идентификаторы календарей - это нечто иное, чем его имя.

Что я делаю неправильно?

Кроме того, я использую C# 4 с .Net 4 и Outlook 2010.

ответ

3

ли оба календарей в пространстве имен MAPI? Что делать, если вы просматриваете пространства имен, чтобы узнать, есть ли у других календарь:

Outlook.Application msOutlook = new Outlook.Application(); 
Outlook.NameSpace session = msOutlook.Session; 
Outlook.Stores stores = session.Stores; 
foreach (Outlook.Store store in stores) 
{ 
    Outlook.MAPIFolder folder = store.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar); 

    MessageBox.Show(folder.Name); 
} 
+0

Нашли это, спасибо большое! – JMK

Смежные вопросы