MAPI найти контакты и папку с календарем - PullRequest
1 голос
/ 20 мая 2010

На мой взгляд, у меня есть 1 обменное соединение и 2 личных папки.

Я хочу получить ВСЕ элементы из календарей и контактов, поэтому я использую:

           /**
             * Create outlook application
             */
            Outlook.Application oApp = new Outlook.Application();
            Outlook.NameSpace oNS = oApp.GetNamespace("mapi");
            oNS.Logon(Missing.Value, Missing.Value, true, true);

            /**
             * Loop through all the folders
             */
            foreach (Outlook.MAPIFolder oFolder in oNS.Folders)
            {
                if (oFolder.Name == "Public Folders")
                {
                    break;
                }

                /**
                 * Get calendar items
                 */
                //Outlook.MAPIFolder oCalendar = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
                Outlook.MAPIFolder oCalendar = oFolder.Folders[5];
                Outlook.Items oCalendarItems = oCalendar.Items;

                //Outlook.MAPIFolder oContacts = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
                Outlook.MAPIFolder oContacts = oFolder.Folders[7];
                Outlook.Items oContactItems = oContacts.Items;

но это не работает oFolder.Folders[5] не всегда 5 для календаря, иногда это другое значение.

Я не могу найти предметы по названию oFolder.Folders["Calendar"]; потому что на голландском языке папка будет называться «Повестка дня».

Обычно я использую: Outlook.MAPIFolder oCalendar = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);

Но тогда я получаю только календарь по умолчанию. Как я могу получить другие календари?

1 Ответ

2 голосов
/ 20 мая 2010

Я думаю, вам придется пролистать список папок и посмотреть на свойство Folder.DefaultItemType , которое возвращает тип OlItemType , который вам нужен для тех, которые возвращают olAppointmentItem & olContactItem

Марк

...