代码之家  ›  专栏  ›  技术社区  ›  Roger Far

MAPI查找联系人和日历文件夹

  •  1
  • Roger Far  · 技术社区  · 14 年前

    在我的outlook中,我有1个exchange连接和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 回复  |  直到 14 年前
        1
  •  2
  •   76mel    14 年前

    我想你得翻阅一下你的文件夹列表,看看 Folder.DefaultItemType Property OlItemType 键入您希望返回olappointItem的项目(&olContactItem项目