4

我有一个 ActiveX 控件,可以在 IE 中显示给定文件格式的文档,就像 Adob​​e 有一个显示 PDF 的 ActiveX 控件一样。

我的控件是一个整页控件,就像 PDF 查看器一样——它使用 IE 自己的EnableFullPage 机制接管了 IE 的整个客户区。

我想控制与文档相关的各种菜单和工具栏命令:打印、打印预览、页面设置、另存为、全选、复制、查找等。我猜肯定有一个官方的 API 可以做到这一点,因为 PDF 查看器可以做到这一点。(请注意,打印嵌入式 ActiveX控件的标准机制不适用——我需要显示我自己的打印对话框并控制整个过程,就像 PDF 查看器一样。)

(在 IE8 之前,我可以通过使用 Win32 子类侵入 IE 本身来做到这一点,这很讨厌但可以工作。但是 IE8 将选项卡内容保留在与工具栏不同的进程中,因此如果没有 DLL 注入,这不是一个选项,并且我可以看到 Adob​​e PDF veiwer 没有这样做。这就是为什么我相信有一个官方机制。)

4

2 回答 2

2

可能是一些与DocObjects相关的接口,可能是 IOleInPlaceFrame + IOleCommandTarget

于 2009-09-15T23:21:12.067 回答
1

您可以使用ActiveDoc 示例作为实现 Anders 建议的活动文档服务器的基础。他还指出,添加 IOleCommandTarget 可以让您控制菜单项。

于 2009-10-11T23:27:52.003 回答