2010-04-06 31 views
0

有沒有辦法以某種方式將ATL ActiveX應用程序嵌入到ATL ActiveX中(即擴展)?在ATL ActiveX控件中嵌入WTL應用程序

我想要實現的是創建一個ActiveX控件與辦公文件查看器。 作爲一個基地,我有一個桌面WTL應用程序(前段時間編寫),它使用OOo v3 API來顯示文檔。

  • 我已經創建了一個ActiveX項目,鏈接了必要的庫和包含。
  • 我可以調用WTL和OO Api方法。
  • 已添加一些屬性和方法以滿足主機應用程序的要求。
  • 我的ActiveX在IE瀏覽器和主機應用程序

正常顯示在這裏,我的運氣(和知識?)結束。

我的控件具有m_hwnd屬性,但始終設置爲0; 我GOOGLE了一下,發現我可以得到父HWND與

this->m_spInPlaceSite->GetWindow() 

,但它不工作要麼。每次我想創建一個窗口運行時結束在與父母==空的IsWindow()方法(從ATL庫中調用)

創建並顯示OOo :: DocWindow我需要父窗口的HWND。

這裏而來的問題:

我可以採用某種嵌入的ActiveX即擴展基於窗口的WTL應用程序?
有沒有可能不重寫整個OOo Api包裝?

回答

1

是的,你可以。

步驟,VS精靈:

  1. 創建ATL項目
  2. 添加ATL控制的基礎上,一些控制(按鈕,例如)。在這種情況下,您將擁有一些處理程序的消息映射。

然後將CContainedWindow成員替換到您自己的窗口,這就是全部。

ATL Samples page,我沒有檢查它,但希望它有幫助。

+0

它仍然顯示在編譯過程中轉換消息映射的一些錯誤,但現在我khow什麼要搜索。謝謝! – beermann 2010-04-08 10:43:55

相關問題