有没有办法以某种方式在 ATL ActiveX(即扩展)中嵌入 WTL destop 应用程序?
我想要实现的是使用办公文件查看器创建一个 ActiveX 控件。作为基础,我有一个桌面 WTL 应用程序(前段时间编写),它使用 OOo v3 API 来显示文档。
- 我创建了一个 ActiveX 项目,链接了必要的库和包含。
- 我可以调用 WTL 和 OO Api 方法。
- 添加了一些属性和方法以满足宿主应用程序的要求。
- 我的 ActiveX 在 ie 和主机应用程序中正确显示
我的运气(和知识?)到此结束。
我的控件具有 m_hwnd 属性,但始终设置为 0;我用谷歌搜索了一下,发现我可以得到父母 hwnd
this->m_spInPlaceSite->GetWindow()
但它也不起作用。每次我想创建一个窗口运行时都以 IsWindow() 方法(从 ATL 库中调用)结束,并且 parent==null
要创建和显示 OOo::DocWindow 我需要父窗口的 HWND。
问题来了:
我能以某种方式在 ActiveX 即扩展中嵌入基于 WTL 窗口的应用程序吗?
是否可以不重写整个 OOo Api 包装器?