我通过使用user32.dll的Windows函数SetParent()和SetWindowPos()在WPF应用程序中显示PowerPoint演示文稿,并将句柄设置为我的应用程序句柄。
我在我的项目中引用了Microsoft.Office.Core.dll和Microsoft.Office.Interop.PowerPoint.dll来打开演示文稿并像这样来回滑动:
using Microsoft.Office.Interop.PowerPoint;
Application pp = new Application();
Presentation p = pp.Presentations.Open(...);
安装PowerPoint时,一切正常。
当它未安装时,我收到错误:"由于以下错误,检索具有CLSID {...}的组件的COM类工厂失败:80040154类未注册"
我认为如果只安装了免费的PowerPoint Viewer,它可能会有效,但这似乎还不够。
是否有可能在没有PowerPoint完整许可版本的情况下工作?
谢谢。
答案 0 :(得分:1)
没有。据我了解,这些interops与早期基于com的语言中的类型库大致相同。他们列出了例如PowerPoint并告诉主语言如何访问这些功能。它们不是实际的能力。
拥有interops / TLB等同于拥有汽车的驾驶员手册。您可以阅读它以了解汽车的功能,但在您拥有汽车之前,您无法驾驶汽车。
直到你拥有PowerPoint,你也无法驾驶它。