按照this link中的指南,我将用户控件包装为ActiveX组件。成功构建代码,然后我可以确认COM组件已在Windows注册表中注册。
注册表中提到的类名称为“ MyChartsControl.UserControl1”。
之后,我尝试使用以下代码在PowerPoint Slide对象中添加ActiveX Wrapped用户控件:
powerpointSlideObject.Shapes.AddOLEObject(100, 100, 111, 222, ClassName:="MeridiaChartsControl.UserControl1")
或使用ProgId:
powerpointSlideObject.Shapes.AddOLEObject(100, 100, 111, 222, ClassName:="ActiveXTestLibrary.UserControl")
代码抛出以下异常:
Error HRESULT E_FAIL has been returned from a call to a COM component.
如果添加图片,以下代码可在同一幻灯片对象上正常工作:
powerpointSlideObject.Shapes.AddPicture("d:\\temp\\image1.png", MsoTriState.msoFalse, MsoTriState.msoCTrue, 400, 150)
任何解决方案或解决方法都将受到高度赞赏。