[xyzzy:08433] browser.dllとGecko
- Subject: [xyzzy:08433] browser.dllとGecko
- From: YAMAMOTO Taizo <ymtz@xxxxxxxxxxxxxxx>
- X-mailer: Datula version 1.51.08 for Windows
みなさんこんにちは、やまもとです。
Netscape7.0が公開されたので、browser.dllのGecko対応について調べ
てみました。結果、以下の2点について修正すれば動作することを確認
しました。IEとGeckoとの切り替えなど課題は未だありますが、
browser.dllへの取り込みを検討願います。
(現在はいまいたけをさんにお願いするのが適切でしょうか?)
環境設定:
1.Netscape7.0をインストール(MozillaでもOKの筈)
2.環境変数PATHにNetscape7.0のディレクトリを追加
※mozctl.dllが存在するパスです。
Browser.cppのソース修正:
1.CLASSIDをGeckoのものに変更
2.ウィンドウのリサイズの処理の変更
ソース修正詳細:
97c97,98
< m_wnd.SetWindowPos(NULL, 0, 0, cx, cy, 0);
---
> m_iWebBrowser->put_Height( cy );
> m_iWebBrowser->put_Width( cx );
197c198
< {0x1339B54C,0x3453,0x11D2,0x93,0xB9,0x00,0x00,0x00,0x00,0x00,0x00};
---
> {0xEAB22AC3,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B};
…下は調査時のお話です。参考までに。
基本的MozillaのAPIは、IEのものと同じインターフェースになっている
ので、CLASSIDの変更だけで終わるはずです。ただし、実際には未実装
のAPI(上のput_Height等)があり、xyzzyのbrowser.dllでは、ブラウザ
部がリサイズされないという現象が発生します。これを回避するために、
SetWindowPosで応急処置を施しています。将来的には、元のソースに戻
した方が良さそうです
Mozilla Control
http://www.iol.ie/~locka/mozilla/mozilla.htm
IEPatcher(CLASSIDだけを書き換えるツール)
http://www.iol.ie/~locka/mozilla/iepatcher.zip
未実装のCMozillaBrowser::put_Height()
http://lxr.mozilla.org/seamonkey/source/embedding/browser/activex/src/control/MozillaBrowser.cpp#2313
MozillaのAPIがIEのそれとフルコンパチとは言ってますが、完全に実装
済みではないのでした。これで、かなり長い間はまってました。
--
YAMAMOTO Taizo / 山本 泰三
mailto:ymtz@xxxxxxxxxxxxxxx
mailto:yamamoto@xxxxxxxxx
http://www1.odn.ne.jp/ymtz/