我正在尝试使用Redemption使用代码添加来自outlook addin的pst商店:
RdoSession = Redemption.RedemptionLoader.new_RDOSession();
RdoSession.MAPIOBJECT = (AddinModule.CurrentInstance as AddinModule).OutlookApp.Session.MAPIOBJECT;
string path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Microsoft\Outlook\mystore.pst";
RDOStores stores = RdoSession.Stores;
RDOStore store = stores.AddPSTStore(path, Outlook.OlStoreType.olStoreDefault, "test");
行store.AddPstStore抛出System.Runtime.InteropServices.COMException (0x8000FFFF): Catastrophic failure
并在正确的位置创建mystore.pst,大小为265 KB。新的商店/数据文件不会显示在Outlook中,并且在下次执行时不会出现在RdoSession.Stores中。所以我的程序试图再次创建它(因为它没有找到它)然后同一行崩溃:
System.InvalidCastException: Error in IMsgServiceAdmin::AdminProviders: MAPI_E_INTERFACE_NOT_SUPPORTED
使用Office PIA代码可以正常运行: https://msdn.microsoft.com/en-us/library/office/bb612380.aspx
我会保留兑换码,因为它周围有更多的逻辑。我只是将这5行移到函数的开头,以隔离问题。
答案 0 :(得分:0)
MAPI在配置文件管理界面中有一些编组错误(例如IMsgServiceAdmin)。
尝试使用callimg RDOSession.Logon替换设置RDOSession.MAPIOBJECT属性。
您是在Outlook插件或独立应用中运行的代码吗?