[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:08433] browser.dllとGecko



みなさんこんにちは、やまもとです。

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/

Index Home