我在C#中编写一段代码,通过Outlook Interop从Outlook获取所有可写日历。 Outlook中的日历只是Outlook文件夹,其默认项类型为OlItemType.olAppointmentItem
。但是,如果您将Hotmail帐户添加到Outlook,则总会有只读日历,例如生日日历。
有没有办法检测这些只读日历?
答案 0 :(得分:2)
如果这些是交换帐户,你可以稍微轻松地做到这一点,但是你明确提到了hotmail,所以经过大量研究后,出现这种情况的唯一方法就是使用第三方插件或在MAPI / ACL周围编写自己的包装器图书馆。 Microsoft从未通过com命名空间提供ACL。
每个人都在建议赎回:http://www.dimastr.com/redemption/home.htm,您可以查看他们在此处公开的RDOACL功能:
答案 1 :(得分:0)
所以看起来没有专门的方法来检查当前用户是否有权写入outlook文件夹,前提是它可能不是交换文件夹。因此,最可靠的方法是尝试创建和删除虚拟项目:
try
{
((AppointmentItem)calendarFolder.Items.Add(OlItemType.olAppointmentItem)).Delete();
// Do whatever you need with this folder.
}
catch
{
// This probably means the folder is not writeable.
}
请注意,项目类型需要与文件夹默认项目类型匹配。