c# - 尝试访问自动完成流时出现 COMException (0x80040102)
问题描述
我想访问 Outlook 2013 中的自动完成(昵称)流,以便我可以让用户从列表中选择电子邮件地址。
我尝试使用我找到的这个 VB 代码,但是当我运行这个版本时,它会抛出一个异常。
public byte[] GetAutocompleteBytes()
{
Outlook.NameSpace n = ApplicationGlobal.GetNamespace("MAPI");
Outlook.MAPIFolder f = n.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
Outlook.StorageItem si = f.GetStorage("IPM.Configuration.Autocomplete", OlStorageIdentifierType.olIdentifyByMessageClass);
Outlook.PropertyAccessor pa = si.PropertyAccessor;
byte[] autocompletebytes = (byte[])pa.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x7C090102");
return autocompletebytes;
}
例外是“System.Runtime.InteropServices.COMException (0x80040102) - 无法在此文件夹中创建存储项目。该文件夹是只读的,或者此处不允许存储项目”(但在我的语言中,请原谅不准确之处)。我找不到与此异常相关的任何内容。当 f.GetStorage() 被调用时,它会被正确抛出,我真的很困惑,因为我可以在 OutlookSpy 中看到存储项目,并且代码的创建者似乎确信它会起作用。我已经阅读了Microsoft 文档和其他一些资料,但没有发现任何可以帮助我解决这个问题的方法。我错过了什么?
解决方案
推荐阅读
- r - R:将 summary()$coef 转换为数值向量
- azure - 无法从基于 Java 的 Rest API 访问 SharePoint 图形 API
- node.js - events.js:174 错误:运行 jest 时在 ChildProcess.target._send 处写入 EPIPE
- dask - 重启 Dask Kubernetes 集群的正确方法是什么?
- reactjs - PWA - 对根路径和子路径做出反应
- java - 在本地使用嵌入式 redis 测试用例运行时面临生菜连接被拒绝问题运行良好,但在詹金斯它失败了
- amazon-web-services - 遍历字典列表以创建具有不同值的 terraform 资源
- javascript - 使用正则表达式匹配表达式
- docker - Docker:以分离模式、交互模式运行从脚本创建的映像
- bash - 如何将一个文件连接到多个文件?