嵌入Outlook图控制
-
02-07-2019 - |
题
我试图让Outlook2003年增加使用Visual Studio2008年在Windows XP SP3和Internet Explorer7。
我的程序是使用定义的文件夹的家庭网页,其中显示我定制的形式,其中包Outlook图的控制。
我得到COM例外'的例外从HRESULT:0xXXXXXXXX'的描述每次当我试图设定文件夹财产的孤儿和易受感染儿童.错误代码是一个随机数量,每一个时间是不同的。这不是第一次访问控制的属性,在这之前,视和ViewXML性设置了。控制被标明作为安全脚本。
我使用价值的CurrentFolder.采用文件夹路径酒店的活动的资源管理器,这似乎是一种权利之一:
Outlook.Explorer currentExplorer = app.ActiveExplorer();
if (currentExplorer != null)
{
ovcWrapper.Folder = currentExplorer.CurrentFolder.FolderPath;
}
这是顶级的堆跟踪:
System.Runtime.InteropServices.COMException (0xXXXXXXXX): Exception from HRESULT: 0xXXXXXXXX
at Microsoft.Office.Interop.OutlookViewCtl.ViewCtlClass.set_Folder(String pVal)
at AxMicrosoft.Office.Interop.OutlookViewCtl.AxViewCtl.set_Folder(String value)..
发生这种情况只有在文件夹是位于非默认PST文件。改变到文件夹里面的默认PST文件会产生不例外。
我必须强调,一切工作只是现在我去了度假:).它似乎是Windows XP安装了一些更新,从而改变了默认安全的互联网浏览器或Outlook2003年的话,我是不存在的。
在另(虚拟机)与办公室于2007年和Internet Explorer6,没有任何更新的,一切工作。
解决方案
过了一会儿,我终于找出解决方案是什么:将外部存储的名称更改为新的。
在启动插件期间,它会加载非默认的PST文件,并将其名称(不是pst文件的名称,而是根文件夹的名称)更改为“Documents”。
这是代码:
session.AddStore("C:\\test.pst"); // loads existing or creates a new one, if there is none.
storage = session.Folders.GetLast(); // grabs root folder of the new fileStorage.
if (storage.Name != storageName) // if fileStorage is brand new, it has default name.
{
storage.Name = "Documents";
session.RemoveStore(storage); // to apply new fileStorage name, it have to be removed and added again.
session.AddStore(storagePath);
}
解决方案不是再使用'Documents'作为名称,而是使用新的东西。问题与具体名称无关。
其他提示
Dobri丹、nency:)
我不知道如果我真的可以提供一种"银弹"的解决方案给出的信息在这里...但是这里有几个想法的笔记尝试出:
有工作有前景的几个项目在过去,我可以告诉你,这是一个有趣的小鸟,有时当它涉及到给人/授予访问的外部用户/工艺。它有时需要用户手确认访问或记录在...这么确定你有
app.Session.Logon()
照顾的某个地方。
其他的事情我注意到的是使用 app.ActiveExplorer()
作出肯定的是,这个功能正在返回什么你认为这是;它需要的 最顶端 窗户的桌...这是usualyy 但并不总是 窗户你想的工作,所以只doublecheck.