我正在尝试将 iCal 导入支持添加到需要支持 Windows XP、Vista 和 7 的现有调度应用程序中。编写 iCal 格式很容易,但阅读它是另一回事,主要是尝试将时间转换为复杂的当地时间时区/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 服务器并让它返回转换后的格式化我的应用程序可以轻松使用。我的网络服务器虽然在 Windows 上运行,所以任何基于 Unix 的东西都可能很困难。除此之外,我对选择持开放态度。
更新:我确实找到了CDOEX,但由于我以前从未使用过它,谁能告诉我从哪里开始以及它是否真的可以满足我的需求?我在文档中并没有看到太多关于 iCal 的内容,而且我需要在我的开发 PC 上安装 Exchange(对此并不疯狂)才能开始使用这个 API。