我正在尝试将iCal导入支持添加到我现有的调度应用程序中,该应用程序需要支持Windows XP,Vista和7.编写iCal格式很简单,但阅读它是另一个故事,主要是尝试将时间转换为本地时间使用复杂的TIMEZONE / TZID / RRULE语法。理想情况下,Windows会有一个本机API,但我还没有找到。
我知道Outlook 2007+有一个OpenSharedItem功能可以使用。我不想要求用户安装Outlook,因为我的应用程序与Outlook“竞争”。我考虑过编写一个Web服务,在我的Web服务器上使用Outlook来实现这一点,但我知道使用服务中的Outlook OLE / COM对象有问题,所以这可能也不是一个选项。我拥有大约300个Exchange Server许可证,是否有任何使用Exchange的API可能会更好?我注意到当我从GoToMeeting.com发送iCal文件时,他们说他们是用“Microsoft CDO for Microsoft Exchange”创建的,所以我觉得他们正在做这样的事情,以避免自己编写格式。
我的应用程序是用C ++编写的,主要使用原生的Win32 API,但我不介意为此创建.NET DLL,甚至要求用户访问Internet,这样我就可以将文件发布到我的Web服务器并拥有它返回我的应用程序可以轻松使用的转换格式。我的Web服务器虽然在Windows上运行,但基于Unix的任何东西都可能很难。除此之外,我对选项非常开放。
更新:我确实找到了CDOEX但是因为我之前从未使用过,有人能告诉我从哪里开始,以及它是否可以实际上做我需要的东西?我在文档中并没有真正看到关于iCal的内容,我需要在我的开发PC上安装Exchange(不要疯狂)开始使用这个API。