Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 修改Outlook 2010自动完成流_C#_Outlook - Fatal编程技术网

C# 修改Outlook 2010自动完成流

C# 修改Outlook 2010自动完成流,c#,outlook,C#,Outlook,我正在使用下面的代码访问Outlook 2010缓存并对其进行修改 请让我知道如何将条目返回收件箱邮件存储 Microsoft.Office.Interop.Outlook.Application oApp = Globals.ThisAddIn.Application; Microsoft.Office.Interop.Outlook.MAPIFolder inboxFolder = oApp.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFol

我正在使用下面的代码访问Outlook 2010缓存并对其进行修改

请让我知道如何将条目返回收件箱邮件存储

Microsoft.Office.Interop.Outlook.Application oApp = Globals.ThisAddIn.Application;
Microsoft.Office.Interop.Outlook.MAPIFolder inboxFolder = oApp.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderInbox);

StorageItem storage = inboxFolder.GetStorage("IPM.Configuration.Autocomplete", OlStorageIdentifierType.olIdentifyByMessageClass);

PropertyAccessor propertyAcc = storage.PropertyAccessor;

byte[] got = propertyAcc.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x7C090102");
谢谢
Jaspreet Singh

您需要调用
propertyAcc.SetProperty

您正在分析自动完成缓存blob吗?是否正在使用选项?它将自动完成作为集合公开:

 set Session = CreateObject("Redemption.RDOSession")
 Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set Nicknames = Session.GetNicknames
 set NickName = Nicknames.Add("Joe The User <test@dimastr.com>")
 Nicknames.Save
set Session=CreateObject(“Redemption.RDOSession”)
Session.MAPIOBJECT=Application.Session.MAPIOBJECT
设置昵称=Session.get昵称
设置昵称=昵称。添加(“用户乔”)
昵称。保存

Hi Dmitry,谢谢您的回复。我已经使用了集合属性,如下所示:;lstGot=GetList(got);propertyAcc.SetProperty(“,lstGot.ToArray());但它并没有将字节保存到邮件存储。我是否需要执行其他操作以将更新的流保存到邮件存储。谢谢Jaspreet SinghHi Dmitry,您能建议任何从缓存中删除自动完成项的方法吗。例如,我想删除所有包含domain@gmail.com的条目。更新后的流应该存储在邮件存储中。这样我就可以根据需要控制缓存中的自动完成条目。谢谢Jaspreet SinghYou需要解析昵称blob并适当更新它。虽然它确实是可行的,但blob是二进制的。使用赎回是一种选择吗?它为您解析blob。感谢Dmitry的回复。我正在做的是。将我从上面得到的字节转换为列表lstGot=get.OfType().ToList();并使用below int numberRows=ByteArrToInt(get.Skip(12.Take(4.ToArray())获取行数;然后我计算该行的开始位置和结束位置,并删除该行。但一旦我删除并保存它。我的自动完成程序损坏了。谢谢Jaspreet Singh请告诉我“解析昵称blob”是什么意思。你能举个例子吗。谢谢贾斯普里特·辛格