如何检索Outlook日历中显示的日期范围?例如,当我打开当周的周视图时,我需要在代码中知道当前日历显示2015-09-21到2015-09-27的范围。
假设我将日历引用为MAPIFolder
对象。我发现这个对象有一个CurrentView
成员,有几个有希望的属性。但DisplayedDates
不包含任何内容,Filter
为空,SelectedEndTime
/ SelectedStartTime
均指向4501-01-01,即未设置日期。那么我做错了什么?是的,在评估此对象时,Outlook中的日历视图是打开并处于活动状态。
第二个问题:在可以获得当前显示范围之后,当显示范围发生变化时,是否有可以消耗的回调或事件?
答案 0 :(得分:1)
尝试使用Explorer类的CurrentView属性,而不是文件夹。要获取当前View视图的Explorer对象,请使用Explorer.CurrentView而不是Explorer.CurrentFolder返回的当前Folder对象的CurrentView属性。
以下是MSDN所述的内容:
View对象允许您创建可自定义的视图,以便您更好地对所有不同类型的数据进行排序,分组和最终查看。有多种不同的视图类型可提供创建和维护重要数据所需的灵活性。
使用View对象的XML属性定义和自定义视图。 XML属性允许您创建和设置定义视图的各种功能的自定义XML模式。
在可以获得当前显示范围之后,是否存在我可以消耗的回调或事件,当显示范围发生变化时会触发该回调或事件?
不,Outlook对象模型不提供此类事件。但是,您可以尝试处理Explorer类的BeforeViewSwitch事件,该事件在资源管理器更改为新视图之前触发,无论是作为用户操作还是通过程序代码。