Outlook Interop:有没有办法检查Outlook文件夹是否为只读

时间:2015-01-05 02:56:28

标签: c# outlook-addin

我在C#中编写一段代码,通过Outlook Interop从Outlook获取所有可写日历。 Outlook中的日历只是Outlook文件夹,其默认项类型为OlItemType.olAppointmentItem。但是,如果您将Hotmail帐户添加到Outlook,则总会有只读日历,例如生日日历。

有没有办法检测这些只读日历?

2 个答案:

答案 0 :(得分:2)

如果这些是交换帐户,你可以稍微轻松地做到这一点,但是你明确提到了hotmail,所以经过大量研究后,出现这种情况的唯一方法就是使用第三方插件或在MAPI / ACL周围编写自己的包装器图书馆。 Microsoft从未通过com命名空间提供ACL。

每个人都在建议赎回:http://www.dimastr.com/redemption/home.htm,您可以查看他们在此处公开的RDOACL功能:

http://www.dimastr.com/redemption/RDOACL.htm

答案 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.
}

请注意,项目类型需要与文件夹默认项目类型匹配。