我知道这个问题有点被问到,但我有一个具体的问题,我找不到答案。我正在尝试从其他用户打开共享日历,他/她的日历不是他们的默认日历。
我尝试了以下内容:
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在展望中,日历存在于"共享日历"导航树。
我正在寻找一种方法来获取共享日历的名称,然后让用户选择共享日历(例如,从下拉框中),然后打开该日历。
我找到了关于如何做其他事情的代码,但没有具体说明!
有人能指出我正确的方向吗?
谢谢!
答案 0 :(得分:0)
您无法使用Outlook对象模型访问该文件夹。
对于缓存的Exchange邮箱,文件夹将缓存在主邮箱的OST文件中。在扩展MAPI级别(C ++或Delphi)上,文件夹存储在最终用户可见的IPM树之外。您可以在OutlookSpy中查看数据 - 单击IMsgStore |打开根文件夹| GetHierarchyTable |双击"共享数据"文件夹| GetHierarchyTable |等
您可以使用Redemption打开该文件夹(以RDOStore开头.RootFolder)。您还可以使用RDOSession打开其他用户的在线邮箱.GetSharedMailbox并导航到以RDOStore开头的相关文件夹.IPMRootFolder(返回该邮箱中用户可见的顶级文件夹)。