首页 新闻 会员 周边 捐助

vsto 异步 报错

0
悬赏园豆:100 [已解决问题] 解决于 2012-11-20 18:27

vsto: 在异步回调函数中,获取word高级属性时候报异常。

发现主线程去执行获取高级属性正常,但非主线程获取时候报异常

异常如下:

无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.Office.Core.DocumentProperties”。此操作失败的原因是对 IID 为“{2DF8D04D-5BFA-101B-BDE5-00AA0044DE52}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 不支持此接口 (异常来自 HRESULT:0x80004002 (E_NOINTERFACE))。

有谁碰到过类似问题?

异常情况例子:

System.Threading.Thread thread = new System.Threading.Thread(delegate()
            {
                try
                {
                    var testApp = Globals.ThisAddIn.Application;
                    var testDoc = testApp.ActiveDocument;
                    var testproperties = (Microsoft.Office.Core.DocumentProperties)testDoc.CustomDocumentProperties;
                }
                catch (Exception ex)
                {
               
                }
            });
            thread.Name = "newthread";
            thread.Start();

正常情况例子:

try
                {
                    var testApp = Globals.ThisAddIn.Application;
                    var testDoc = testApp.ActiveDocument;
                    var testproperties = (Microsoft.Office.Core.DocumentProperties)testDoc.CustomDocumentProperties;
                }
                catch (Exception ex)
                {
               
                }

xiongweidotnet的主页 xiongweidotnet | 初学一级 | 园豆:92
提问于:2012-11-12 18:05
< >
分享
最佳答案
0

invoke或迟绑定问题,invoke的方法上面发的那个可以

迟绑定参考 http://support.microsoft.com/kb/303296/en-us http://www.cnblogs.com/2018/category/249767.html

2012 | 高人七级 |园豆:21445 | 2012-11-13 12:39
2012 | 园豆:21445 (高人七级) | 2012-11-13 12:40

谢了!我先尝试一下

xiongweidotnet | 园豆:92 (初学一级) | 2012-11-14 09:46

@xiongweidotnet: 

困扰了好久,原来在非主线程下不能强制转化,但原始的dynamic可以直接用

var testproperties = (Microsoft.Office.Core.DocumentProperties)testDoc.CustomDocumentProperties; //这句话有问题,无需强制转化

还是谢谢各位!!

xiongweidotnet | 园豆:92 (初学一级) | 2012-11-20 18:26
其他回答(1)
0

楼主看看这篇文章http://www.cnblogs.com/jjhe369/archive/2009/05/12/1455153.html,看能否解决你的问题

收获园豆:100
az235 | 园豆:8483 (大侠五级) | 2012-11-12 23:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册