我正在做一个项目,主要目标是在 Outlook 的日历和我们的应用程序的日历之间进行同步。在我们的应用程序中,我们使用自定义编程语言,并通过 dispatchId 映射 Outlook 函数。
我的问题来了。我StorageItem
在 Outlook 日历中使用来保存一些内部数据,但是当我尝试调用GetStorage
方法时,它有时会以异常结束。
异常消息是“Incorrect function”(从捷克语“Nesprávná funkce”翻译而来)。
我GetStorage
在不同的文件夹(日历)中调用不同的数据存储(.pst)。当我尝试GetStorage
直接从 vsto 插件调用方法时,它每次都有效。但是通过 COM 在我们的应用程序中调用它,这很痛苦。
我无法诱导确切的行为,它看起来像是随机发生的。
句法:
oFolder := oNS.GetFolderFromID(OFolderID,''); // ok, folder found
if oFolder <> nil then begin
oStorageItem := oFolder.GetStorage('Synchronization.Info', 0); // exception
if oStorageItem.Size > 0 then
Result := False;
end;
示例情况:
第一个数据存储:
- 名为“firstCal”的日历
- 名为“secondCal”的日历
第二个数据存储:
- 名为“thirdCal”的日历
调用 getStorage:
- 调用 firstCal.GetStorage - 异常
- 调用 secondCal.GetStorage - 好的
- 调用thirdCal.GetStorage - 好的
..和其他随机组合