どういうわけかWTLdestopアプリケーションをATLActiveX(つまり拡張機能)に埋め込む方法はありますか?
私が達成しようとしているのは、Officeファイルビューアを使用してActiveXコントロールを作成することです。ベースとして、OOo v3 APIを使用してドキュメントを表示するデスクトップWTLアプリケーション(少し前に作成)があります。
- ActiveXプロジェクトを作成し、必要なライブラリとインクルードをリンクしました。
- WTLメソッドとOOApiメソッドを呼び出すことができます。
- ホストアプリケーションの要件を満たすために、いくつかのプロパティとメソッドが追加されました。
- 私のActiveXはieとホストアプリケーションで正しく表示されます
そして、ここで私の運(そして知識?)は終わりました。
私のコントロールにはm_hwndプロパティがありますが、常に0に設定されています。私は少しグーグルして、私が親hwndを得ることができることを発見しました
this->m_spInPlaceSite->GetWindow()
しかし、それも機能していません。ウィンドウランタイムを作成するたびに、Parent == nullのIsWindow()メソッド(ATL lib内から呼び出される)で終了します
OOo :: DocWindowを作成して表示するには、親ウィンドウのHWNDが必要です。
そしてここに質問があります:
どういうわけか、ActiveX、つまり拡張機能にWTLウィンドウベースのアプリケーションを埋め込むことはできますか?
OOo Apiラッパー全体を書き直さなくても可能ですか?