我试图让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.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top