在没有安装Office的情况下访问Microsoft.Office dll(PowerPoint)?

时间:2014-05-26 12:33:09

标签: interop powerpoint

我通过使用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完整许可版本的情况下工作?

谢谢。

1 个答案:

答案 0 :(得分:1)

没有。据我了解,这些interops与早期基于com的语言中的类型库大致相同。他们列出了例如PowerPoint并告诉主语言如何访问这些功能。它们不是实际的能力。

拥有interops / TLB等同于拥有汽车的驾驶员手册。您可以阅读它以了解汽车的功能,但在您拥有汽车之前,您无法驾驶汽车。

直到你拥有PowerPoint,你也无法驾驶它。