打开不是Outlook 2013中的默认日历的共享日历

时间:2015-10-01 14:18:30

标签: outlook outlook-addin

我知道这个问题有点被问到,但我有一个具体的问题,我找不到答案。我正在尝试从其他用户打开共享日历,他/她的日历不是他们的默认日历。

我尝试了以下内容:

    var ns = Globals.ThisAddIn.Application.Session;

    var recip = ns.CreateRecipient("me@me.com");
    if (recip.Resolve())
    {
      var sharedCal = ns.GetSharedDefaultFolder(recip, Outlook.OlDefaultFolders.olFolderCalendar);
    }

这不起作用。

我可以通过以下方式查看共享日历

private void GetCalendars()
        {

            Outlook.CalendarModule calModule = (Outlook.CalendarModule)this.Application.ActiveExplorer().NavigationPane.Modules.GetNavigationModule(Outlook.OlNavigationModuleType.olModuleCalendar);


            foreach (Outlook.NavigationGroup group in calModule.NavigationGroups)

            {
                Debug.WriteLine("Calandar Folders Group  >>>>" + group.Name);


                foreach (Outlook.NavigationFolder folder in group.NavigationFolders)
                {

                    Debug.WriteLine("Calandar Folders:  >>>>" + folder.DisplayName);

                }
            }
        }

我知道如果有姓名,我就不知道如何打开日历。使用上述步骤

无法获取ID

在展望中,日历存在于"共享日历"导航树。

我正在寻找一种方法来获取共享日历的名称,然后让用户选择共享日历(例如,从下拉框中),然后打开该日历。

我找到了关于如何做其他事情的代码,但没有具体说明!

有人能指出我正确的方向吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您无法使用Outlook对象模型访问该文件夹。

对于缓存的Exchange邮箱,文件夹将缓存在主邮箱的OST文件中。在扩展MAPI级别(C ++或Delphi)上,文件夹存储在最终用户可见的IPM树之外。您可以在OutlookSpy中查看数据 - 单击IMsgStore |打开根文件夹| GetHierarchyTable |双击"共享数据"文件夹| GetHierarchyTable |等

您可以使用Redemption打开该文件夹(以RDOStore开头.RootFolder)。您还可以使用RDOSession打开其他用户的在线邮箱.GetSharedMailbox并导航到以RDOStore开头的相关文件夹.IPMRootFolder(返回该邮箱中用户可见的顶级文件夹)。