按照visio 2007SDK上添加event的方式添加了两个类EventSink和ShapeRightMouseAction用来实现右键功能,但运行DemoShapeRightMouseAction函数在applicationEventList.AddAdvise((short)Microsoft.Office.
Interop.Visio.VisEventCodes.visEvtApp +(short)Microsoft.Office.Interop.Visio.VisEventCodes.visEvtMarker, eventHandler, "", "");时出现错误,无法正常运行,经过查找相关资料终于解决此问题,把解决方案写出来,希望能帮助被同类问题困扰的朋友。
解决方法:
在EventSink类外面添加一行[System.Runtime.InteropServices.ComVisible(true)]。
错误原因:
自己设置的对象对Visio COM控件是非可视的,导致AddAdvise运行时COM抛出异常。
非常感谢Bill Morein's Weblog帮助我解决了困惑2天的问题。
http://blogs.msdn.com/b/wmorein/archive/2006/06/07/621011.aspx