![]() |
エンベッディングの概念エンベッディングってどうなってるの? ◆ エンベッディングの構成要素 ◆エンベッディングの世界では、種々のオブジェクトが連係して動きます。中でも一番重要なオブジェクトは、nsWebBrowserで、これがエンベッディングの中心になります。このnsWebBrowserは、複数のnsDocShellをツリー構造で抱えています。nsDocShellは、各フレーム毎に1つづつインスタンス化されます。 【エンベッディングの構成オブジェクト】
以下が、エンベッディングを構成する主要なオブジェクトです。 ■ nsWebBrowserエンベッディングの最重要オブジェクトです。エンベッディングアプリケーションは、このクラスのインスタンスを生成して使用します。 nsWebBrowserはXPCOMオブジェクトで、その機能は分野別に、各インターフェースに分割されています。 nsWebBrowserが装備するインターフェースには、
があります。 またエンベッディングアプリケーションは、インスタンス生成した全てのnsWebBrowser毎に、その代理人となるWebBrowser Site Objectを生成する必要があります。このWebBrowser Site Objectは、XPCOMの幾つかのインターフェースを自ら実装して、nsWebBrowserからのコールバックを受けることにより、nsWebBrowserとエンベッディングアプリケーションの橋渡しをします。 ■ nsDocShell1つのフレームに対応した、ドキュメント (HTML、XML) を管理するXPCOMオブジェクトです。ドキュメントのロードを管理し、またドキュメントのツリー構造を辿る機能を持ちます。 このnsDocShellがコアな処理を受け持つので、エンベッディングアプリケーションは、ほとんどの処理は、上位のnsWebBrowserを扱うことで可能になります。 nsDocShellが装備するインターフェースには、
があります。 ■ WebBrowser Site Objectエンベッディングアプリケーションが実装すべき、XPCOMオブジェクトです。 エンベッディングアプリケーションは、自分が生成したnsWebBrowserに1対1で、このオブジェクトを生成しなければなりません。 nsWebBrowserと密接に関わり、それが装備したインターフェースをnsWebBrowserより種々のタイミングで呼び出されることにより、nsWebBrowserからアプリケーションへの窓口となります。 そのインターフェースには、実装が必須のものと、アプリケーションの機能に応じて任意のものとがあります。 WebBrowser Site Objectが実装するインターフェースの候補としては、
などがあります。 このWebBrowser Site Objectが、PPBrowserやmarbrowがクロームクラスと呼んでいるものに当ります。
■ BrowserShell Objectこれはエンベッディングに於いて必須のものではなく、XPCOMオブジェクトでもありません。エンベッディングアプリケーション側でブラウザビジュアルパーツを管理する為の、単なるC++オブジェクトです。 しかし、エンベッディングアプリケーション自体がオブジェクト指向で作成されるならば、必然的にインプリメントされるでしょう。 このオブジェクトが、nsWebBrowserやWebBrowser Site Objectを生成し、管理します。 このBrowserShell Objectは、PPBrowserやmarbrowでは、以下のクラスに当ります。
|
| c_o_n_t_a_c_t | Copyright (C) 2000-2002 Symphony, Inc. All Rights Reserved. |
English |