尝试AddPstStore

时间:2015-06-23 11:11:54

标签: outlook-addin outlook-redemption

我正在尝试使用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行移到函数的开头,以隔离问题。

1 个答案:

答案 0 :(得分:0)

MAPI在配置文件管理界面中有一些编组错误(例如IMsgServiceAdmin)。

尝试使用callimg RDOSession.Logon替换设置RDOSession.MAPIOBJECT属性。

您是在Outlook插件或独立应用中运行的代码吗?