(57)【特許請求の範囲】
【請求項１】
ブラウザによりコンピュータのディスプレイに表示可能なインターネットブラウザインターフェイスを制御する制御方法であって、
（ａ）インターネットブラウザインターフェイスを制御するために、コンテンツプロバイダーがブラウザユーザにブラウザを制御するための制御プログラムを提供するステップと、
（ｂ）前記制御プログラムは、前記ブラウザユーザのコンピュータに格納され、かつ、インターフェイスオブジェクトを規定するライブラリファイルを作成又はダウンロードするステップと、
（ｃ）ブラウザが起動されたとき、前記制御プログラムは前記ライブラリファイルをオープンし、前記インターフェイスオブジェクトを前記ブラウザユーザに提供するステップとを備えたことを特徴とする制御方法。
【請求項２】
（ｄ）所定のインターネットサイトから、前記ライブラリファイルに、情報をダウンロードするステップを更に備えたことを特徴とする請求項１記載の制御方法。
【請求項３】
前記ステップ（ｂ）は、インターフェイスオブジェクトを規定するアクティブＸコントロールを含むライブラリファイルを、前記コンピュータに作成するステップを有することを特徴とする請求項１記載の制御方法。
【請求項４】
前記ステップ（ｂ）は、インターフェイスオブジェクトを規定するプラグインを含むライブラリファイルを、前記コンピュータに作成するステップを有することを特徴とする請求項１記載の制御方法。
【請求項５】
ブラウザによりコンピュータのディスプレイに表示可能なインターネットブラウザインターフェイスを動的に制御する方法であって、ライブラリファイルが、前記コンピュータのデータ格納装置に配置され、インターフェイスオブジェクトを規定しており、
（ａ）インターネットユーザがブラウザを起動するときに、コンテンツプロバイダーより提供される或いは前記コンピュータ内のブラウザ制御プログラムが、前記ライブラリファイルをオープンするステップと、
（ｂ）前記ブラウザ制御プログラムは、前記ブラウザに、所定のインターネットサイトへの接続を確立させるステップと、
（ｃ）インターフェイスオブジェクトへの情報を、前記所定のインターネットサイトから、前記ライブラリファイルに、前記コンピュータにより受け取るステップと、
（ｄ）前記ブラウザが起動されている間に、前記コンピュータディスプレイに、インターネットブラウザインターフェイスと共に前記インターフェイスオブジェクトを表示するステップとを備えたことを特徴とする制御方法。
【請求項６】
（ｅ）前記ブラウザに、前記所定のインターネットサイトへの接続を周期的に確立させるステップと、（ｆ）コンピュータにより、前記所定のインターネットサイトから、前記インターフェイスオブジェクトのための追加情報を受け取るステップとを更に備えたことを特徴とする請求項５記載の制御方法。
【請求項７】
前記ステップ（ｄ）は、
前記インターネットユーザが、前記所定のインターネットサイトに接続されていないときに、前記インターフェイスオブジェクトが、前記インターネットブラウザインターフェイスと共に表示されているかを確定し、
前記インターフェイスオブジェクトが、前記インターネットブラウザインターフェイスと共に表示されていないならば、前記インターフェイスオブジェクトを前記インターネットブラウザインターフェイスと共に再表示することを特徴とする請求項５記載の制御方法。
【請求項８】
前記ステップ（ｃ）の情報は、前記ブラウザに、所定のインターネットサイトへの再接続させるための指示を含むことを特徴とする請求項５記載の制御方法。
【請求項９】
ブラウザによりコンピュータのディスプレイに表示可能なインターネットブラウザインターフェイスを動的に制御する方法であって、ライブラリファイルが、前記コンピュータのデータ格納装置に配置され、インターフェイスオブジェクトを規定しており、
（ａ）インターネットユーザがブラウザを起動するときに、コンテンツプロバイダーより提供される或いは前記コンピュータ内のブラウザ制御プログラムが、前記ライブラリファイルをオープンするステップと、
（ｂ）前記ブラウザ制御プログラムは、前記ブラウザに、所定のインターネットサイトへの接続を確立させるステップと、
（ｃ）インターフェイスオブジェクトへの情報を、前記所定のインターネットサイトから、前記ライブラリファイルに、前記コンピュータにより受け取るステップと、
（ｄ）前記ブラウザが起動されている間に、前記コンピュータディスプレイに、インターネットブラウザインターフェイスと共に前記インターフェイスオブジェクトを表示するステップと、
（ｅ）前記ブラウザが起動されている間、前記ライブラリファイルが閉じることを防ぐステップとを備えたことを特徴とする制御方法。
【請求項１０】
（ｆ）前記ブラウザに、前記所定のインターネットサイトへの接続を周期的に確立させるステップと、
（ｇ）コンピュータにより、前記所定のインターネットサイトから、前記インターフェイスオブジェクトのための追加情報を受け取るステップとを更に備えたことを特徴とする請求項９記載の制御方法。
【請求項１１】
前記ステップ（ｅ）は、前記ライブラリファイルが閉じることを防ぐために、プログラムループを実行することを特徴とする請求項９記載の制御方法。
【請求項１２】
前記ブラウザが、すでに起動されていないとき、前記プログラムループを終了させるステップを更に有することを特徴とする請求項１１記載の制御方法。
【請求項１３】
前記ステップ（ｃ）の情報は、前記ブラウザに、所定のインターネットサイトへの再接続させるための指示を含むことを特徴とする請求項９記載の制御方法。
【請求項１４】
ブラウザによりコンピュータのディスプレイに表示可能なインターネットブラウザインターフェイスを動的に制御する方法であって、ライブラリファイルが、前記コンピュータのデータ格納装置に配置され、インターフェイスオブジェクトを規定しており、
コンテンツプロバイダーより提供される或いは前記コンピュータ内のブラウザ制御プログラムが、
（ａ）インターネットユーザがブラウザを起動するときに、前記ライブラリファイルをオープンするステップと、
（ｂ）前記ブラウザに、所定のインターネットサイトへの接続を確立させるステップと、
（ｃ）インターフェイスオブジェクトへの情報を、前記所定のインターネットサイトから、前記ライブラリファイルに、前記コンピュータにより受け取るステップと、
（ｄ）前記ブラウザに、新たなブラウザウインドウを作成させるステップと、
（ｅ）最初のブラウザウインドウが、前記ブラウザにより表示されることを防ぐステップと、
（ｆ）前記インターフェイスオブジェクトを、前記新たなブラウザウインドウにおいて、前記インターネットブラウザウインドウと共に表示するステップとを備えたことを特徴とする制御方法。
【請求項１５】
（ｇ）前記ブラウザに、前記所定のインターネットサイトへの接続を周期的に確立させるステップと、
（ｈ）コンピュータにより、前記所定のインターネットサイトから、前記インターフェイスオブジェクトのための追加情報を受け取るステップとを更に備えたことを特徴とする請求項１４記載の制御方法。
【請求項１６】
前記ステップ（ｃ）の情報は、前記ブラウザに、所定のインターネットサイトへの再接続させるための指示を含むことを特徴とする請求項１４記載の制御方法。
【請求項１７】
前記ステップ（ｅ）は、
前記ブラウザウインドウのためのハンドルを識別し、前記最初のブラウザウインドウを隠す及び／又は不能にし、
前記ブラウザを制御するためのポインタを作成し、
新たなブラウザウインドウを作成することを特徴とする請求項１４記載の制御方法。
【請求項１８】
前記ブラウザが、新たな追加ブラウザウインドウを開いたかを確定するステップと、もし新たな追加ブラウザウインドウが開かれているならば、前記インターフェイスオブジェクトを、前記新たな追加ブラウザウインドウに追加するかを確定するステップとを更に備えたことを特徴とする請求項１４記載の制御方法。
【請求項１９】
前記ブラウザが、新たな追加ブラウザウインドウを開いたかを確定するステップと、
もし追加ブラウザウインドウが開かれていないならば、前記ブラウザを閉じるかを確定するステップと、
もし前記ブラウザが閉じられるべきならば、前記最初のブラウザウインドウを含む全てのブラウザウインドウを閉じるステップとを更に備えたことを特徴とする請求項１４記載の制御方法。
【請求項２０】
インターネットユーザと、選択されたインターネットウエブサイトとの間の関係を確立する方法であって、（ａ）コンテンツプロバイダーは、インターネットを渡り歩くために前記ユーザにより使用されるブラウザのインターフェイス上に、ユーザがカスタマイズできるインターフェイスオブジェクトを作成できるようにする制御プログラムを、前記選択されたインターネットウエブサイトを介して前記ユーザに供給するステップと、
（ｂ）前記制御プログラムは、ユーザが選択したファンクションを、前記インターフェイスオブジェクトを介してアクセスできるようにして、前記ファンクションが前記ユーザに、選択された前記インターネットウエブサイトと双方向通信させるステップとを備えたことを特徴とする方法。
【請求項２１】
選択されたインターネットウエブサイトから、インターネットユーザに情報を配信する方法であって、
（ａ）コンテンツプロバイダーは、インターネットを渡り歩くために前記ユーザにより使用されるブラウザのインターフェイス上に、ユーザがカスタマイズできるインターフェイスオブジェクトを作成できるようにする制御プログラムを、前記ユーザに供給するステップと、
（ｂ）前記制御プログラムは、前記ユーザが、あるウエブサイトから別のウエブサイトへ前記インターネットを渡り歩く間、前記インターフェイスオブジェクトを存在し続けさせるステップと、
（ｃ）前記制御プログラムは、前記インターフェイスオブジェクトを介して、ディスプレイに供される情報が通過する、前記選択されたウエブサイトと前記インターフェイスオブジェクトとの間のリンクを確立するステップと、
（ｄ）前記ユーザが、あるウエブサイトから別のウエブサイトへ、前記インターネットを渡り歩く間、及び前記選択されたウエブサイトと前記インターフェイスオブジェクトとの間のリンクが現れなくなった後に、前記制御プログラムは前記情報を認識できる状態に保たせるステップとを備えたことを特徴とする方法。
【請求項２２】
選択されたインターネットウエブサイトから、インターネットユーザにソフトウエアプログラムを配信する方法であって、
（ａ）コンテンツプロバイダーは、インターネットを渡り歩くために前記ユーザにより使用されるブラウザのインターフェイス上に、ユーザがカスタマイズできるインターフェイスオブジェクトを作成できるようにする制御プログラムを、前記ユーザに供給するステップと、
（ｂ）前記制御プログラムは、前記ユーザが、あるウエブサイトから別のウエブサイトへ、前記インターネットを渡り歩く間、前記インターフェイスオブジェクトを存在し続けさせるステップと、
（ｃ）前記制御プログラムは、前記インターフェイスオブジェクトを介して、ソフトウエアプログラムが通過する、前記選択されたウエブサイトと前記インターフェイスオブジェクトとの間のリンクを確立するステップと、
（ｄ）前記ユーザが、あるウエブサイトから別のウエブサイトへ、前記インターネットを渡り歩く間、及び前記選択されたウエブサイトと前記インターフェイスオブジェクトとの間のリンクが現れなくなった後に、前記制御プログラムは前記ソフトウエアプログラムを実行可能にするステップとを備えたことを特徴とする方法。
【請求項２３】
選択されたインターネットウエブサイトから、インターネットユーザに情報を配信する方法であって、
（ａ）コンテンツプロバイダーは、インターネットを渡り歩くために前記ユーザにより使用されるブラウザのインターフェイス上に、ユーザがカスタマイズできるインターフェイスオブジェクトを作成できるようにする制御プログラムを、前記ユーザに供給し、
（ｂ）前記制御プログラムは、前記ユーザが、前記選択されたウエブサイトと異なるウエブサイトへ前記インターネットを渡り歩く間、前記インターフェイスオブジェクトを存在し続けさせることを特徴とする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータディスプレイインターフェイスに関し、特にインターネットブラウザインターフェースの制御方法、及び動的に制御可能なブラウザインターフェイスに関する。
【０００２】
【従来の技術】
インターネット（即ち、ワールドワイドウエブ、ウエブ等）にアクセスする場合に、インターネットユーザは一般的に、コンピュータを介して、例えばネットスケープナビゲータ（登録商標）やマイクロソフトインターネットエクスプローラ（登録商標）等のブラウザソフトのプログラムを起動する。ブラウザプログラム（即ち、ブラウザ）は、インターネットへの物理的なリンクを確立し、また、キャラクタユーザインターフェイス及びグラフィカルユーザインターフェイス、即ち、ユーザにより変更することができない所定の外観及び機能を有するブラウザインターフェイスを提供する。従って、ブラウザインターフェイスは、インターネットユーザがインターネットをナビゲートしている間、又はアプリケーション間もしくはＨＴＭＬ（Ｈｙｐｅｒ−ｔｅｘｔ  Ｍａｒｋ−ｕｐ  Ｌａｎｇｕａｇｅ）間を移動している間において、比較的静的である。
【０００３】
【発明が解決しようとする課題】
ブラウザインターフェイスの限定された制御は、例えばファンクションボタンをインターフェイスに追加することができるソフトウエアプログラムを介して一般に行うことができる。しかしながら、当該追加機能は、ブラウザが起動されたときに、ブラウザインターフェイスに追加され、その後は静的な状態を保ったままである。従って、上述のように変更されたブラウザインターフェイスを表示するブラウザは、ブラウザが起動された場合や、ユーザがインターネットを渡り歩いている場合に、インターネットサイトから動的に情報をダウンロードし、ブラウザインターフェイス自身をカスタマイズすることができない。また、このような変更されたブラウザインターフェイスは、プラグインやインターフェイス用の各種ブラウザＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅｓ）へのアクセスに供することができない。
【０００４】
インターネットサイトの急増は、コンテントプロバイダ（即ち、インターネットサイトのオーナー）にとって、インターネットユーザが特定のインターネットサイトにおいて過ごす時間を最大限に長くさせることをますます難しくしている。もちろん、コンテントプロバイダにとって、インターネットユーザが当該コンテントプロバイダのインターネットサイトにおいて過ごす時間を最大限に長くさせることができるようにすること、又はインターネットユーザが当該コンテントプロバイダのサイトに再訪することを確実なものとするのが望まれる。これは一般に当業者ではスティッキネスと呼ばれる。また、コンテントプロバイダのサイトにアクセスするインターネットユーザの数を最大限に増やすことも望まれている。簡単に言うと、インターネットコンテントプロバイダは、できる限り多くのインターネットユーザを当該プロバイダのインターネットサイトにひきつけ、また、インターネットユーザが当該サイトにとどまる時間を最大限に長くしたいが、従来のインターネットブラウザを使用したのでは双方とも不可能である。
【０００５】
【課題を解決するための手段】
本発明は、インターネットブラウザインターフェイスを制御及び表示する方法、並びに制御可能なインターネットブラウザインターフェイスに関する。本発明はまた、インターネットユーザが所定のインターネットサイトにアクセスする回数を増やす方法、及びインターネットユーザが所定のインターネットサイトにおいて過ごす時間を増やす方法に関する。
【０００６】
ここで使用される制御及び制御可能という語は、限定しない例として、インターネットブラウザインターフェイスへ、追加する、削除する、及び変更を加えるということを言う。ここではインターネットブラウザインターフェイスとは、ユーザがこれを介してブラウザと、ブラウザユーザに対して示された視覚的又は聴覚的な表示を意味する。カスタマイズ（及びその変形）という語はまた、ここでは本発明により提供される制御能力を述べるために使用されてよい。ここで使用されるように、動的制御（及びその変形）という語は、ブラウザがインターフェイスオブジェクトが起動されていることを表示している間、表示され、周期的に変更又は更新されるインターネットブラウザインターフェイス（即ち、インターフェイスオブジェクト）の一部による方法を言う。
【０００７】
ここで使用されるブラウザは、当業者によく知られている手段であり、ワールドワイドウエブ又はインターネットへのインターフェイスを提供するソフトウエアプログラムを言う。ブラウザは、インターネットユーザにインターネットをナビゲートし、種々のインターネットサイトへの接続を確立し、コンテンツプロバイダによる種々のインターネットサイトに設けられたウエブページを見ることを可能にする。ブラウザは、特にインターネットサイトを介してアクティブＸコントロールやプラグインを呼び出す、即ち、インターネットユーザのコンピュータにロードすることができる。ブラウザはまた、インターネットユーザにインターネットサイト間をナビゲートする、即ち、ウエブをサーフすることも可能にする。ブラウザは、インターネットユーザに、ブラウザソフトウエアプログラムのプロバイダにより所定の構成にフォーマットされたブラウザインターフェイスを提供する。ブラウザインターフェイスは、一般には、ブラウザにより提供されたレイアウト（例えば、色、サイズ、数及び位置）及び機能を規定する。ブラウザインターフェイスは、一般的にブラウザインターフェイスの通常のサイズ、色、及びレイアウトを規定し、ウインドウ制御ボタン（例えば、最小化、閉じる等）を含む第１の親ウインドウを備えてよい。ブラウザインターフェイスはまた、第２の親ウインドウ、及びその従属ウインドウは、例えば、種々の情報（例えば、広告、クーポン、ニュース、ＨＴＭＬリンク等）及び機能（即ち、ツールバー、プルダウンメニュー、プラグイン、アプリケーション等）をインターネットユーザに提供してもよい。
【０００８】
ここで使用されるアクティブＸコントロールとは、インターネット用のデスクトップアプリケーションにリンクするためのツールを言い、当業者によく知られているマイクロソフトの開発仕様に基づいている。ここで使用されるプラグインとは、ネットスケープブラウザと共に使用するために開発されたプログラムの一種であり、大きなアプリケーションに特定の機能や能力を追加するために、当該大きなアプリケーション（例えば、ブラウザソフトウエアプログラム）を統合する。ここで使用される、上述したアクティブＸコントロール及びプラグインは、いかなるブラウザと共に使用されてよい。
【０００９】
ここで使用されるインターネットサイトという語は、インターネットアドレス又はＵＲＬ（Ｕｎｉｆｏｒｍ  ｏｒ  Ｕｎｉｖｅｒｓａｌ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）により規定されたインターネット上の位置（即ち、ノード）を言う。ここで使用されるインターネットウエブページとは、インターネットサイトにより提供され、ブラウザを介してインターネットユーザのコンピュータディスプレイに表示されうるハイパーテキストドキュメントを作成するためのテキスト、グラフィックス、及び機能についての書式情報を提供するＨｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＨＴＭＬ）コマンドの集まりを言う。例えば、インターネットユーザがインターネットサイトへの接続を確立すべくＵＲＬに入り、当該インターネットサイトが、ユーザのコンピュータディスプレイに当該インターネットサイトのウエブページを表示することを可能にするために、ユーザのブラウザにＨＴＭＬコマンドを提供する。ブラウザは、ウエブページに埋め込まれたＨｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＨＴＭＬ）コマンドを翻訳処理し、当該ウエブページ用のテキスト及びグラフィックをフォーマットするために、当該ＨＴＭＬコマンドを使用する。
【００１０】
本発明は、インターネットユーザ、インターネットコンテンツプロバイダ（即ち、インターネットサイトの所有者）、及びインターネットサービスプロバイダ（ＩＳＰ）に利益をもたらす。インターネットユーザに対して、本発明はユーザのインターネットブラウザインターフェイスを動的に制御し、カスタマイズする方法を提供する。インターネットユーザは、当該ユーザがブラウザを使用してインターネットにアクセスするたびに、ユーザが定義した情報及び／又は機能がブラウザインターフェイスと共に表示されるように、ブラウザインターフェイスをカスタマイズすることができるようになる。例えば、ユーザは、アクティブＸコントロール及びプラグインを介して使用することができるようなブックマーク、電話及びアドレス帳、個人財務情報、個人向けのニュース、並びに種々の機能を含むことができる。
【００１１】
加えて、もしインターネットユーザがコンテンツプロバイダのアカウントを有していれば、当該ユーザの固有アカウント情報（例えば、投資ポートフォリオ、ヘッドラインニュース、ブックマーク、アドレス帳等）が、ブラウザによりブラウザインターフェイスと共に動的に表示することができるようになる。現状、インターネットユーザは、インターネットコンテンツプロバイダに接続している間のみ、当該ユーザの固有アカウント情報にアクセスすることができる。ユーザは、更新されたアカウント情報を受け取るために、コンテンツプロバイダのサイトに戻らなくてはならない。ひとたびユーザが当該インターネットサイトを去った後は、アカウント情報はブラウザインターフェイスと共に表示されない。本発明は、インターネットユーザにブラウザインターフェイスと共に表示させ、継続して当該ユーザに特定の情報及び／又は機能を更新することができる動的な制御方法、及び動的に制御可能なブラウザインターフェイスを提供する。
【００１２】
コンテンツプロバイダには、本発明は、ユーザがインターネットにブラウザを用いてアクセスする度に、インターネットユーザが（ブラウザを介して）当該コンテンツプロバイダのサイトへの接続を自動的に確立することを保証する。従って、インターネットユーザがブラウザを起動するとすぐに（例えば、ブラウザのアイコンを選択することにより）、ブラウザは、ユーザのカスタマイズされたブラウザインターフェイス情報をロードするために、コンテンツプロバイダのサイトへの接続を確立する。本発明は、ブラウザが起動されている状態で、即ち、ユーザがウエブをサーフしている間、周期的及び自動的にユーザのブラウザを、コンテンツプロバイダのインターネットサイトへ接続することもできる。一形態において、コンテンツプロバイダは、ブラウザインターフェイスを制御するプログラムへのアクセスを提供してもよい。ひとたびインターネットユーザが、ユーザのブラウザインターフェイスをカスタマイズすべく、制御プログラムにアクセスすれば、ユーザがインターネットへアクセスする度毎に、当該ユーザのブラウザにより当該コンテンツプロバイダへの接続が自動的に確立される。従って、ユーザがＵＲＬに入ったとき（又は別の方法で接続を確立しようとしたとき、例えば、リンクやバナー広告を選択することにより接続を確立するようなとき）のみインターネットサイトへの接続を確立する従来のブラウザと対比して、本発明は、ブラウザが起動されたときに、インターネットユーザ又はブラウザベンダーによりブラウザに予めプログラムされた選択ホームページに関わらず、コンテントプロバイダへの接続を自動的に確立する。
【００１３】
加えて、コンテンツプロバイダは周期的に、インターネットユーザのブラウザ用に更新し、新たにダウンロードし、あるいは情報や機能を伝送するために、ブラウザを自動的にコンテンツプロバイダのサイトに再接続させることができる。例えば、インターネットユーザがコンテンツプロバイダの電子メールサービスに申し込んだならば、コンテンツプロバイダが受け取った当該インターネットユーザ用の電子メールメッセージを、ユーザが他の場所で“サーフィン”しているとしても、インターネットユーザに自動的に伝送することができる。ユーザのブラウザの起動によりユーザのブラウザが始めにコンテンツプロバイダのインターネットサイトへの接続を確立したときに、コンテンツプロバイダによりインターネットユーザへ伝送された情報は、ブラウザがコンテンツプロバイダのサイトへ、周期的に再接続するための指示を含む。従って、ユーザがアクセスするインターネットサイトの数に関係なく、また、ユーザにより現在アクセスされている特定のインターネットサイトに関係なく、コンテンツプロバイダのインターネットサイトへの再接続は、コンテンツプロバイダが決定した間隔により自動的に確立される。これらの再接続は、ユーザがコンテンツプロバイダから通知を受け取ったときを除き、インターネットユーザには見えている。従って、ブラウザインターフェイスは、インターネットユーザがウエブをサーフする間、動的に制御することができる。ＩＳＰにとっては、少なくともコンテンツプロバイダと同程度の素晴らしい利益がある。
【００１４】
初めは、インターネットユーザのブラウザインターフェイスは、コンテンツプロバイダ若しくはＩＳＰにより提供された、又はユーザのコンピュータ上で利用可能であるソフトウエアプログラムを用いてカスタマイズしなくてはならない。以下において制御プログラム又は制御するためのプログラム（及びそれらの他の変形）を言う。ソフトウエアプログラムは、ユーザのブラウザが機能する態様を変える。より明確には、制御プログラムはユーザのコンピュータにライブラリファイルをダウンロード又は作成する。ライブラリファイルは、例えば、ブラウザに、また、種々の情報及び／又は機能がアクティブＸコントロールとしてロードされるシェル（又は複数のシェル）を作成するＤｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ（ＤＬＬ）（Ｗｉｎｄｏｗｓオペレーションシステム用）であってよい。ライブラリファイルは、本発明によりブラウザインターフェイスに追加されたインターフェイスオブジェクトを規定するアクティブＸコントロール又はプラグイン機能を含む。インターネットユーザがブラウザを起動したときに、ライブラリファイルは開かれ、当該ファイルに含まれるアクティブＸコントロール又はプラグインコードはブラウザにおいて使用可能になり、ブラウザインターフェイスに組み込まれる。このようにしてインターフェイスオブジェクトがブラウザインターフェイスと共に表示されるようにする。ライブラリファイル、従ってシェル（又は複数のシェル）は、ブラウザが起動されている限り、一般的にはユーザがウエブをサーフしている限り、開かれた状態にある。従って、シェルにロードされ、ブラウザインターフェイスをカスタマイズする情報及び／又は機能は、インターネットサイト間を移動する間においても起動された状態にある。本明細書で使用される場合に、情報及び機能という語は、いかなる情報、データ及び／又はライブラリファイル若しくはライブラリファイルの一部に含まれてよいソフトウエアによる機能を言う。
【００１５】
ライブラリファイルはまた、ブラウザがユーザにより最初に起動されたときに、ブラウザにコンテンツプロバイダのサイトへの接続を確立させる。コンテンツプロバイダのインターネットサイトは、ユーザのコンピュータに、ブラウザに使用し、また、ブラウザインターフェイスに表示するために、インターフェイスオブジェクト用の情報及び／又は機能をロードする。コンテンツプロバイダによりロードされた情報及び／又は機能は、例えばもしユーザがコンテンツプロバイダのアカウントを有していれば、インターネットユーザに固有のものであってよい。代わりに、コンテンツプロバイダは、例えばもしインターネットユーザがコンテンツプロバイダのアカウントを有していなければ（即ち、ゲストであれば）、一般的な情報及び／又は機能をロードしてよい。
【００１６】
本発明は、ブラウザインターフェイスの情報及び機能を制御すべく、処理中のサーバにおいて、Ｏｂｊｅｃｔ  Ｌｉｎｋｉｎｇ  Ｅｍｂｅｄｄｉｎｇ（ＯＬＥ）を使用する。ライブラリファイルに含まれたアクティブＸコントロール又はブラウザプラグイン（各々、ここではＢｒｏｗｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｏｖｅｒｌａｙ（ＢＩＯ）ライブラリと言う）を用いて、アクティブＸコントロール又はプラグインと共に使用可能ないずれの情報及び／又は機能は、本発明を用いて、仮想的にブラウザインターフェイスに追加されてよい。ライブラリファイル（ＢＩＯライブラリを介して）は、このようにしてブラウザインターフェイスをカスタマイズ、即ち、追加、削除及び／又は変更、するために必要なコードを含む。
【００１７】
ひとたびインターネットユーザが制御プログラムにアクセスし、当該ユーザのブラウザのハンドルをカスタマイズすれば、ブラウザが起動されたときに、カスタマイズされたブラウザが表示される。従来のブラウザ変更方法と比較して、本発明は動的に制御することができる方法及びブラウザインターフェイスを提供する。更新又は変更された情報及び／又は機能は、ブラウザに伝送され、インターネットユーザがウエブをサーフしている間、及びカスタマイズされたブラウザインターフェイスの情報及び／又は機能を維持している間、ブラウザインターフェイスに表示される。従って、インターネットユーザは、例えば、株式相場、電子メール、新たな見出しのような最新の情報を、当該ユーザのブラウザインターフェイスで、いずれのインターネットサイトにいても、ユーザがブラウザを用いてウエブをサーフしている限り、自動的に受け取ることができる。
【００１８】
本発明の他の目的及び特徴は、図面を用いて以下の詳細な説明において明白になるであろう。しかしながら、図面は単に実例の目的で作成されており、本発明を限定する描写ではなく、添付された請求項を参照して解釈されるべきである。
【００１９】
【発明の実施の形態】
本発明は、インターネットブラウザインターフェイスを制御及び表示する方法、並びに制御可能なインターネットブラウザインターフェイスに関する。本発明によれば、ブラウザインターフェイスは、インターネットコンテンツプロバイダ、ＩＳＰにより供給され得る、又はインターネットユーザのコンピュータに存し得る制御ソフトウエアプログラムを用いてカスタマイズされてよい。制御ソフトプログラムは、インターネットユーザ、コンテンツプロバイダ、又はＩＳＰに、ユーザのブラウザ及びブラウザインターフェイスの情報及び／又は機能をカスタマイズし、制御することを可能にする。
【００２０】
詳細は図面を参照して説明する。図１０は、本発明が実行され得るインターネットに接続されたコンピュータの概略ブロックダイアグラムである。コンピュータ５０は、コンピュータ５０の種々の装置間における情報（例えばディジタルデータ）の通信を容易にし、また、通信インターフェイス６８を介して外部の装置やシステムとコンピュータとの通信を容易にする内部バス６４を含む。バス６４につながれたプロセッサ６６は、コンピュータ５０内部の情報を処理する。また、コンピュータ５０は、プロセッサ６６から伝達された指示を受け取り、格納すべくバス６４に接続された、例えばランダムアクセスメモリ（ＲＡＭ）や他の等価な動的記憶素子のようなメインメモリ６０を含む。また、メインメモリ６０は、プロセッサ６０が指示を実行している間、可変の又は他の中間情報を一時的に格納するために使用される。また、リードオンリーメモリ（ＲＯＭ）６２も、プロセッサ６６が使用するための静的なデータや指示を格納するために、バス６４に接続されている。種々の入力及び出力装置が、コンピュータ５０の一部として設けられている。当該入力及び出力装置は、限定しない例として、ディスプレイ５４（例えば陰極線管（ＣＲＴ）、液晶表示装置（ＬＣＤ）等）、キーボードのような入力装置５６、及びマウスやトラックボールのようなカーソル制御装置５８を含む。例えば磁気ディスクドライブ及び磁気ディスク、ＣＤ−ＲＯＭドライブ及びＣＤ−ＲＯＭ、又は他の等価な装置及び記録媒体等のデータ格納装置５２が、プロセッサ６６、メインメモリ６０、及び通信インターフェイス６８との通信のためにバス６４に接続されている。格納装置５２は、好ましくはオペレーティングシステム７０及びインターネットブラウザソフトウエアプログラム７２（即ち、ブラウザ）を格納するのが好ましい。以下において、更に詳細に論ずるように、ライブラリファイル７４もデータ格納装置５２に格納されてよい。
【００２１】
コンピュータ５０は、通信インターフェイス６８を介し、これに限定されないが、同軸ケーブル、銅線、光ファイバーケーブルによってインターネット９０に接続できる。コンピュータ５０とインターネット９０との間の通信は、ワイヤレスやセルラーインターフェイスを介してもよい。通信インターフェイス６８は、コンピュータ５０と他の電子機器やシステム、例えばコンテンツプロバイダ１００、２００により設けられたサーバコンピュータ（図示せず）、との双方向の通信を容易にする。
【００２２】
コンピュータ５０を使用するインターネットユーザ（図示せず）は、ブラウザ７２を起動させることにより、インターネット９０へのアクセスを得ることができ、これによって、コンピュータ５０の通信インターフェイス６８と、コンテンツプロバイダ１００のインターネットサイト１３０との間の通信リンクを、インターネットサービスプロバイダ（ＩＳＰ）８０を介して開くことができる。ブラウザ７２は、コンピュータディスプレイ５４に、ブラウザベンダーによりブラウザ７２に予め設定されたウインドウ３０のレイアウト（色、大きさ、数、位置等）及び機能を有するブラウザインターフェイス２０（図１参照）を提供する。インターネットコンテンツは、ブラウザインターフェイス２０のコンテンツウインドウ３２において表示するために、コンテンツプロバイダ１００によりコンピュータ５０に伝達される。
【００２３】
本発明の一実施形態によれば、第１のインターネットコンテンツプロバイダ１００は、インターネットユーザに、ブラウザ７２及びブラウザインターフェイス２０を制御するためのプログラム１２０へのアクセスを提供することができる。ユーザにより実行されたときに、制御プログラム１２０は、例えばダイナミックリンクライブラリ（ＤＬＬ）のようなライブラリファイル７４を、インターネットユーザのコンピュータ５０のデータ格納装置５２にダウンロード、又は作成する。ライブラリファイル７４は、アクティブＸコントロールやプラグイン機能を含むことが好ましい。その後は、インターネットユーザがブラウザ７２を使用してインターネットにアクセスするときに、ブラウザ７２はライブラリファイル７４を開き、また、好ましくはコンテンツプロバイダのインターネットサイト１３０との接続を自動的に確立する。コンテンツプロバイダは、ブラウザ７２により確立された接続に応答して、ライブラリファイル７４により作成された、ブラウザ内部のシェルオペレーティングに、情報及び／又は機能データをロードする。例えば、ユーザがコンテンツプロバイダ１００のアカウントを有している場合、カスタマイズされた情報及び／又は機能が、ライブラリファイル７４にロードされてよい。ユーザがアカウントを有しない場合、より一般化された（即ち、ゲスト）情報及び／又は機能がロードされてよい。
【００２４】
ライブラリファイル７４は、本質的には、インターネットブラウザ７２及びブラウザインターフェイス２０を制御、即ち、追加、除去、及び／又は変更するアクティブＸコントロールやプラグインコードを含むブラウザ７２の１つのシェル（又は複数のシェル）を開く。アクティブＸコントロールやプラグインと共にロードされるときに、ライブラリファイル７４は、ブラウザ７４及びブラウザインターフェイス２０を制御するために使用される機能、オブジェクト、及び他のソフトウエア（ここに一般的な情報として言及しているだけである）を含むことが好ましい。本発明は、インターネットユーザがインターネットサイト１３０からインターネットサイト２３０に移動したときに、ライブラリファイル７４（及びシェル）が閉じないことを確実なものとする。従って、インターネットユーザがアクティブＸコントロールやプラグインをロードしたインターネットサイトから切断し、他のインターネットサイトに接続したときでも、当該アクティブＸコントロールやプラグインを介して供給された情報及び／又は機能は失われない。
【００２５】
次に、図１を参照して、各々が種々の機能をインターネットユーザに与える複数のウインドウを有する従来のインターネットブラウザインターフェイス２０が図示される。ブラウザインターフェイス２０は、ブラウザインターフェイスの一般的な大きさ、色、及びレイアウトを規定し、当該ウインドウ３０のためのウインドウ制御ボタン２８（例えば最小化する、閉じる等）を含む第１の親ウインドウ３０を備えてよい。ブラウザインターフェイス２０は、第１の親ウインドウ３０内に、第２の親ウインドウ３６（第１の親ウインドウの子）、及び第２の親に従属した更に１つ以上の子ウインドウ３８を備えてもよい。第２の親ウインドウ３６及び子ウインドウ３８は、一般的に、インターネットにアクセスしたり渡り歩いたりするときにインターネットユーザを補助する情報及び／又は機能を規定する。例えば、第２の親３６及びその従属ウインドウ３８は、ツールバー、プルダウンメニュー、プラグイン、アプリケーション等を提供する。
【００２６】
例えば、インターフェイス２０の上部（図中）に設けられた３つのウインドウ３８が、例えばプルダウンメニュー、ファンクションボタン（例えば停止、戻り、次へ、ホーム等）、及びファンクションボタンとウインドウとの組合せ（例えば検索ボタンとウインドウ）等の多様なインターフェイスコントロール２４を含む３つのツールバー２２を含む。最上部のツールバー２２は、複数のプルダウンメニュー２４を提供し、中段のツールバー２２は、プルダウンメニュー及びウインドウ２６（ＵＲＬアドレスウインドウ）を提供する。コンテンツウインドウ３２もまた、インターネットコンテンツプロバイダ１００（図１０参照）からのコンテンツが表示されるインターフェイス２０の一部として供する。インターネットユーザは、第２のツールバー２２に設けられた表示ツールバーオブジェクト２４（プルダウンメニュー）を用いて、下方の３つの（図中）ツールバー２２のいずれかをオン及びオフに切り替えてもよい。しかしながら、インターネットユーザは、ここではブラウザインターフェイス２０を追加、削除、又は他の方法で変更することはできない。
【００２７】
本発明の種々の形態により構成されたインターネットブラウザ２０が、図２から図４に図示される。図２においては、ブラウザインターフェイス２０は、コンテンツプロバイダ１００によりライブラリファイル７４にロードされたアクティブＸコントロールやプラグインにより規定されるインターフェイスオブジェクト４０を含む。インターフェイスオブジェクト４０は、プルダウンメニュー４４を備えており、ブラウザ７２により提供されたインターフェイスコントロール（即ち、ブラウザツールバーオブジェクト）２４と共に、ブラウザツールバー２２に表示される。図３において、インターフェイスオブジェクト４０は、ブラウザインターフェイス２０内に別のウインドウ４８として表示されたインターフェイスオブジェクトツールバー４２及びプルダウンメニュー４４を備える。図４において、インターフェイスオブジェクト４０は、ブラウザインターフェイス２０内の別のウインドウ４８内に表示された複数のプルダウンメニュー４４及び検索ウインドウ４６を含むインターフェイスツールバー４２を備える。本発明の種々の形態によるインターフェイスオブジェクト４０は、ブラウザを介して使用可能ないかなるタイプの情報及び／又は機能を、仮想的に備えてよい。従って、限定しない例として、インターフェイスオブジェクト４０は、プルダウンメニューや、ツールバー及びプルダウンメニューや、文字情報（例えば広告、クーポン等）や、文字及び／又は音声情報（例えば音を伴う文字広告）や、文字、音声、及び／又はグラフィック（アニメーション又は非アニメーション）情報や、ビデオや、ビデオ及びオーディオや、オーディオ等を備えてよい。
【００２８】
図２から図４に図示された本発明のインターネットブラウザインターフェイスの種々の形態は、単なる実例であって、本発明を限定する例ではない。図示されたブラウザインターフェイス２０への変更は、ここで提供された教示により可能である。
【００２９】
次に図５を参照して、本発明の一実施形態によるインターネットブラウザインターフェイス２０を制御する方法が、その全体を５００として図示される。ステップ５１０において、インターネットユーザは、インターネットウエブサイト１３０、ＩＳＰ８０、又はユーザのコンピュータ５０を介して、制御プログラム１２０にアクセスする。制御プログラム１２０は、インターネットユーザにより実行されたときに、その後、当該ユーザにユーザのインターネットブラウザインターフェイス２０を制御する能力を供する。制御プログラム１２０は、ステップ５２０において、インターフェイスオブジェクトを規定するアクティブＸコントロール又はプラグインコードを含むインターネットユーザのコンピュータ５０に、ライブラリファイル７４をダウンロード又は作成する。ステップ５３０及び５４０に図示されるように、インターネットユーザがブラウザ７２を起動するたびに、ライブラリファイル７４は開かれ、好ましくはインターネットユーザのコンピュータ５０に、インターフェイスオブジェクト用のアクティブＸコントロール又はプラグインコードを伝送（即ち、ダウンロード）するために構築されている所定のインターネットウエブサイト１１０へ、接続が自動的に確立される。開かれたライブラリファイル７４は、本質的には、ブラウザインターフェイス２０に追加されうるアクティブＸコントロール又はプラグインコードにより機能が提供されたブラウザ７０にシェルを提供する。ブラウザ７２が閉じられるまでは、ライブラリファイル７４及びシェルのいずれも閉じない。ステップ５５０において、ブラウザインターフェイス２０に表示されるインターフェイスオブジェクト４０が作成される。インターフェイスオブジェクト４０の情報及び／又は機能は、アクティブＸコントロール又はプラグインにより規定される。本発明の種々の形態によれば、インターフェイスオブジェクト４０は、ステップ５６０に図示されるように、ユーザがウエブをサーフし続ける限り、即ち、ブラウザが起動されている限り、ブラウザインターフェイス２０と共にブラウザ７２により表示された状態を保つ。従って、本発明によりブラウザ７２及びブラウザインターフェイス２０に追加された機能は、インターネットユーザがウエブをサーフする間は失われない。
【００３０】
本発明は、図５を参照して概要を上述したように、ブラウザ７２及びブラウザインターフェイス２０を制御するための種々の形態を提供する。各々についてここで詳細に説明する。
【００３１】
次に図６、続けて図１０を参照して、本発明によるブラウザ７２及びブラウザインターフェイス２０を制御し、表示する方法の一実施形態を、全体を６００として説明する。図６で説明をする上で、ライブラリファイル７４は、ここで説明したように、すでにインターネットユーザのコンピュータ５０にダウンロード又は作成されているとする。ステップ６１０において、インターネットユーザは、インターネット９０にアクセスを開始するために、ブラウザ７２を起動する。ステップ６２０において、ライブラリファイル７４は開かれ、ステップ６３０に示すように所定のコンテンツプロバイダへの接続が自動的に確立される。ＢＩＯライブラリのアクティブＸコントロール又はプラグインコードにより規定された機能は、ブラウザインターフェイス２０に追加されてよいインタフェイスオブジェクト４０を作成するために、ユーザのコンピュータ５０に、コンテンツプロバイダにより伝送される。インターフェイスオブジェクト４０は、ステップ６４０に示すように、インターネットブラウザインターフェイス２０と共に表示される。インターフェイスオブジェクト４０の機能は、アクティブＸコントロール又はプラグインコードにより規定されるが、インターネットユーザがインターネット９０を渡り歩いている間、ユーザが訪れたインターネットサイトの数や種類に関係なく、ブラウザ７２が操作される状態にある限り、即ち、インターネットユーザがブラウザソフトウエアプログラム７２を用いてインターネット９０にアクセスしている間、インターネットブラウザインターフェイス２０と共に残ってよい。ステップ６５０に示すように、インターネットユーザがあるインターネットサイトから他のインターネットサイトへ移動するときに、本発明はインターフェイスオブジェクト４０が当該移動により現存しているか、即ち、ステップ６５２に示すように、ブラウザインターフェイス２０にブラウザ７２によりまだ表示されているかを確定する。もしインターフェイスオブジェクト４０が、ブラウザインターフェイス２０に表示されていなければ（即ち、ブラウザインターフェイス２０から削除されたか、他の理由により終了されたか）、ステップ６６０に示すように、インターフェイスオブジェクト４０は再描画される。もしユーザがあるインターネットサイトから他のインターネットサイトへ移動することによっても、インターフェイスオブジェクト４０が現存しているなら、本発明はまた、ステップ６５４において、ブラウザ７２が起動されているかを確定する。インターフェイスオブジェクト４０は、ブラウザ７２が操作可能な状態にあるときは、ブラウザインターフェイス２０に表示されるのみだからである。もしブラウザ７２が起動さていないなら（即ち、ユーザがもうウエブをサーフしていないなら）、ステップ６７０に示すように、インターフェイスオブジェクト４０は終了され、ライブラリファイル７４は閉じられる。もしブラウザ７２が起動された状態にあれば、ステップ６５２に示すように、本発明はインターフェイスオブジェクト４０の状態を監視し、ブラウザインターフェイス２０にインターフェイスオブジェクト４０が表示されていることを確実なものとする。インターネットユーザがインターネットサイト間を移動するに合わせて、ユーザがインターネット９０を渡り歩いている限り、本発明はインターフェイスオブジェクト４０の状態を監視し、ブラウザインターフェイス２０と共に、ブラウザ７２により表示されていることを確実なものとする。
【００３２】
図６に図示される形態によれば、インターネットユーザが、ＢＩＯライブラリが初めに呼び出され、ユーザのコンピュータ５０にロードされたインターネットウエブサイト１３０を去ったときに、本発明はインターフェイスオブジェクト４０が、ブラウザ７２によりブラウザインターフェイス２０と共に表示されることを確実なものとする。例えば、ユーザがブラウザ７２を起動したときに、第１のコンテンツプロバイダにより営繕される第１の所定のインターネットサイトへの接続が自動的に確立され、ＢＩＯライブラリがユーザのコンピュータ５０にロードされる。ＢＩＯライブラリにより提供される機能は、ライブラリファイル７４により作成されたシェルを介してブラウザ７２に使用可能になる。インターネットユーザが、第２のコンテンツプロバイダ２００により営繕されている第２のインターネットサイト２３０に接続したときに、インターフェイスオブジェクト４０用の機能は、ブラウザインターフェイス２０に示され続ける。本実施形態において、本発明は、第１のインターネットサイト１３０へのリンクが終了したときに、コンピュータ５０のブラウザ７２又はオペレーションシステム７０が、ライブラリファイルをアンロードすることによりＢＩＯライブラリの機能が不能になることを防ぐ。
【００３３】
例えば、ブラウザ７２が初めに第１のインターネットサイト１３０に接続したときに、当該サイト１３０は、アクティブＸコントロールソフトウエアコードのフォーム内の機能情報を、ライブラリファイル７４にロードされたＢＩＯライブラリとして、インターネットユーザのコンピュータ５０に伝送する。もし、第１のインターネットサイト１３０への接続が終了されたときに、ライブラリファイル７４が、閉じる又はアンロードするように、オペレーションシステム７０又はブラウザ７２により、明確に指示されないならば、ライブラリファイル７４は、第１のインターネットサイト１３０への接続が閉じられた後であっても、ブラウザインターフェイス２０内のインターフェイスオブジェクト４０用の所望の機能を提供しながら、ロードされた状態を保つことができる。インターネットユーザが種々のインターネットサイト間を移動する間、ライブラリファイル７４をロードされた状態に保つことは、ライブラリファイル７４の内部を除く、アクティブＸコントロール（第１のインターネットサイト１３０により、インターネットユーザ５０に伝送されるだけ）の外部のデータ、機能及びオブジェクトのロードを可能にする。ライブラリファイル７４がロードされた状態を保つ限り、ライブラリファイル７４に、及びアクティブＸコントロールの外部に作成されたいずれのデータやオブジェクトも、ロードされたままであり、ブラウザインターフェイス２０において機能し続ける。
【００３４】
渡り歩いている間に、ライブラリファイル７４を開かれた状態に保つために、ブラウザ７２がインターネットサイト１３０に接続された後、当該接続が終了される前に、グローバルオブジェクトであるオブジェクトＡが、コーリングファンクションヒープではなく、インターネットユーザのコンピュータ５０のプログラムヒープに作成される。従って、グローバルオブジェクトは、コーリングファンクションの完成を耐え抜く。グローバルオブジェクトは、新しい演算子であるＣ＋＋を用いて、又はグローバルオブジェクトを明示することにより、作成されてもよい。いずれの場合においても、グローバルオブジェクトは、ブラウザ７２と第１のインターネットサイト１３０との接続が終了しても存在し続ける。
【００３５】
このように規定されたグローバルオブジェクトは、第１のインターネットサイト１３０がにより提供されたアクティブＸコントロールが閉じる後、即ち、第１のインターネットサイト１３０への初めの接続が終了した後も機能する。ひとたびグローバルオブジェクトが作成されれば、グローバルオブジェクトを用いてインターフェイスが作成される。当該インターフェイスは、例えばブラウザ７２及びブラウザインターフェイス２０への機能の削除、置換、及び／又は追加に供する。インターフェイスは、グローバルオブジェクトの一部として、又はグローバルオブジェクトが新たなインターフェイスオブジェクト４０を割り当てることにより作成されてもよい。例えば、インターフェイスオブジェクト４０は、例えば、ブラウザウインドウ３８内のインターフェイスオブジェクトウインドウ４８を作成し、ブラウザウインドウ４８にそれを子ウインドウとして追加することにより作成されてもよい。ブラウザインターフェイス２０は、ブラウザインターフェイス２０にブラウザツールバー２２又はブラウザツールバーオブジェクト２４を追加又は変更するようなことにより、直接的に変更されてもよい。更に他の選択肢は、図４に示すように、ブラウザインターフェイス２０から切り離されたオブジェクトインターフェイスツールバー４２を作成することである。
【００３６】
ブラウザ７２を制御するために使用される、即ち、例えば所定のインターネットサイト１３０への接続を確立するために、ブラウザ７２を指示するポインタが必要である。当該ポインタは、ブラウザ７２にコマンドを送信するライブラリファイル７４のいかなる機能又はオブジェクトによりアクセスできるように、広範囲に格納されるのが好ましい。マイクロソフト社のインターネットエクスプローラにおいては、例えばＩＷｅｂＢｒｏｗｓｅｒ、ＩＷｅｂＢｒｏｗｓｅｒ２、又はＩＷｅｂＢｒｏｗｓｅｒＡｐｐ  ｏｂｊｅｃｔ  ｌｉｎｋｉｎｇ  ａｎｄ  ｅｍｂｅｄｄｉｎｇ（ＯＬＥ）インターフェイスコマンドが、ポインタを作成するために使用されてよい。Ｍｉｃｒｏｓｏｆｔ  Ｆｏｕｎｄａｔｉｏｎ  Ｃｌａｓｓ（ＭＦＣ）を用いた場合に、例えば、第１のインターネットサイト１３０、即ち、ＢＩＯライブラリをロードしたインターネットサイトからポインタを得るために、ＣＯｌｅＣｏｎｔｒｏｌクラスのＧｅｔＣｌｉｅｎｔＳｉｔｅ項を用いて、ポインタは作成されてもよい。ＧｅｔＣｌｉｅｎｔＳｉｔｅは、ブラウザ７２にとってＢＩＯライブラリと通信するための入り口点としての役割を果たす。前のステップにより戻ったＩＯｌｅＣｌｉｅｎｔクラスのＧｅｔＣｏｎｔａｉｎｅｒ項は、ＢＩＯライブラリのためのコンテナに対するポインタを得るために使用されてよい。ＢＩＯライブラリのコンテナは、アクティブＸコントローラがロードされるコンテナである。インターネットブラウザインターフェイス２０は、一般的に、ブラウザツールバー２２及びコンテンツウインドウ３２を含むいくつかの部分からなる。ドキュメントオブジェクトは、インターネットユーザがアクセスし、特定のウエブページに現れる全てのデータを含む全てのウエブページ用にブラウザ７２により作成される。ドキュメントオブジェクトは、ＢＩＯライブラリにとってのコンテナでもある。従って、ドキュメントオブジェクトは、ＢＩＯライブラリのコンテナとして参照されてもよい。
【００３７】
前のステップにより戻ったＩＯｌｅＣｏｎｔａｉｎｅｒクラスのＱｕｅｒｙＩｎｔｅｒｆａｃｅ項は、ブラウザ７２により与えられた他のインターフェイスのいずれかを配置するために使用されてよいＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒインターフェイスに対するポインタを取得するために使用されてよい。最後に、前のステップにより戻ったＩＯｌｅＣｏｎｔａｉｎｅｒクラスのＱｕｅｒｙＩｎｔｅｒｆａｃｅ項は、ブラウザ７２により提供された特定のインターフェイスに従属するＢＩＯライブラリと呼ばれるＩＷｅｂＢｒｏｗｓｅｒＡｐｐ、ＩＷｅｂＢｒｏｗｓｅｒ、又はＩＷｅｂＢｒｏｗｓｅｒ２に対するポインタを取得するために使用されてよい。
【００３８】
他の実施形態においては、本発明はブラウザウインドウ３０全体を変更するために使用されてもよい。もしブラウザウインドウ３０全体が変更されるなら、インターフェイスオブジェクト４０を現存するブラウザウインドウ３８に統合するのとは異なり、ブラウザウインドウ３８の全クラスが下位クラスに分類されるか、又は特定のブラウザウインドウ３８が下位クラスに分類されてよい。ここで使用されているウインドウを下位クラスに分類するという語は、ウインドウを掛けるとも言われるが、ウインドウに送られた全てのメッセージをハンドリングするための最初のブラウザウインドウメッセージのハンドリングプロシージャを、ユーザが定義したウインドウメッセージのハンドリングプロシージャと取り替えることを言う。例えば、Ｍｉｃｒｏｓｏｆｔ  Ｆｏｕｎｄａｔｉｏｎ  Ｃｌａｓｓ（ＭＦＣ）  ＣＷｎｄ：ＳｕｂｃｌａｓｓＷｉｎｄｏｗ（）ファンクションを用いて、ウインドウはサブクラス化されてよい。代わりに、ＧＷＬ＿ＷＮＤＰＲＯＣアーギュメントと共に、ＳｅｔＷｉｎｄｏｗＬｏｎｇファンクション（マイクロソフトウインドウファンクション）を用いて、ウインドウをサブクラス化してもよい。ＳｅｔＷｉｎｄｏｗＬｏｎｇファンクションにより戻ったポインタは、サブクラスウインドウのための最初のブラウザウインドウメッセージハンドリングプロシージャに格納されてよい。これはＢＩＯライブラリがウインドウ３０又は３８に渡された全てのメッセージを遮断することを可能にし、また、ＢＩＯライブラリは、ブラウザ７２により提供され、ボタン、メニュー等を含むインターフェイスコントロール２４から、又はＢＩＯライブラリにより追加されたインターフェイスオブジェクト４０からのコマンドを解析する。
【００３９】
ＢＩＯライブラリが提供し、また、最初のブラウザウインドウメッセージと取り替える、ユーザが定義したウインドウメッセージハンドリングプロシージャは、ここではＢＩＯプロシージャと呼ばれる。ブラウザ７２用のＢＩＯプロシージャを用いて、ブラウザ７２に提供されたメッセージ（即ち、コマンド）は遮断及び変更されてよく、又は、取り替え又は新たなメッセージ（例えば、インターフェイスオブジェクト４０用のメッセージハンドラ）が、ＢＩＯプロシージャによりブラウザ７２に伝送されてよい。本発明はまた、ブラウザインターフェイス２０からインターフェイスオブジェクト４０が削除されていないことを確実なものとする。例えば、いくつかのインターネットブラウザ７２は、インターネットユーザが新たなウエブサイトにアクセスしたときに、全てのブラウザインターフェイス２０を再描画する。グローバルオブジェクトが、そのようなユーザによるインターネットの移動に従ってまだ機能している一方、インターフェイスオブジェクト４０は、ブラウザインターフェイス２０から削除される。従って、インターフェイスオブジェクト４０は、ブラウザインターフェイス２０と共に表示されることはなくなる。これが起こることを防ぐために、ブラウザインターフェイス２０を再描画するためのブラウザ７２からのメッセージ（即ち、コマンド）は、ＢＩＯプロシージャにより削除されてよく、また、インターフェイスオブジェクト４０は、ブラウザインターフェイス２０が再描画された後、直ちに再描画されてよい。代わりに、ブラウザインターフェイス２０にインターフェイスオブジェクト４０が存在することは、定期的にテストされてよく、そして、もしブラウザインターフェイス２０に存在しないならば、インターフェイスオブジェクト４０は再描画されてよい。このような周期的なテストは、おおよそ１秒以下の間隔で行われるのが好ましい。
【００４０】
上述した形態（図６に図示）の一例として、アクティブＸコントロールがＢＩＯライブラリとしてロードされ、ブラウザインターフェイス２０にメニューアイテム（及び機能）を追加する。ブラウザインターフェイス２０に追加される所望の機能と共に新たなメニューオブジェクト（即ち、インターフェイスオブジェクト４０）を作成する新たなグローバルオブジェクトであるオブジェクトＡを動的に作成するアクティブＸコントロールを、本発明は作成する。例えばＡｆｘＧｅｔＭａｉｎＷｎｄ（）→ＧｅｔＭｅｎｕ（）→ＡｐｐｅｎｄＭｅｎｕ（）といった指示を用いて、ブラウザインターフェイス２０にメニューオブジェクト４０が追加されてよい。ここで、ブラウザインターフェイス２０に追加されたメニューはメニューオブジェクトを指すポップアップメニューを含んでよい。インターネットユーザが第１のインターネットサイト１３０から切断するとき（即ちアクティブＸコントロールを含むウエブページを去るとき）、アクティブＸコントロールは閉じるが、グローバルオブジェクト、即ちオブジェクトＡは、プログラムヒープに残り、ブラウザインターフェイス２０に所望の機能を提供し続ける。
【００４１】
インターフェイスオブジェクト４０が追加されるブラウザウインドウをサブクラス化する代わりに、オブジェクトＡ、又は派生したものの１つが、インターフェイスオブジェクト４０のオーナー権を保有してよい。そして、インターフェイスオブジェクト４０用のメッセージハンドラが作成されてよい。例えば、本発明の上述の形態により、ブラウザツールバー２２に、インターフェイスオブジェクト４０が追加されてもよい。ただし、インターフェイスオブジェクト４０の所有権が、Ｍｉｃｒｏｓｏｆｔ  Ｆｏｕｎｄａｔｉｏｎ  Ｃｌａｓｓ  ＳｅｔＯｗｎｅｒファンクションを用いて、オブジェクトＡ又は派生したものの１つに設定されることを除く。
【００４２】
次に図７、続いて図１０を参照して、本発明によりブラウザインターフェイス２０を制御し、表示する方法の他の形態について説明する。図７を説明する上で、ライブラリファイル７４は、ここで述べたように、インターネットユーザのコンピュータ５０に、すでに作成されているものとする。ステップ７１０において、インターネットユーザは、インターネット９０にアクセスするために、ブラウザ７２を起動する。ステップ７２０において、ライブラリファイル７４はユーザのコンピュータ５０に開かれ、ステップ７３０に図示されるように、所定のインターネットサイト１３０への接続が自動的に確立される。ステップ７４において、インターフェイスオブジェクト４０の表示を制御するための連続ループを用いてブラウザインターフェイス２０に表示されるインターフェイスオブジェクト４０を作成するために、ＢＩＯライブラリのアクティブＸコントロール又はプラグインコードにより規定された機能は、コンテンツプロバイダによりユーザのコンピュータ５０へ（即ち、ライブラリファイル７４へ）伝送される。インターフェイスオブジェクト４０は、連続ループの終了に応じてのみ削除（即ち、当該機能が終了）されてよい。インターフェイスオブジェクト４０の機能は、アクティブＸコントロール又はプラグインコードにより規定されるが、インターネットユーザがインターネット９０を渡り歩いている間、ユーザが訪れたインターネットウエブサイトの数や種類に関係なく、また、ブラウザ７２が操作できる状態にある限り、即ち、インターネットユーザが当該ブラウザソフトウエアプログラムを用いてインターネットにアクセスしている限り、インターネットブラウザインターフェイス２０と共に残ってよい。ステップ７５０に示すように、インターネットユーザがあるインターネットサイトから他へ移動するときに、本発明はインターフェイスオブジェクト４０が当該移動により現存しているか、即ち、ステップ６５２に示すように、ブラウザインターフェイス２０にブラウザ７２によりまだ表示されているかを確定する。もしインターフェイスオブジェクト４０が、ブラウザインターフェイス２０に表示されていなければ（即ち、ブラウザインターフェイス２０から削除されたか、他の理由により終了されたか）、ステップ７６０に示すように、インターフェイスオブジェクト４０は再描画される。もしユーザがあるインターネットサイトから他のインターネットサイトへ移動することによっても、インターフェイスオブジェクト４０が現存しているなら、本発明はまた、ステップ７５４において、ブラウザ７２が起動されているかを確定する。インターフェイスオブジェクト４０は、ブラウザ７２が操作可能な状態にあるときは、ブラウザインターフェイス２０に表示されるのみだからである。もしブラウザ７２が起動さていないなら（即ち、ユーザがもうウエブをサーフしていないなら）、ステップ７７０に示すように、インターフェイスオブジェクト４０は終了され、ライブラリファイル７４は閉じられる。もしブラウザ７２が起動された状態にあれば、ステップ７５６において、連続ループが終了されたかどうかを確定する。もしループが終了されていれば、ステップ７７０に示すように、インターフェイスオブジェクト４０もまた終了される。もしループがまだ実行されていれば、ステップ７５２に示すように、インターフェイスオブジェクト４０がまだブラウザインターフェイス２０に表示されているかどうかを確定する。
【００４３】
図７に示す本発明の形態は、オペレーションシステム７０又はブラウザ７２がライブラリファイル７４をアンロード又は終了する指示を発生しても、ライブラリファイル７４（内部にアクティブＸコントロールコードがロードされる）の動作がフリーズすることにより、アクティブＸコントロールがアンロードするのを防ぐ。ライブラリファイル７４がフリーズし、アンロードを終了させることがないため、アクティブＸコントロールによりライブラリファイル７４の代わりに作成された全てのデータ、機能及びオブジェクトは、ライブラリファイル７４がアンロードするよう指示された後でも存在し、機能し続ける。
【００４４】
いくつかのオペレーションシステム７０及び／又はブラウザ７２では、アクティブＸコントロールがインターネットサイトにもはや存在しないときに、ＢＩＯライブラリは閉じられる。これはまた、インターネットユーザがアクティブＸコントロールを有するインターネットサイト、例えば、図１０のインターネットサイトから、有しない他のインターネットサイト、例えば図１０のインターネットサイト２３０に移動するときに、生じる可能性がある。アクティブＸコントロールがないときに、インターフェイスオブジェクト４０が動作し続けることを可能にするために、ＢＩＯライブラリ（及びライブラリファイル７４）が閉じるのを防がなければならない。
【００４５】
これを成し遂げるために、ブラウザ７２を制御するために使用されるポインタが作成される。ブラウザ７２にコマンドを送るために必要であろうライブラリファイル７４中のいずれの機能又はオブジェクトによりアクセスできるように、当該ポインタは、広範囲に格納されるのが好ましい。例えばマイクロソフトインターネットエクスプローラでは、ＩＷｅｂＢｒｏｗｓｅｒ、ＩＷｅｂＢｒｏｗｓｅｒ２、又はＩＷｅｂＢｒｏｗｓｅｒＡｐｐ  ＯＬＥ  Ｉｎｔｅｒｆａｃｅコマンドが、ポインタを作成するために使用されてよい。Ｍｉｃｒｏｓｏｆｔ  Ｆｏｕｎｄａｔｉｏｎ  Ｃｌａｓｓを用いてこれを行うために、ＣＯｌｅＣｏｎｔｒｏｌクラス（ＢＩＯライブラリと通信するために使用されてよい）のＧｅｔＣｌｉｅｎｔＳｉｔｅ項が、ＢＩＯライブラリのインターネットサイトへポインタを検索するために使用されてよい。前のステップにおいて戻ったＩＯｌｅＣｌｉｅｎｔＳｉｔｅクラスのＧｅｔＣｏｎｔａｉｎｅｒ項は、ＢＩＯライブラリのコンテナに対するポインタを取得するために使用されてよい。前のステップで戻ったＩＯｌｅＣｏｎｔａｉｎｅｒクラスのＱｕｅｒｙＩｎｔｅｒｆａｃｅ項は、ＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒインターフェイスに対するポインタを取得するために使用されてよい。ＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒインターフェイスは、ブラウザ７２により示された他のインターフェイスのいずれをも容易に見つけるために使用されてよい。前のステップにより戻ったＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒのＱｕｅｒｙＳｅｒｖｉｃｅ項は、ＢＩＯライブラリと呼ばれるブラウザ７２のバージョンにより示されたインターフェイスに独立なＩＷｅｂＢｒｏｗｓｅｒ、ＩＷｅｂＢｒｏｗｓｅｒ２、又はＩＷｅｂＢｒｏｗｓｅｒＡｐｐインターフェイスへのポインタを取得するために使用されてよい。
【００４６】
ライブラリファイル７４が閉じるのを防ぐために、その動作は、終了することが可能になる前に停止される。ライブラリファイル７４の動作をフリーズ又は停止させるために、ＢＩＯライブラリがアンロードされるべきときにのみ、またプログラムループがメッセージキューを送り出すときに終了する連続プログラムループが作成され実行されてよい。プログラムループは、またメッセージキューを送り出す。プログラムループは、ここではメッセージポンプと呼ばれ、例えばＰｅｅｋＭｅｓｓａｇｅ、ＧｅｔＭｅｓｓａｇｅ、ＴｒａｎｓｌａｔｅＭｅｓｓａｇｅ及びＤｉｓｐａｔｃｈＭｅｓｓａｇｅコマンドをループ中で用いることにより作成されてよい。具体的には、メッセージポンプを実行するためのＣ＋＋コードは下記に規定される：
ｗｈｉｌｅ（ｍ＿Ｃｏｎｔｉｎｕｅ）
｛
ｉｆ（ＰｅｅｋＭｅｓｓａｇｅ（＆ｍｓｇ，ＮＵＬＬ，０，０，ＰＭ＿ＮＯＲＥＭＯＶＥ）！＝０）
｛
ＧｅｔＭｅｓｓａｇｅ（＆ｍｓｇ，ＮＵＬＬ，０，０）；
ＴｒａｎｓｌａｔｅＭｅｓｓａｇｅ（＆ｍｓｇ）；
ＤｉｓｐａｔｃｈＭｅｓｓａｇｅ（＆ｍｓｇ）；
｝
｝
ここで、ｍ＿Ｃｏｎｔｉｎｕｅは、停止するときにループに指示するために使用されるブール変数であり、また、ＰｅｅｋＭｅｓｓａｇｅ、ＧｅｔＭｅｓｓａｇｅ、ＴｒａｎｓｌａｔｅＭｅｓｓａｇｅ及びＤｉｓｐａｔｃｈＭｅｓｓａｇｅは、全てＷｉｎｄｏｗｓのファンクションである。もしｍ＿Ｃｏｎｔｉｎｕｅが間違っていればループは終了し、従ってメッセージポンプは終了する。メッセージ変数は、Ｗｉｎｄｏｗｓ  ＭＳＧと関連する。
【００４７】
メッセージポンプが好ましく動作する方法は、ＰｅｅｋＭｅｓｓａｇｅファンクションを用いて、メッセージキューにおいて待っているメッセージが１通でもあるかを確認することである。もしメッセージがあれば、メッセージポンプはＧｅｔＭｅｓｓａｇｅファンクションを用いて、メッセージキューからそのメッセージを取り出し、ＴｒａｎｓｌａｔｅＭｅｓｓａｇｅファンクションを用いて、それを仮想鍵メッセージから文字メッセージに翻訳する。最後に、メッセージポンプはメッセージを、ＤｉａｐａｔｃｈＭｅｓｓａｇｅファンクションを用いて、当該メッセージを受け取るべきであるオリジナルウインドウメッセージハンドリングプロシージャに送る。
【００４８】
オペレーションシステム７０の能力は、メッセージを送り出すためのメッセージポンプを構成するために使用されてよい。例えば、ＭＦＣコマンドやＣＷｎｄ：：ＭｅｓｓａｇｅＢｏｘ（“ｍｙ  ｍｏｄａｌ”，ＭＢ＿ＯＫ）のようなコマンドを用いるダイアログボックスやメッセージボックスは、この目的の要求を適切に満たし、また、ライブラリファイル７４の動作の望ましいフリーズや停止を供給するために使用されてよい。
【００４９】
メッセージポンプが連続ループを実行している限り、インターネットユーザが他のインターネットサイトへアクセスする（即ち、訪れる）ときであっても、アクティブＸコントロールは終了されない。
【００５０】
図７により図示される本発明の形態は、上述された図６の形態と同様に機能する。
【００５１】
上述した（図６及び図７の）形態のどちらも、オブジェクトＡ及び全てのディセンダントを閉じるために、必須ではないが、インターフェイスオブジェクト４０のための終了ファンクションを設けることが好ましい。終了ファンクションを呼び出すための、実施可能な具体的なシナリオは、ＢＩＯＰｒｏｃｅｄｕｒｅのブラウザウインドウを閉じるためにメッセージを遮断、又は周期的にブラウザウインドウを探し、もし見つからなければ、アクティブＸコントロールを終了することを含む。
【００５２】
次に図８（Ａ）において、本発明の方法の別の形態が、全体を８００として図示される。図８を説明する上で、ライブラリファイル７４は、ここで説明したように、すでにインターネットユーザのコンピュータ５０に作成されているものとする。ステップ８１０において、インターネットユーザは、インターネット９０にアクセスするためにブラウザ７２を起動する。ステップ８２０において、ライブラリファイル７４は、ユーザのコンピュータ５０に開かれ、ステップ８３０に図示されるように、所定のインターネットサイト１３０（図１０参照）への接続が自動的に確立される。ステップ８３２において、ブラウザ７２により規定された最初のブラウザインターフェイスの複製である新たなブラウザインターフェイスが作成される。ステップ８４０において、プラグインの機能が最初にロードされた最初のブラウザインターフェイスを示すファンクションウインドウが作成される。
【００５３】
本発明の当該形態によるファンクションウインドウを作成するステップは、全体を８４０として図８（Ｂ）に図示される。ステップ８４２において、最初のブラウザインターフェイスウインドウのハンドルを規定する。最初のブラウザインターフェイスウインドウ、ここではファンクションウインドウが、ＢＩＯライブラリをクラッシュする原因となりうる当該ブラウザインターフェイスの終了が起きることのないように、ステップ８４４において隠され及び／又は不能にされる。ステップ８４６において、ブラウザ７２を制御するポインタが作成される。最後に、ステップ８４８において、インターネットを渡り歩き続けるために、インターネットユーザにより使用されうる新たなブラウザインターフェイスウインドウが作成される。
【００５４】
図８（Ａ）に戻って、ステップ８５０から開始するが、制御されるべき、そしてウインドウを追加、削除、及び／又は変更する第１のサブクラス化するいずれのブラウザウインドウ、又はブラウザにより使用されるいずれのウインドウにより、ブラウザインターフェイスは制御される。最初のブラウザウインドウメッセージハンドリングプロシージャは、ＢＩＯプロシージャ（上に規定）と置き換えられる。ステップ８６０において、本発明はいずれかの新たなブラウザウインドウ、即ち、まだサブクラス化されていない、又は制御されていないウインドウが開かれたかを確定する。もし新たなウインドウが開かれていれば、本発明は、ステップ８７０において、インターフェイスオブジェクト４０が当該新たなウインドウに追加されるべきかを確定する。もしそうでなければ、ステップ８８０に図示されるように、本発明はインターネットユーザがブラウザ７２を閉じることを要求しているかを確定する。もしそうであれば、本発明は、ステップ８９０において、ファンクションウインドウを含む全てのブラウザウインドウを閉じる。もしユーザがブラウザ７２を閉じることを要求していなければ、ステップ８８０で確定したように、本発明はステップ８６０に戻り、新たなブラウザウインドウが開かれたかを再び確定する。
【００５５】
続けて図８及び図１０を参照して、上述した本発明の形態を詳細に説明する。アクティブＸコントロールがインターネットサイト１３０を介してコンテンツプロバイダによりロードされたときに、典型的な例ではウエブサイト１３０への接続を確立し、また、アクティブＸコントロールを呼び出したブラウザ７２に応答して、アクティブＸコントロール用のコードがロードされうるブラウザ７２内部のシェルを作成すべく、ユーザのコンピュータに配されたライブラリファイル７４が開かれる。アクティブＸコントロールが閉じられるとき（ユーザがインターネットサイト１３０への接続を終了させるとき）オペレーションシステム７０又はブラウザ７２により、アクティブＸコントロールを含むライブラリファイル７４がアンロードする（即ち、閉じる）ように明確に指示されれば、ライブラリファイル７４がアンロードされたときに、アクティブＸコントロールの外部であってライブラリファイル７４の内部に作成されたいかなるデータ、機能、又はオブジェクトも破棄される。ライブラリファイル７４がアンロードされるのを防ぐために、ブラウザ７２は、指示があるまでアクティブＸコントロールが閉じるのを防ぐ。もしアクティブＸコントロールが閉じるよう指示を受けることがなければ、ライブラリファイル７４はアンロードされることはない。
【００５６】
これを成し遂げるために好ましい方法は、アクティブＸコントロールをロードした最初のブラウザインターフェイスウインドウを隠す及び／又は不能にし、また、インターネットユーザが作業及びインターネットを渡り歩き続けられるように当該同じウインドウの新たなコピーを作成する。最初のブラウザインターフェイスは隠され及び／又は不能にされるのが好ましいため、ライブラリファイル７４が最初のブラウザインターフェイスウインドウ、即ち、ライブラリファイル７４をロードしたウインドウを示す、不能にする、又は閉じるまで、アクティブＸコントロールは、閉じることができない。
【００５７】
上述した図８の方法は、例えば、一般にウエブページ１３０に含まれる、又はＢａｎｄ  Ｏｂｊｅｃｔとして、また、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ  ４．ｘ  Ｓｏｆｔｗａｒｅ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔとして＜Ｏｂｊｅｃｔ＞タグを用いて、ブラウザ７４にＢＩＯライブラリを標準のアクティブＸコントロールとしてロードするのが好ましい。これはブラウザ７２に初期化し、またＢＩＯライブラリ用のコードを含むライブラリファイル７４を走らせるよう指示する。
【００５８】
ＢＩＯライブラリが最初に初期化され、呼び出された時は、インターネットユーザが他のインターネットウエブサイト２１０、即ち、他のウエブページを訪れている間、アクティブＸコントロールと共にセッションを開いた状態に保つことにより、ＢＩＯライブラリを開いた状態に保つファンクションウインドウが作成される。ファンクションウインドウはまた、ＢＩＯライブラリのコピーを有しないブラウザウインドウが、ブラウザ７２へのＯＬＥインターフェイスにアクセスするために開くことを可能にする。
【００５９】
ファンクションウインドウを作成するために、最初のブラウザウインドウ（即ち、ＢＩＯライブラリをロードした当該ウインドウ）は、隠され及び／又は不能にされるのが好ましい。これは最初のブラウザインターフェイスウインドウのハンドルを結びつけること、ＢＩＯライブラリの操作を始めることにより成し遂げられる。ＢＩＯライブラリのハンドルから最初のブラウザインターフェイスウインドウのハンドルを復帰させるため、当該ファンクションの現在の値がデスクトップウインドウの１レベル下を示すまで、ＧｅｔＰａｒｅｎｔファンクション（Ｗｉｎｄｏｗファンクション）が連続的に呼び出される。例えば、ループ中で実行された“ｍ＿Ｈａｎｄｌｅ＝ＧｅｔＰａｒｅｎｔ（ｍ＿Ｈａｎｄｌｅ）”のような文を望まれる機能及び結果のために供してよく、ｍ＿Ｈａｎｄｌｅの値は、初めのうちはＢＩＯライブラリのハンドルのための値と等しく、結局、ハンドルを最初のブラウザインターフェイスウインドウに戻す。
【００６０】
次のステップは、インターネットユーザがファンクションウインドウを（例えばブラウザ７２を閉じることにより）閉じることができないように、最初のブラウザインターフェイスウインドウを隠す及び／又は不能にし、それによって、ブラウザインターフェイス２０から、ＢＩＯライブラリをアンロードさせ、また、ＢＩＯライブラリにより提供された機能を削除する。最初のブラウザインターフェイスをユーザから隠し、及び／又は当該ブラウザウインドウをユーザハンドルのイベントから不能にするために、ＷＭ＿ＳＨＯＷＷＩＮＤＯＷ、及び／又はＷＭ＿ＥＮＡＢＬＥメッセージ（両方ともＷｉｎｄｏｗｓコンテンツ）は、ブラウザウインドウを隠す及び／又は不能にするための値と共に、最初のブラウザインターフェイスウインドウに送られてよい。例えば、ＰｏｓｔＭｅｓｓａｇｅ又はＳｅｎｄＭｅｓｓａｇｅファンクション（存するＷｉｎｄｏｗｓファンクション）が、ブラウザウインドウハンドルと共に、最初のブラウザインターフェイスに、メッセージを送るために使用されてよい。他の例として、ＳｈｏｗＷｉｎｄｏｗ及びＥｎａｂｌｅＷｉｎｄｏｗファンクション（存するＷｉｎｄｏｗファンクション）が、同じ結果を達するために使用されてもよい。
【００６１】
ブラウザ７２を制御するためにポインタが作成される。ライブラリファイル７４において、ブラウザ７２にコマンドを送るいかなる機能又はオブジェクトによりアクセス可能にするために、ポインタは広範囲に格納されるのが好ましい。例えばＭｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒでは、ＩＷｅｂＢｒｏｗｓｅｒ、ＩＷｅｂＢｒｏｗｓｅｒ２、又はＩＷｅｂＢｒｏｗｓｅｒＡｐｐ  ＯＬＥインターフェイスが、ポインタを作成するのに使用されてよい。例えばＭｉｃｒｏｓｏｆｔ  Ｆｏｕｎｄａｔｉｏｎ  Ｃｌａｓｓを用いてこれをするには、ＢＩＯライブラリと通信するために使用され、また、ＢＩＯライブラリのインターネットサイト、即ち、アクティブＸコントロールをロードした当該インターネットサイト１３０へのポインタを検索するために、ブラウザ７２にとって入口点の役割を果たすＣＯｌｃｏｎｔｒｏｌクラスのＧｅｔＳｉｔｅＣｌｉｅｎｔ項が使用されてよい。前のステップにおいて戻ったＩＯｌｅＣｌｉｅｎｔクラスのＧｅｔＣｏｎｔａｉｎｅｒ項が、ＢＩＯライブラリのコンテナへのポインタを取得するために使用されてよい。前のステップにおいて戻ったＩＯｌｅＣｏｎｔａｉｎｅｒクラスのＱｕｅｒｙＩｎｔｅｒｆａｃｅ項が、ＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒインターフェイスへのポインタを取得するために使用されてもよい。ＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒインターフェイスは、ブラウザ７２により示された他のインターフェイスのいずれかを見つけるために使用されるのが好ましい。前のステップにおいてＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒクラスのＱｕｅｒｙＳｅｒｖｉｃｅ項は、ＢＩＯライブラリと呼ばれるブラウザ７２のバージョンにより示されたインターフェイスに従属するＩＷｅｂＢｒｏｗｓｅｒ、ＩＷｅｂＢｒｏｗｓｅｒ２、又はＩＷｅｂＢｒｏｗｓｅｒＡｐｐインターフェイスへのポインタを取得するために使用されてよい。
【００６２】
最後に、以前にファンクションウインドウを作成するために使用されたブラウザウインドウは隠され、及び／又は不能にされているため、インターネットユーザがウエブをサーフィンし続けるために使用する、即ち、種々の異なるインターネットサイトにアクセスし続けるためにしようする新たなブラウザウインドウが作成される。好ましくは、例えば当該ＯＬＥインターフェイスのＮａｖｉｇａｔｅ又はＮａｖｉｇａｔｅ２項を用いて、ＩＷｅｂＢｒｏｗｓｅｒ、ＩＷｅｂＢｒｏｗｓｅｒ２、又はＩＷｅｂＢｒｏｗｓｅｒＡｐｐ  ＯＬＥのいずれかが、新たなブラウザウインドウを作成するために使用される。他の例としては、ブラウザ７２がＮｅｗ  ＷｉｎｄｏｗコマンドやＯｐｅｎ  Ｉｎ  Ｎｅｗコマンド等のような新たなブラウザウインドウを開くためにブラウザが使用する場合があるいずれのコマンドに対応するＷＭ＿ＣＯＭＭＡＮＤメッセージが、ブラウザ７２に送られてもよい。新たなウインドウはまた、ブラウザ７２により提供されたＤｙｎａｍｉｃ  Ｄａｔａ  Ｅｘｃｈａｎｇｅ（ＤＤＥ）サポートを用いて開かれてもよい。
【００６３】
ＢＩＯライブラリはここで、種々のブラウザインターフェイスの特徴及び機能を追加／削除／変更、即ち、制御しなくてはならない。最初のステップは、本発明により制御されるべきブラウザウインドウのいずれか、又はブラウザが使用するウインドウ（即ち、子ウインドウ）のいずれかをサブクラス化することである。ＢＩＯウインドウメッセージハンドリングプロシージャは、最初のウインドウメッセージハンドリングプロシージャと置き換えられ、また、これよりＢＩＯ  Ｐｒｏｃｅｄｕｒｅとして参照される。
【００６４】
ひとたびブラウザウインドウ、又はその子のいずれがサブクラス化されたら、ＧｅｔＭｅｎｕファンクションを用いてブラウザウインドウメニューへのポインタを検索させることにより、サブクラスにメニューを追加することは可能である。ひとたびメニューハンドルへのポインタが得られたら、ＭｏｄｉｆｙＭｅｎｕ、ＡｐｐｅｎｄＭｅｎｕ、ＩｎｓｅｒｔＭｅｎｕ等のようなメニューファンクションが、ブラウザウインドウへ所望のメニューを追加するために使用されてよい。メニューに割り当てられたいずれのコマンドも、ＢＩＯウインドウをサブクラス化するために使用されたＢＩＯ  Ｐｒｏｃｅｄｕｒｅにより操作されなくてはならない。メニューを作成するために、ブラウザに含まれるいずれかと同じコマンド識別名は使用されてはならない。
【００６５】
インターフェイスオブジェクトツールバー４２が、標準のＷｉｎｄｏｗｓファンクションを用いて、ツールバー４２が追加されるべきウインドウのハンドルを検索することにより、ブラウザインターフェイス２０に追加されてもよい。典型的にウインドウは、ＢＩＯウインドウ又はＢＩＯウインドウの子であるフレームウインドウである。そしてウインドウがその親として、Ｆｒａｍｅ  Ｈａｎｄｌｅを用いて作成される。例えば、ダイアログバー（ツールバーのフォーム）をインターフェイスオブジェクト４０として追加するためには、ＣＤｉａｌｏｇＢａｒ（Ｍｉｃｒｏｓｏｆｔ  Ｆｏｕｎｄａｔｉｏｎ  Ｃｌａｓｓ）から引き出された、又はＣＤｉａｌｏｇＢａｒのオブジェクトが作成され、また、その作成方法はＦｒａｍｅ  Ｈａｎｄｌｅと呼ばれる。もし、例えば画像、ツールバー、ダイアログ等のようなリソースが使用されており、また、ブラウザがＢＩＯライブラリとして同じリソースをシェアしていないならば、ＢＩＯライブラリリソースからデータがロードされる前に、ブラウザのリソースがＢＩＯライブラリリソースと一時的に置き換えられる。ＢＩＯライブラリリソースは、そのあとブラウザの最初のリソースと置き換えられてよい。
【００６６】
新たなブラウザウインドウが開かれるに伴い、当該新たなウインドウにインターフェイスオブジェクト４０が追加されるのが望ましい。ユーザにより定義された機能を呼び出すＳｅｔＴｉｍｅｒ  Ｗｉｎｄｏｗｓファンクションを用いて、タイマーが作成されてもよく、また、当該機能は、ファンクションウインドウと同じクラス名を持つウインドウのためのデスクトップウインドウの全ての子を確認するために、ＦｉｎｄＷｉｎｄｏｗｓＥｘファンクションを（Ｗｉｎｄｏｗｓファンクション）使用する。まだ変更されていないブラウザウインドウ、即ち、インターフェイスオブジェクト４０を有しないブラウザウインドウのために、必要なハンドルが検索され、最初のＢＩＯウインドウに対してされたと同じ変更がされる。
【００６７】
最後に、インターネットユーザがブラウザ７２を閉じようと望むときに、ファンクションウインドウを除く全てのブラウザウインドウが閉じられているかが確定されなければならず、また、他の全てのウインドウが閉じられたならば、ファンクションウインドウも閉じられなければならない。これは、ＢＩＯメッセージハンドリングプロシージャのＷＭ＿ＣＬＯＳＥメッセージ（Ｗｉｎｄｏｗｓ定数）聞く、又はいくつのブラウザウインドウが開いているかを周期的に確定するタイマーを設定することにより成し遂げられる。最初のファンクションウインドウを閉じるためには、当該ウインドウにＷＭ＿ＣＬＯＳＥメッセージが送られてよい。
【００６８】
次に図９を参照して、本発明によるインターネットブラウザインターフェイス２０を制御及び表示する方法の他の実施形態が、全体を９００として図示される。
【００６９】
ステップ９１０、９２０、及び９３０は、上述した図６から８の形態と本質的には同じである。ステップ９４０において、新たなブラウザインターフェイスウインドウが作成され、そのあと最初のブラウザインターフェイスウインドウ隠され、及び／又は不能にされ、また、ファンクションウインドウとして参照される。プラグインは最初のブラウザインターフェイスウインドウ識別し、当該ウインドウを隠す、及び／又は不能にし、また、インターネットユーザにより使用されてよい新たなブラウザウインドウを作成する。ステップ９５０において、全てのブラウザウインドウがサブクラス化され、そのあとステップ９６０に示すように、全ての開いているウインドウに対して、ブラウザインターフェイスが制御されてよい。ステップ９６２において、本発明は新たなブラウザウインドウが開かれたかどうかを確定し、いずれの場合においても発明はステップ９６０に戻る。新たなブラウザインターフェイスウインドウが開かれていなければ、インターネットユーザがブラウザを閉じることを望んでいるかを確定すべくステップ９６２からステップ９６４へ移動する。ファンクションウインドウを閉じる前に、全てのウインドウが閉じられなければならず、これはステップ９６６において確定される。もし全てのウインドウが閉じられれば、ステップ９７０に示すようにファンクションウインドウは閉じられる。そうでなければステップ９６６はステップ９６４に戻る。
【００７０】
さらに本発明の他の形態においては、本発明はブラウザ７２を呼び出す機能を制御し（即ち、追加、削除、及び／又は変更する）、ユーザがプラグインをロードしたインターネットサイト１３０を去った後でもプラグイン機能を保持するためのプラグインを用いて、インターネットブラウザインターフェイスを制御する方法を提供する。
【００７１】
インターネットサイト１３０への接続を確立し、プラグインを呼び出すブラウザ７２に応答して、インターネットユーザのコンピュータ５０にブラウザプラグインがロードされたときに、ライブラリファイル７４は、ブラウザ７２の内部においてプラグイン用のコードがロードされるシェルを確立する。プラグインが閉じるときに、ライブラリファイル７４がアンロードすることをオペレーションシステム７０又はブラウザ７２から明確に指示されたならば、プラグインの外部であってライブラリファイル７４の内部に作成されたいかなるデータ、機能、又はオブジェクトも、ライブラリファイル７４がアンロードされたときに破棄される。ライブラリファイル７４がアンロードされることを防ぐために、ブラウザ７２がプラグインを閉じる指示を受けるまで、ブラウザ７２がプラグインを閉じることを防ぐ。もしプラグインが閉じるうよう指示されることがなければ、ライブラリファイル７４もまたアンロードするよう指示されることはない。これは、プラグインコードをロードした最初のブラウザウインドウを隠す及び／又は不能にすることにより、また、インターネットユーザがインターネットにアクセスし、渡り歩くために使用し続けるべく、当該同じウインドウの新たなコピーを作成することにより成し遂げることができる。最初のブラウザウインドウは隠され、及び／又は不能にされるのが好ましいため、ライブラリファイル７４が、プラグインをロードしたウインドウを示す、不能にする又は閉じることを選択するまで、プラグインは閉じられることができない。
【００７２】
例えば、標準プラグインとしてブラウザ７２に、ブラウザ７２プラグイン（即ち、ＢＩＯライブラリ）用のコードを含むライブラリファイル７４を初期化し、ロードするように指示するブラウザプラグインが、好ましくはウエブページ１１０（図１０参照）の＜Ｅｍｂｅｄ＞タグを用いてロードされる。
【００７３】
ＢＩＯライブラリが最初に初期化され呼び出された時は、最初のブラウザウインドウを隠し、及び／又は不能にすることにより、従ってプラグインと共にセッションが開かれた状態に保つことにより、ＢＩＯライブラリがアンロードされることを防ぐことにより、ファンクションウインドウが作成される。ファンクションウインドウは、開かれたＢＩＯライブラリのコピーを有しないブラウザウインドウが、Ｎｅｔｓｃａｐｅ  Ｎａｖｉｇａｔｏｒ及びＭｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒにより提供されるようなプラグイン用の内蔵Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅｓ（ＡＰＩｓ）（即ち、インターネットユーザがブラウザインターフェイスを通じて、プラグイン機能を介して使用可能になった機能）にアクセスすることを可能にする。
【００７４】
ファンクションウインドウは、最初にブラウザ７２によりプラグインが呼び出されたときに、（プラグインが属する）最初のブラウザウインドウを不能にし、又は隠すことにより作成されるのが好ましい。これをするために、プラグインは最初に、最初のブラウザウインドウのハンドルを識別しなくてはならない。ＮＰＷｉｎｄｏｗ構造のウインドウ項が、ＮＰＰ＿Ｓｅｔウインドウファンクションへの第２の変数として、ブラウザ７２からＢＩＯライブラリにパスされ、プラグインウインドウ（ＮＰＷｉｎｄｏｗ及びＮＰＰ＿ＳｅｔＷｉｎｄｏｗは、プラグイン用のＮｅｔｓｃａｐｅ及びＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ  ＡＰＩの一部である）のハンドルである。このウインドウ項から最初のブラウザウインドウハンドルを検索するために、当該機能の現在値がデスクトップウインドウの１レベル下を示すまで、ＧｅｔＰａｒｅｎｔファンクション（Ｗｉｎｄｏｗｓファンクション）が呼び出し続けられる。例えば、ループ中で実行された“ｍ＿Ｈａｎｄｌｅ＝ＧｅｔＰａｒｅｎｔ（ｍ＿Ｈａｎｄｌｅ）”のような文を望まれる機能及び結果に供してよく、ここでｍ＿Ｈａｎｄｌｅの値は、最初はＮＰＷｉｎｄｏｗのハンドルのための値に等しく、結局、ハンドルを最初のブラウザインターフェイスウインドウに戻す。
【００７５】
インターネットユーザがファンクションウインドウを閉じることができず、ＢＩＯライブラリが破棄されないように、最初のブラウザウインドウは隠され、及び／又は不能にされる。ユーザから最初のブラウザウインドウを隠し、及び又はユーザハンドルのイベントから当該ウインドウを不能にするために、ＷＭ＿ＳＨＯＷＷＩＮＤＯＷ、及び／又はＷＭ＿ＥＮＡＢＬＥメッセージ（両方ともＷｉｎｄｏｗｓコンテンツ）が、当該ブラウザウインドウを隠す及び／又は不能にする値と共に最初のブラウザウインドウに送られてよい。これは、例えばブラウザウインドウハンドルを用いて最初のブラウザウインドウへメッセージを送るＰｏｓｔＭｅｓｓａｇｅ又はＳｅｎｄＭｅｓｓａｇｅファンクションを用いることにより成し遂げられる。他の例としては、同じ結果を達成するためにＳｈｏｗＷｉｎｄｏｗ及びＥｎａｂｌｅＷｉｎｄｏｗファンクション（Ｗｉｎｄｏｗｓファンクション）が使用されてよい。
【００７６】
最終のステップは、最初のブラウザウインドウが隠され、及び／又は不能にされた後に、ウエブをサーフし続けられるようにインターネットユーザが使用する新たなブラウザウインドウを作成する。これは、例えば＿ｎｅｗ、＿ｂｌａｎｋに設定されたターゲットパラメータ、又はまだ存在しないウインドウ名と共に、次のＮｅｔｓｃａｐｅ及びＩｎｔｅｒｎｅｔＥｘｐｌｏｒｅｒプラグインＡＰＩファンクションのいずれかを呼び出すことにより成し遂げられる：ＮＰＮ＿ＧｅｔＵＲＬ、ＮＰＮ＿ＰｏｓｔＵＲＬ、ＮＰＮ＿ＧｅｔＵＲＬＮｏｔｉｆｙ、ＮＰＮ＿ＰｏｓｔＵＲＬＮｏｔｉｆｙ。上記ファンクションのＮＰＰ変数は、ブラウザ７２により、ファンクションウインドウ用のプラグインに提供されたＮＰＰ構造である。これを行う別の方法は、例えばＮｅｗ  Ｗｉｎｄｏｗコマンド又はＯｐｅｎ  Ｉｎ  Ｎｅｗ  Ｗｉｎｄｏｗコマンドのような、ブラウザ７２が新たなウインドウを開くために使用することができるコマンドに通信するブラウザ７２にＷＭ＿ＣＯＭＭＡＮＤメッセージを送ることである。新たなウインドウが、ブラウザ７２により提供されたＤｙｎａｍｉｃ  Ｄａｔａ  Ｅｘｃｈａｎｇｅ（ＤＤＥ）サポートを使用することにより開かれてもよい。ＮＰＮ＿ＧｅｔＵＲＬ、ＮＰＮ＿ＰｏｓｔＵＲＬ、ＮＰＮ＿ＧｅｔＵＲＬＮｏｔｉｆｙ、ＮＰＮ＿ＰｏｓｔＵＲＬＮｏｔｉｆｙ、及びＮＰＰ構造は、プラグイン用のＮｅｔｓｃａｐｅ及びＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ  ＡＰＩであり、また、ＷＭ＿ＣＯＭＭＡＮＤはＷｉｎｄｏｗｓ定数である。
【００７７】
ＢＩＯプラグインは、ここでブラウザ７２の特徴及び機能を制御、即ち、追加／削除／変更してよい。最初のステップは、本発明により制御されるべきブラウザウインドウのいずれか又はブラウザが使用するウインドウのいずれか（集合的にはＢＩＯウインドウ）をサブクラス化する。
【００７８】
ブラウザウインドウ又はそれらの子がサブクラス化された後に、ＧｅｔＭｅｎｕファンクション（Ｗｉｎｄｏｗｓファンクション）を用いて、ブラウザウインドウメニューへポインタを検索することにより、ブラウザインターフェイス２０にメニューが追加されてよい。ひとたびメニューハンドルのポインタが得られたら、ＭｏｄｉｆｙＭｅｎｕ、ＡｐｐｅｎｄＭｅｎｕ、ＩｎｓｅｒｔＭｅｎｕ等のようなメニューファンクションが、ブラウザウインドウに所望のメニューを追加するために使用されてよい。メニューに割り当てられたいずれのコマンドも、ＢＩＯウインドウをサブクラス化するために使用されたＢＩＯメッセージハンドリングプロシージャによりハンドルされなければならないが、ここでブラウザ７２に含まれるメニューを作成するための同じコマンド認識を使用しなくてよい。
【００７９】
他の又は追加の例として、インターフェイスオブジェクトツールバー４２が、ツールバー４２が追加されるウインドウのハンドル（このあとＦｒａｍｅ  Ｈａｎｄｌｅとして参照する）を、標準のウインドウズファンクションを用いて検索することによりブラウザインターフェイス２０に追加されてよく、ここで一般的にウインドウは、ＢＩＯウインドウ又はＢＩＯウインドウの子であるフレームウインドウである。そしてＦｒａｍｅ  Ｈａｎｄｌｅをその親として用いることによりウインドウが作成される。例えば、（ツールバーのフォームである）ダイアログバーをインターフェイスオブジェクト４０として追加するために、ＣＤｉａｌｏｇＢａｒ（Ｍｉｃｒｏｓｏｆｔ  Ｆｏｕｎｄａｔｉｏｎ  Ｃｌａｓｓ）から引き出された、又はＣＤｉａｌｏｇＢａｒのオブジェクトが作成されてよく、また、その作成方法はＦｒａｍｅ  Ｈａｎｄｌｅと呼ばれる。もし、例えば画像、ツールバー、ダイアログ等のようなリソースが使用されており、ブラウザ７２がＢＩＯライブラリと同じリソースをシェアしていないならば、ＢＩＯライブラリリソースからのデータがロードされる前に、ブラウザのリソースは一時的にＢＩＯライブラリリソースと置き換えられる。そしてＢＩＯライブラリリソースは、ブラウザの最初のリソースと置き換えられる。
【００８０】
新たなブラウザウインドウが開かれるにつれて、インターフェイスオブジェクト４０は、これらの新たなウインドウに追加されてよい。ファンクションウインドウと同じサブクラス名のウインドウためのデスクトップウインドウの全ての子を確認するために、ＦｉｎｄＷｉｎｄｏｗＥｘファンクション（Ｗｉｎｄｏｗｓファンクション）を用いるユーザ定義のファンクションを呼び出すＳｅｔＴｉｍｅｒ（Ｗｉｎｄｏｗｓファンクション）を用いてタイマーを作成することにより成し遂げられる。変更されたインターフェイスをまだ持たない、即ち、インターフェイスオブジェクト４０を含まない当該新たなウインドウのために、必要なハンドルが検索され、当該ウインドウに最初のＢＩＯウインドウに対してされたと同じ変更がなされる。
【００８１】
最後に、インターネットユーザがブラウザを閉じることを望むときに、ファンクションウインドウを除く全てのブラウザウインドウが閉じられているかが確認されなければならなく、もし、閉じられていれば、ファンクションウインドウは閉じられてよい。これは、例えばＢＩＯウインドウメッセージプロシージャのＷＭ＿ＣＬＯＳＥメッセージ（Ｗｉｎｄｏｗｓファンクション）を聞くことにより、又は開かれているブラウザウインドウの数を周期的に確認するタイマーを設定することにより成し遂げられる。最初のファンクションウインドウは、ＷＭ＿ＣＬＯＳＥメッセージを送ることにより閉じられてよい。
【００８２】
本発明によれば、ＢＩＯライブラリ（即ち、プラグイン）がロードされ、その機能はブラウザインターフェイス２０に自動的に供される、即ち、ユーザに特定のインターネットサイトにアクセスさせること、即ち、プラグインを呼び出すウエブページをサーフすることを必要としない。例えば、Ｎｅｔｓｃａｐｅは、ウインドウズレジストリにＡｕｔｏｍａｔｉｏｎ  Ｓｔａｒｔｕｐとして認識される鍵を有する。起動に応じて、ＮｅｔｓｃａｐｅはＡｕｔｏｍａｔｉｏｎ  Ｓｔａｒｔｕｐ鍵に記載された全てのＯＬＥコントロールをロードする。オートスタートアップキーのライブラリファイル７４（並びにインターフェイスオブジェクト４０を規定するＢＩＯライブラリ及びプラグイン）へのリファレンス又は呼び出しを置くことにより、ライブラリファイルはユーザがＮｅｔｓｃａｐｅブラウザを起動するたびにロードされてよい。ライブラリファイル７４は、ブラウザインターフェイス２０におけるインターフェイスオブジェクト４０の実例及び所定のインターネットサイト１３０への接続を確立するブラウザ７２への指示を作成するための指示であることを含んでよい。この技術を用いることにより、ユーザはＢＩＯライブラリをロードするために特定のインターネットサイト１３０を訪れる選択をしなくてもよい。ライブラリファイル７４は、ブラウザインターフェイス２０を介して表示及びアクセスするために、ブラウザ７２にプラグインがロードされるまでは、少なくとも開かれた状態を保つ必要がある。これをする１つの方法は、ＮｅｔｓｃａｐｅがＡｕｔｏｍａｔｉｏｎ  Ｓｔａｒｔｕｐ鍵に記載されたＯＬＥコントロールをアンロードするときに、大きなリファレンス番号を有しているためライブラリファイル７４がアンロードされないように、ライブラリファイル７４と対応づけられたリファレンスカウンタを増やすことである。
【００８３】
ライブラリファイル７４は、タイマー又はループを用いてＮｅｔｓｃａｐｅ  ＤＤＥ  Ｓｅｒｖｅｒを周期的に探すために、ＤＤＥを用いたプラグインとしてロードされてよい。Ｎｅｔｓｃａｐｅ  ＤＤＥ  Ｓｅｒｖｅｒから、ブラウザ７２により返答が受け取られるときに、Ｎｅｔｓｃａｐｅはコマンドを受け取る準備ができ、プラグインと共にロードされる。ＤＤＥはそのあと、ＷＷＷ＿ＯＰＥＮＵＲＬのようなコマンドを、ブラウザ７２に送るために使用されてよく、ここで説明されたようにプラグインをロードする起因となる。
【００８４】
ＢＩＯライブラリに使用されるＮｅｔｓｃａｐｅプラグインウインドウを隠す別の方法は、タスクバー（即ち、Ｗｉｎｄｏｗｓの“Ｓｔａｒｔ”ボタンが配されているところ）から削除し、認識できる画面上から消すことである。タスクバーから削除する１つの方法は、ＳｅｔＷｉｎｄｏｗＬｏｎｇを呼び出し、プラグインウインドウのウインドウスタイルを、ツールボックスウインドウに変えることである。ツールボックスウインドウは、タスクバーには現れない。Ｎｅｔｓｃａｐｅプラグインウインドウは、ＭｏｖｅＷｉｎｄｏｗを呼び出し、ユーザのデスクトップに見える範囲に調整することにより、画面外に配されてもよい。
【００８５】
最初のブラウザメッセージハンドリングプロシージャと置き換えるために使用されたＢＩＯウインドウメッセージハンドリングプロシージャは、メッセージが指定しているのはどのウインドウであるか、また、ひとたびＢＩＯウインドウメッセージハンドリングプロシージャが当該メッセージを受け取ったら、メッセージを用いて何をすべきかを知らなくてはならない。これをする好ましい方法は、１つの情報を他とリンクさせるマップを作成することである。本発明では、ウインドウハンドルと、当該ウインドウへの重要な情報を含む構造とをリンクさせるマップが作成されるのが好ましい。例えばＢＩＯライブラリが、インターフェイスオブジェクト４０を新たなブラウザウインドウに追加するときに、ＢＩＯウインドウのハンドルと、当該ウインドウにとって有効である情報を含む構造とをリンクさせる新たな入口がマップに作成される。構造に含まれる情報の一部の１つは、ＢＩＯウインドウにとって、ブラウザの最初のウインドウメッセージハンドリングプロシージャであることが好ましい。もしＢＩＯウインドウメッセージハンドリングプロシージャが、メッセージをどのように処理するかを知らない場合に、メッセージをブラウザの最初のウインドウメッセージハンドリングプロシージャに渡すことができるように、ブラウザの最初のメッセージハンドリングプロシージャを営繕することは必要である。
【００８６】
ＢＩＯメッセージハンドリングプロシージャによりメッセージが受信されたとき、プロシージャに渡された最初の変数が、メッセージを受信したウインドウのハンドルである。当該ウインドウに特有の全てのデータを含む構造を検索するために、ウインドウハンドルを鍵として使用することによりマップの検査が行われる。戻った構造は、最初のウインドウメッセージハンドリングプロシージャのような格納された全てのウインドウ特有の情報を含む。
【００８７】
ブラウザインターフェイス２０を制御するときに、即ち、ブラウザインターフェイスに追加し、ブラウザインターフェイスから削除し、ブラウザインターフェイスを変更するときに、本発明はブラウザ７２がどのように機能するかを変える。インターネットユーザがブラウザを用いてできるほとんどのことは、ブラウザのウインドウ又は子ウインドウにメッセージを送ることにより機能する。メッセージを送るオブジェクト又はウインドウは、メニュー、ボタン、コンボボックス、及びインターネットユーザが直接影響させることができる他のほとんどのこと、即ち、インターフェイス制御を含む。例えばメッセージは、１）メッセージを受け取ろうとするウインドウのハンドル；２）メッセージのｍｓｇ値；３）ｗＰａｒａｍ、誰の使用が通常、ｍｓｇ値に依存しているか；及び４）ＩＰａｒａｍ、誰の値が通常、ｍｓｇ値の値に依存しているか、の４つの構成要素に分解することができる。
【００８８】
例えば、ブラウザのウインドウのボタンをクリックすることは、Ｗｉｎｄｏｗｓ定数であり、ブラウザウインドウのウインドウメッセージハンドリングプロシージャに対するｍｓｇ値であるＷＭ＿ＣＯＭＭＡＮＤを含むメッセージを送る可能性がある。当該メッセージのｗＰａｒａｍ変数の下位の２バイトは、ここでどのボタンが押されたかを識別するために使用される数になる。
【００８９】
ブラウザのウインドウ又は子ウインドウをサブクラス化することにより、上述したようにユーザがインターフェイスコントロールと双方向通信するときに送られたいずれかのメッセージが遮断されてよい。ひとたびメッセージが遮断されたら、ＢＩＯウインドウメッセージハンドリングプロシージャは、それを翻訳し、それに対して反応してよい。インターフェイスコントロールの機能が同じ状態に保たれるべきであれば（即ち、本発明により追加されず、削除されず、変更されない）、メッセージは、最初のウインドウメッセージハンドリングプロシージャに押し戻されてよい。このように、ブラウザ７２に存するインターフェイスコントロールの全ては、仮想的に制御される。加えて、インターフェイスコントロールはブラウザインターフェイス２０に追加されてよく、また、コマンド識別を割り当てられてよい。ＢＩＯウインドウメッセージハンドリングプロシージャは、ここでｗＰａｒａｍを翻訳し、追加されるべきインターフェイスコントロールの機能に供する。加えて、インターフェイスコントロールは、ブラウザインターフェイス２０に追加されてよく、また、（ｗＰａｒａｍに渡された）コマンド識別にアサインされてよい。従って、当該コマンドがブラウザウインドウの最初のメッセージハンドリングプロシージャに渡ることを防ぐことができる。
【００９０】
詳細に上記で説明されたように、本発明の種々の形態を用いて、インターネットユーザはユーザ定義のインターフェイルコントロールを有するブラウザインターフェイス２０を作成してもよい。そして、当該ブラウザインターフェイス２０用のウインドウの親を、サブクラス化されたウインドウに設定することにより、新たな（即ち、制御された）ウインドウからのどのメッセージも、ＢＩＯウインドウメッセージハンドリングプロシージャにおいて操作される。これは、ブラウザインターフェイス２０に、ツールバー、ダイアログバー、フローティングダイアログ等のようないずれのインターフェイスオブジェクト４０を追加するために使用することができる。
【００９１】
以下において、限定しない例である、本発明を更に説明するための限定しない実例を供する。インターネットユーザがインターネットを渡り歩いている間、変わらず残っているプラグイン又はアクティブＸコントロールは、ユーザにインターネットにあるデータベースから“ブックマーク”や“お気に入り”をダウンロードできるようにするインターフェイスオブジェクト４０を、ブラウザインターフェイス２０に追加してもよい。インターフェイスは、直接ブラウザインターフェイスに追加され、プラグイン又はアクティブＸコントロールにより提供されたインターフェイスオブジェクト４０を用いて、ユーザに、当該ユーザがダウンロードした“ブックマーク”や“お気に入り”を訪れることを許容する。このインターフェイスオブジェクト４０は、現存するブラウザの“ブックマーク”や“お気に入り”、メニューアイテム及びツールバーと同様の機能として役立つ。有益な差異は、ブックマークがインターネット上のデータベースからダウンロードされるため、プラグイン又はアクティブＸコントロールをロードする能力を持ついずれのコンピュータのブラウザ上で、ユーザは、当該ユーザらのブックマークにアクセスする。
【００９２】
本発明は、プラグイン又はアクティブＸコントロールを介して、ブラウザ２０上の“ブックマーク”や“お気に入り”に含まれる広告“リンク”をおくことにより、収益を生むために使用することもできる。消費者をターゲットにするには、例えば、年齢、性別、収入、人種、教育、及び地理的所在のようなデータベースに格納された情報、並びにお気に入りやブックマークのような好み、又はブラウザ７２に存するもしくはデータベースに格納された他の好みに基づけばよい。
【００９３】
ユーザがインターネットを渡り歩いている間、変わらず残っているプラグイン又はアクティブＸコントロールは、インターネット上に配されたデータベースから、ユーザの“アドレス帳”をダウンロードすることを可能にするインターフェイスオブジェクト４０を、ブラウザインターフェイス２０に追加するために使用されてよい。そのようなインターフェイスオブジェクト４０は、ブラウザインターフェイス２０のインターフェイスに直接追加されてよく、また、ユーザに  “アドレス帳”に記載された知り合いの格納された情報を検索すると同様に、電子メールを送ることを許可する。
【００９４】
本発明はまた、プラグイン又はアクティブＸコントロールのインターフェイスオブジェクト４０上にある“アドレス帳”に含まれる広告“リンク”を入れることに基づいて、収益を得るために使用されてもよい。消費者をターゲットにするには、例えば、年齢、性別、収入、人種、教育、及び地理的所在のようなデータベースに格納された情報、並びにお気に入りやブックマークのような好み、又はブラウザ７２に存するもしくはデータベースに格納された他の好みに基づけばよい。
【００９５】
本発明は、ユーザが検索できるウエブページを訪れなければならない代わりに、ユーザがブラウザに直接、検索を打つことができるエディットボックスをブラウザインターフェイス２０上に追加するために、プラグイン又はアクティブＸコントロールを使用してもよい。
【００９６】
加えて、変わらず残っているプラグイン又はアクティブＸコントロールは、たとえユーザは異なるウエブサイトをサーフしていたとしても、好みのウエブサイトから情報をポーリングし、又は周期的に探すことができる。好みのウエブサイトがポーリングされる間、当該好みのウエブサイトは、メールの受け取りの即時通知、株価の連続更新、又は、例えばヘッドラインニュースの配信、選択した好きなスポーツチームのスポーツスコア、同様な他の時間に敏感な情報についての更新された情報を、ユーザのブラウザ上のインターフェイスオブジェクトに送ることができる。当該好みのウエブサイトは、もし望むのであれば、使用量がピークの間、ポーリングの時間間隔を長くすることにより、当該好みのウエブサイトにおけるトラヒックを制御できるように、ポーリングのタイミングを制御することができる。
【００９７】
ライブラリファイルにより作成されたシェルは、ここで説明したように、どのようなアプリケーションが共に走らすことができるかという環境、又は表示された情報であるため、本発明を用いて、いずれの情報やプログラムもブラウザのインターフェイスに追加することができる。シェルは、ブラウザインターフェイス、ブラウザのコンテンツ、及びシェルのコンテンツ自身からですら独立している。要するにシェルは、極端に言えばユーザから見える必要がなく、順応することができる機能の一部である。従って、シェルは空であってよく、また、コンテンツをウエブサイトから受け取り、又はシェルはプラグインを取得してよく、若しくはシェルは新たなライブラリファイルを取得し、シェルがウエブサイト又はユーザから新たなコンテンツを受け取る間、“オンザフライ”で情報を解析することを学んでよい。従って、本発明は、ユーザが他のサイトを訪れている間であっても、望む情報を好みのサイトからユーザへ案内する重要な機会を提供する。勿論、ウエブサイトにより本発明のカスタマイズできるインターフェイスを介して提供されるユーザ特有の機能が多くなればなるほど、ウエブサイトが生じさせることができるユーザの信頼は大きなものとなる。
【００９８】
このように、本発明の基本的な新しい特徴を、好ましい形態を用いて示し、説明し、指摘したが、種々の省略及び代用並びに変更が、本発明の技術的範囲に含まれることは理解されるであろう。ここに添付した請求の範囲により示された事項にのみ本発明は限定される。
【図面の簡単な説明】
図面において、単なる実例ではあるが、同様の参照符号は複数の図面を通して同様の構成を示す。
【図１】  従来のインターネットブラウザインターフェイスの概要を図示する。
【図２】  ブラウザツールバーにおけるインターフェイスオブジェクトを含む、本発明の一実施形態によるブラウザインターフェイスの概要を図示する。
【図３】  インターフェイスオブジェクトを含むインターフェイスツールバーを有する本発明の一実施形態によるブラウザインターフェイスの概要を図示する。
【図４】  複数のインターフェイスオブジェクトを含むインターフェイスツールバーを有する本発明の一実施形態によるブラウザインターフェイスの概要を図示する。
【図５】  本発明の一実施形態によるインターネットブラウザインターフェイスを制御する方法のフローダイアグラムを図示する。
【図６】  本発明の種々の実施形態によるインターネットブラウザを制御及び表示する方法のフローダイアグラムを図示する。
【図７】  本発明の種々の実施形態によるインターネットブラウザを制御及び表示する方法のフローダイアグラムを図示する。
【図８】  本発明の種々の実施形態によるインターネットブラウザを制御及び表示する方法のフローダイアグラムを図示する。
【図９】  本発明の種々の実施形態によるインターネットブラウザを制御及び表示する方法のフローダイアグラムを図示する。
【図１０】  本発明を実行することができる、インターネットに接続されたコンピュータの概略ブロックダイアグラムを図示する。
【図１】
0004545317.tif 000002
【図２】
0004545317.tif 000003
【図３】
0004545317.tif 000004
【図４】
0004545317.tif 000005
【図５】
0004545317.tif 000006
【図６】
0004545317.tif 000007
【図７】
0004545317.tif 000008
【図８】
0004545317.tif 000009
【図９】
0004545317.tif 000010
【図１０】
0004545317.tif 000011