(57)【要約】サポートされたマーチャント・インターネットサイトでのオンライン・ショッピングを簡便化するショッピング・アシスタント機能を提供するための、インターネット・ブラウザ・インターフェイス（３０）の変更方法。本発明に準拠して作成されたウォレットが或る所定のフィールド名で格納されている種々のユーザデータを中に含むデータベースを備える。サポートされたマーチャント・データファイルによって複数のサポートされたマーチャントが特定され、これによって、買物客がサポートされたマーチャント・ウエブサイト（２６）へ何時ナビゲーションを行ったかの検出が可能となる。個々のサポートされたマーチャントについて、ウォレットと接続して使用する事が出来るルールおよびマッピングファイルが作成され、ウォレット内のユーザ供給情報がマーチャントのチェックアウト・ウエブページ内の対応するフィールドと対応づけられる。ユーザがサポートされたマーチャント・ウエブサイトへナビゲーションを行って、そのマーチャントから商品および／またはサービスの購入を希望する時、上記ウォレットによってマーチャントのチェックアウト・ウエブページへの記入が行われ、それによってオンライン・ショッピング、特に、チェックアウト処理の単純化が行われる。
2005508035.tif 000002
【特許請求の範囲】
【請求項１】
インターネット・ブラウザをインストールしたコンピュータを所有する買物客が、サポートされたマーチャント・ウエブサイトでのオンライン・ショッピングを簡便化する方法であって、
（ａ）ショッピング・アシスタント・ボタンを前記インターネット・ブラウザのツールバーに追加するコンピュータ・コードを伝送するステップと、
（ｂ）前記買物客から予め受け取っている第１セキュリティ保護キーによりセキュリティ保護処理を施した買物客用のウォレットをサーバ上のデータベース内に作成するステップと、
（ｃ）前記買物客から第２セキュリティ保護キーを受け取るステップと、
（ｄ）前記第１セキュリティ保護キーと前記第２セキュリティ保護キーとを比較するステップと、
（ｅ）前記第１セキュリティ保護キーと前記第２セキュリティ保護キーとが同一であれば、前記コンピュータへ前記ウォレットを伝送するステップと、
を備える、方法。
【請求項２】
サポートされたマーチャント・ルールとマッピングファイルとを前記サポートされたマーチャントに提供するステップを更に備え、
前記ステップ（ａ）が、前記ウォレットと、前記サポートされたマーチャント・ルールおよびマッピングファイルとを用いて前記サポートされたマーチャント・ウエブサイトのチェックアウト・ウエブページに自動的に記入を行うコンピュータ・コードを伝送するステップを更に備える、請求項１に記載の方法。
【請求項３】
前記ショッピング・アシスタント・ボタンがプルダウン・メニューを備える、請求項１に記載の方法。
【請求項４】
前記ステップ（ｂ）が、
前記インターネット・ブラウザにより表示する対象ウエブページを伝送するステップと、
前記ウエブページで前記買物客により入力された買物客データを受け取るステップと、
前記データベース内に前記買物客用のウォレットとして前記買物客データの少なくとも一部を格納するステップと、
を備える、請求項１に記載の方法。
【請求項５】
前記ステップ（ａ）が、前記インターネット・ブラウザに行わせるナビゲーションの行き先を示す個々のインターネット・サイトのインターネットアドレスをインターセプトすることにより、前記インターネット・ブラウザの前記インターネットナビゲーションをモニタするコンピュータ・コードを伝送するステップを更に備える、請求項１に記載の方法。
【請求項６】
前記サポートされたマーチャント用のサポートされたマーチャント・ルールとマッピングファイルとを提供するステップを更に備え、
前記ステップ（ａ）が、前記ウォレットと、前記サポートされたマーチャント・ルールおよびマッピングファイルとを用いて、前記サポートされたマーチャント・ウエブサイトのチェックアウト・ウエブページに自動的に記入を行うコンピュータ・コードを伝送するステップを更に備える、
請求項５に記載の方法。
【請求項７】
前記サポートされたマーチャント用のサポートされたマーチャント・ルールとマッピングファイルとを提供するステップを更に備え、
前記ステップ（ａ）が、マーチャント・ウエブサイトがサポートされたマーチャント・ウエブサイトであるかどうかを判断するコンピュータ・コードを伝送するステップを更に備える、
請求項１に記載の方法。
【請求項８】
前記ステップ（ａ）が、前記インターネット・ブラウザに行わせるナビゲーションの行き先を示す個々のインターネット・サイトのインターネットアドレスと、前記サポートされたマーチャント・データファイルとを比較することにより、マーチャント・ウエブサイトがサポートされたマーチャント・ウエブサイトであるかどうかを判断するステップを更に備える、請求項７に記載の方法。
【請求項９】
前記インターネット・ブラウザが、サポートされたマーチャント・ウエブサイトを閲覧している時、前記コンピュータ・コードが前記ショッピング・アシスタント・ボタン用インジケータを提供する、請求項７に記載の方法。
【請求項１０】
前記ステップ（ａ）が、前記ブラウザが受け取った個々のウエブページをインターセプトし、前記インターセプトされたウエブページで提供されるｈｔｍｌコードとＨＴＴＰ要求ヘッダとによりウエブページの種別を判別するコンピュータ・コードを伝送するステップを更に備える、請求項１に記載の方法。
【請求項１１】
前記ステップ（ｅ）がセキュリティ・クッキーを前記コンピュータへ伝送するステップを備える、請求項１に記載の方法。
【請求項１２】
インターネット・ブラウザによりコンピュータ・ディスプレイに表示可能なインターネット・ブラウザ・インターフェイスであって、
ツールバーと、
前記ツールバー内のショッピング・アシスタント・ボタンと
を備え、前記ショッピング・アシスタント・ボタンが
前記インターネット・ブラウザに行わせるナビゲーションの行き先を示す個々のインターネット・サイトのインターネットアドレスをインターセプトし、
前記インターネット・ブラウザに行わせるナビゲーションの行き先を示すウエブサイトが、サポートされたマーチャント・ウエブサイトであるかどうかを判断し、
前記ウエブサイトがサポートされたマーチャント・ウエブサイトであれば、ウォレットと、サポートされたマーチャント・ルールおよびマッピングファイルとを用いて、前記サポートされたマーチャント・ウエブサイトのチェックアウト・ウエブページに自動的に記入を行う
ための、前記コンピュータのプロセッサを用いて実行可能なコンピュータ・コードにより規定される、インターネット・ブラウザ・インターフェイス。
【請求項１３】
前記インターネット・ブラウザに行わせるナビゲーションの行き先を示す個々のインターネット・サイトのインターネットアドレスと、サポートされたマーチャント・データファイルとを比較することにより、前記インターネット・ブラウザに行わせるナビゲーションの行き先を示すウエブサイトが、サポートされたマーチャント・ウエブサイトであるかどうかを前記判断ステップにより判断するステップを備える、請求項１２に記載のインターネット・ブラウザ・インターフェイス。
【請求項１４】
前記ショッピング・アシスタント・ボタンがプルダウン・メニューを備える、請求項１２に記載のインターネット・ブラウザ・インターフェイス。
【請求項１５】
ツールバーと前記ショッピング・アシスタント・ボタンとを前記インターネット・ブラウザ・インターフェイスに追加する前記コンピュータ・コードが前記プロセッサを用いて更に実行可能である、請求項１２に記載のインターネット・ブラウザ・インターフェイス。
【請求項１６】
サポートされたマーチャント・ウエブサイトへのナビゲーションを前記インターネット・ブラウザに行わせる時、前記ショッピング・アシスタント・ボタンがインジケータを提供する、請求項１２に記載のインターネット・ブラウザ・インターフェイス。
【請求項１７】
前記ブラウザが受け取った個々のウエブページをインターセプトし、前記インターセプトされたウエブページで提供されるｈｔｍｌコードとＨＴＴＰ要求ヘッダとによりウエブページの種別を判別する事が、前記コンピュータ・コードが前記プロセッサを用いてさらに実行可能である、請求項１２に記載のインターネット・ブラウザ・インターフェイス。
【請求項１８】
インターネット・ブラウザを備えたコンピュータを所有する買物客がオンライン・ショッピングを簡便化するためのシステムであり、
前記システムがサーバを備え、前記サーバが、
データベースを有するデータ格納装置と、
ソフトウェアを用いて実行可能なプロセッサとを備え、
前記ソフトウェアが、
ショッピング・アシスタント・ボタンを前記インターネット・ブラウザのツールバーに追加するショッピング・アシスタント用コンピュータ・コードを伝送し、
第１セキュリティ保護キーを含むウォレット・データを前記買物客から受け取り、
前記第１セキュリティ保護キーによりセキュリティ保護処理を施した前記買物客用のウォレットを前記データベース内に作成し、
前記買物客から第２セキュリティ保護キーを受け取り、
前記第１セキュリティ保護キーと前記第２セキュリティ保護キーとを比較し、
前記第１セキュリティ保護キーと第２セキュリティ保護キーとが同一であれば、前記コンピュータへ前記ウォレットを伝送する
ためのソフトウェアであるように構成される、システム。
【請求項１９】
前記サーバがセキュリティ保護処理を施したサーバである、請求項１８に記載のシステム。
【請求項２０】
前記買物客が、サポートされたマーチャント・ウエブサイトへのナビゲーションを前記インターネット・ブラウザに行わせた時、サポートされたマーチャント・ルールとマッピングファイルとを提供するソフトウェアを用いて前記プロセッサがさらに実行可能であり、
前記ショッピング・アシスタントコードが、前記ウォレットと、サポートされたマーチャント・ルールおよびマッピングファイルとを用いて、前記サポートされたマーチャント・ウエブサイトのチェックアウト・ウエブページに自動的に記入を行う、
請求項１８に記載のシステム。
【請求項２１】
インターネット・ブラウザをインストールしたコンピュータを所有する買物客が、サポートされたマーチャント・ウエブサイトでのオンライン・ショッピングを簡便化する方法であって、
前記方法が、ショッピング・アシスタント・ボタンを前記インターネット・ブラウザに追加するコンピュータ・コードを伝送するステップを備え、
前記コンピュータ・コードが、
前記インターネット・ブラウザに行わせるナビゲーションの行き先を示す個々のインターネット・サイトのインターネットアドレスをインターセプトし、
前記インターネット・ブラウザに行わせるナビゲーションの行き先を示すウエブサイトが、サポートされたマーチャント・ウエブサイトであるかどうかを判断し、
前記ウエブサイトがサポートされたマーチャント・ウエブサイトであれば、ウォレットと、サポートされたマーチャント・ルールおよびマッピングファイルとを用いて、前記サポートされたマーチャント・ウエブサイトのチェックアウト・ウエブページに自動的に記入を行う、
方法。
【請求項２２】
前記伝送するステップが、前記インターネット・ブラウザのショッピング・アシスタント・ボタンとツールバーとを追加するコンピュータ・コードを伝送するステップを更に備える、請求項２１に記載の方法。
【請求項２３】
サポートされたマーチャント・ウエブサイトへのナビゲーションを前記インターネット・ブラウザに行わせる時、前記ショッピング・アシスタント・ボタンがインジケータを更に提供する、請求項２１に記載の方法。
【請求項２４】
前記インターネット・ブラウザに行わせるナビゲーションの行き先を示す個々のインターネット・サイトのインターネットアドレスと、サポートされたマーチャント・データファイルとを比較することにより、前記インターネット・ブラウザに行わせるナビゲーションの行き先を示すウエブサイトが、サポートされたマーチャント・ウエブサイトであるかどうかを前記コンピュータ・コードが判断する、請求項２１に記載の方法。
【請求項２５】
ブラウザによりコンピュータ・ディスプレイに表示可能なインターネット・ブラウザ・インターフェイスを動的に制御する方法であって、前記方法において、前記コンピュータのデータ格納装置にファイルを配置し、該ファイルによってショッピング・アシスタントインターフェイス・オブジェクトを規定し、前記方法が、
（ａ）前記コンピュータとブラウザのユーザが前記ブラウザを起動させるとき、前記ファイルを開かせるステップと、
（ｂ）所定のインターネット・サイトとの接続を前記ブラウザに確立させるステップと、
（ｃ）前記ショッピング・アシスタントインターフェイス・オブジェクトの全部または一部を規定するための情報を前記所定のインターネット・サイトから前記ファイルで受け取るステップと、
（ｄ）前記ブラウザが起動されている間、前記コンピュータ・ディスプレイに前記インターネット・ブラウザ・インターフェイスと共に前記ショッピング・アシスタントインターフェイス・オブジェクトを表示するステップと、
（ｅ）前記ブラウザが起動されている間、前記ファイルが閉じるのを防止するステップと、
を備える、方法。
【請求項２６】
（ｆ）前記所定のインターネット・サイトとの接続を前記ブラウザに周期的に確立させるステップと、
（ｇ）前記ショッピング・アシスタントインターフェイス・オブジェクトの全部または一部を規定する追加情報を前記所定のインターネット・サイトから前記ファイルで受け取るステップとを更に備える、請求項２５に記載の方法。
【請求項２７】
前記ステップ（ｅ）が、前記ファイルが閉じられることを防止するためのプログラムループを実行するステップを更に備える、請求項２５に記載の方法。
【請求項２８】
前記ブラウザがもはや起動されなくなったとき、前記プログラムループを終了させるステップを更に備える、請求項２７に記載の方法。
【請求項２９】
前記ステップ（ｂ）が所定のインターネット・サイトとの接続を前記ブラウザに自動的に確立させる、請求項２５に記載の方法。
【請求項３０】
前記ファイルが、
前記インターネット・ブラウザに行わせるナビゲーションの行き先を示す個々のインターネット・サイトのインターネットアドレスをインターセプトし、
前記インターネット・ブラウザに行わせるナビゲーションの行き先を示すウエブサイトがサポートされたマーチャント・ウエブサイトであるかどうかを判断し、
前記ウエブサイトがサポートされたマーチャント・ウエブサイトであれば、ウォレットと、サポートされたマーチャント・ルールおよびマッピングファイルとを用いて、サポートされたマーチャント・ウエブサイトのチェックアウト・ウエブページに自動的に記入を行う
コンピュータ・コードを含む、請求項２５に記載の方法。
【請求項３１】
前記ファイルが、ショッピング・アシスタント・ボタンと前記インターネット・ブラウザのツールバーとを追加するコンピュータ・コードを含む、請求項２５に記載の方法。
【請求項３２】
サポートされたマーチャント・ウエブサイトへのナビゲーションを前記インターネット・ブラウザに行わせる時、前記ファイルがインジケータを提供するコンピュータ・コードを含む、請求項２５に記載の方法。
【請求項３３】
前記ファイルが、サポートされたマーチャント・データファイルと、前記インターネット・ブラウザに行わせるナビゲーションの行き先を示す個々のインターネット・サイトのインターネットアドレスとを比較することにより、前記インターネット・ブラウザに行わせるナビゲーションの行き先を示すウエブサイトが、サポートされたマーチャント・ウエブサイトであるかどうかを判断するコンピュータ・コードを含む、請求項２５に記載の方法。
【請求項３４】
所定のインターネット・サイトへのアクセスをインターネット・ブラウザに行わせる方法であって、
（ａ）ショッピング・アシスタントインターフェイス・オブジェクトの規定と、前記インターネット・ブラウザに対する命令とを含むファイルをコンピュータに提供するステップと、
（ｂ）前記コンピュータのユーザによる前記インターネット・ブラウザの起動時に、かつ、前記ファイル内の前記命令に応じて、前記所定のインターネット・サイトとの接続を前記インターネット・ブラウザに自動的に確立させるステップと、
を備える、方法。
【請求項３５】
前記ショッピング・アシスタントインターフェイス・オブジェクトの全部または一部を規定する情報を前記所定のインターネット・サイトから前記ファイルで受け取るステップを更に備える、請求項３４に記載の方法。
【請求項３６】
前記ファイルが、
前記インターネット・ブラウザに行わせるナビゲーションの行き先を示す個々のインターネット・サイトのインターネットアドレスをインターセプトし、
前記インターネット・ブラウザに行わせるナビゲーションの行き先を示すウエブサイトがサポートされたマーチャント・ウエブサイトであるかどうかを判断し、
前記ウエブサイトがサポートされたマーチャント・ウエブサイトであれば、ウォレットと、サポートされたマーチャント・ルールおよびマッピングファイルとを用いて、サポートされたマーチャント・ウエブサイトのチェックアウト・ウエブページに自動的に記入を行う
コンピュータ・コードを含む、請求項３４に記載の方法。
【請求項３７】
前記ファイルが、ショッピング・アシスタント・ボタンと前記インターネット・ブラウザのツールバーとを追加するコンピュータ・コードを含む、請求項３４に記載の方法。
【請求項３８】
サポートされたマーチャント・ウエブサイトへのナビゲーションを前記インターネット・ブラウザに行わせる時、前記ファイルが、インジケータを提供するコンピュータ・コードを含む、請求項３４に記載の方法。
【請求項３９】
前記ファイルが、サポートされたマーチャント・データファイルと、前記インターネット・ブラウザに行わせるナビゲーションの行き先を示す個々のインターネット・サイトのインターネットアドレスとを比較することにより、前記インターネット・ブラウザに行わせるナビゲーションの行き先を示すウエブサイトが、サポートされたマーチャント・ウエブサイトであるかどうかを判断するコンピュータ・コードを含む、請求項３４に記載の方法。
【請求項４０】
インターネット・ブラウザによりコンピュータ・ディスプレイに表示可能なインターネット・ブラウザ・インターフェイスであって、
前記インターネット・ブラウザ・インターフェイスが、前記ブラウザが起動されている間、前記インターネット・ブラウザ・インターフェイスと共に表示され、前記ブラウザを介して前記コンピュータが接続されている接続先のインターネット・サイトに関係無く、所定のインターネット・サイトとのリンクを提供するアクティブＸコントロールショッピング・アシスタントインターフェイス・オブジェクトを備える、
インターネット・ブラウザ・インターフェイス。
【請求項４１】
前記アクティブＸコントロールショッピング・アシスタントインターフェイス・オブジェクトが、前記所定のインターネット・サイトとの接続を前記インターネット・ブラウザに確立させる、請求項４０に記載のインターネット・ブラウザ・インターフェイス。
【請求項４２】
インターネット・ブラウザによりコンピュータ・ディスプレイに表示可能なインターネット・ブラウザ・インターフェイスであって、前記ブラウザが起動されている間、前記インターネット・ブラウザ・インターフェイスと共に表示され、前記ブラウザを介して前記コンピュータが接続されている接続先のインターネット・サイトに関係無く、所定のインターネット・サイトとのリンクを提供するプラグイン・アシスタント・インターフェイス・オブジェクトを含む、インターネット・ブラウザ・インターフェイス。
【請求項４３】
前記プラグイン・ショッピング・アシスタント・インターフェイス・オブジェクトが、前記所定のインターネット・サイトとの接続を前記インターネット・ブラウザに確立させる、請求項４２に記載のインターネット・ブラウザ・インターフェイス。
【請求項４４】
インターネット・ブラウザによりコンピュータ・ディスプレイに表示可能なインターネット・ブラウザ・インターフェイスを制御する方法であって、
前記インターネット・ブラウザが、前記コンピュータのユーザとインターネット・ブラウザとに前記インターネットのアクセスとナビゲーションを行う事が出来るようにし、さらに、１以上のインターネット・サイトから１以上のウエブページを受け取り、所定のインターネット・サイトからのウエブページの表示を含めて、上記１以上のウエブページを前記コンピュータ・ディスプレイに表示出来るようにし、
前記インターネット・ブラウザは、前記コンピュータの前記ユーザと、インターネット・ブラウザとに所定の機能を提供する少なくとも１つのツールバーボタンを持つ少なくとも１つのインターネット・ブラウザ用ツールバーを有し、
前記方法が、
（ａ）前記所定のインターネット・サイトにおいて、前記インターネット・ブラウザ・インターフェイスを制御するプログラムへのアクセスを提供するステップと、
（ｂ）前記所定のインターネット・サイトにより、前記インターネット・ブラウザ・インターフェイスの一部として、ユーザ用ツールバーと、ショッピング・アシスタント・インターフェイス・オブジェクトとを表示するためのファイルのダウンロードを利用可能にするステップと、
を備える、方法。
【請求項４５】
前記ファイルがアクティブＸコントロールを備える、請求項４４に記載の方法。
【請求項４６】
前記ファイルがプラグインを備える、請求項４４に記載の方法。
【請求項４７】
前記ショッピング・アシスタントインターフェイス・オブジェクトがツールバーボタンである、請求項４４に記載の方法。
【請求項４８】
前記ファイルが、
前記インターネット・ブラウザに行わせるナビゲーションの行き先を示す個々のインターネット・サイトのインターネットアドレスをインターセプトし、
前記インターネット・ブラウザに行わせるナビゲーションの行き先を示すウエブサイトがサポートされたマーチャント・ウエブサイトであるかどうかを判断し、
前記ウエブサイトがサポートされたマーチャント・ウエブサイトであれば、ウォレットと、サポートされたマーチャント・ルールおよびマッピングファイルとを用いて、サポートされたマーチャント・ウエブサイトのチェックアウト・ウエブページに自動的に記入を行う
コンピュータ・コードを含む、請求項４４に記載の方法。
【請求項４９】
前記ファイルが、ショッピング・アシスタント・ボタンと前記インターネット・ブラウザのツールバーとを追加するコンピュータ・コードを含む、請求項４４に記載の方法。
【請求項５０】
サポートされたマーチャント・ウエブサイトへのナビゲーションを前記インターネット・ブラウザに行わせる時、前記ファイルがインジケータを提供するコンピュータ・コードを含む、請求項４４に記載の方法。
【請求項５１】
前記ファイルが、サポートされたマーチャント・データファイルと、前記インターネット・ブラウザに行わせるナビゲーションの行き先を示す個々のインターネット・サイトのインターネットアドレスとを比較することにより、前記インターネット・ブラウザに行わせるナビゲーションの行き先を示すウエブサイトがサポートされたマーチャント・ウエブサイトであるかどうかを判断するコンピュータ・コードを含む、請求項４４に記載の方法。
【請求項５２】
インターネット・ブラウザによりコンピュータ・ディスプレイに表示可能なインターネット・ブラウザ・インターフェイスを制御するシステムであって、
前記インターネット・ブラウザ・インターフェイスを制御するために前記コンピュータのユーザによりインターネットでアクセス可能なプログラムを含むサーバと、
前記インターネット・ブラウザ・インターフェイスを制御するために前記コンピュータへ前記サーバによりダウンロード可能なファイルと、
を備え、
前記ダウンロード可能なファイルによって、ユーザ・ツールバーと、ショッピング・アシスタント・インターフェイス・オブジェクトとが前記ブラウザ・インターフェイスに追加され、前記インターネット・ブラウザを介して前記コンピュータが接続されている接続先のインターネット・サイトに関係無く、前記インターネット・ブラウザが起動されている間、前記インターネット・ブラウザ・インターフェイスの一部として、前記ユーザ・ツールバーと、前記ショッピング・アシスタント・インターフェイス・オブジェクトとが前記コンピュータ・ディスプレイに表示される、システム。
【請求項５３】
前記ショッピング・アシスタント・インターフェイス・オブジェクトがアクティブＸコントロールを備える、請求項５２に記載のシステム。
【請求項５４】
前記ショッピング・アシスタント・インターフェイス・オブジェクトがプラグインを備える、請求項５２に記載のシステム。
【請求項５５】
前記ファイルが、
前記インターネット・ブラウザに行わせるナビゲーションの行き先を示す個々のインターネット・サイトのインターネットアドレスをインターセプトし、
前記インターネット・ブラウザに行わせるナビゲーションの行き先を示すウエブサイトがサポートされたマーチャント・ウエブサイトであるかどうかを判断し、
前記ウエブサイトがサポートされたマーチャント・ウエブサイトであれば、ウォレットと、サポートされたマーチャント・ルールおよびマッピングファイルとを用いて、サポートされたマーチャント・ウエブサイトのチェックアウト・ウエブページに自動的に記入を行う
コンピュータ・コードを含む、請求項５２に記載のシステム。
【請求項５６】
前記ファイルが、ショッピング・アシスタント・ボタンと前記インターネット・ブラウザのツールバーとを追加するコンピュータ・コードを含む、請求項５２に記載のシステム。
【請求項５７】
サポートされたマーチャント・ウエブサイトへのナビゲーションを前記インターネット・ブラウザに行わせるとき、前記ファイルがインジケータを提供するコンピュータ・コードを含む、請求項５２に記載のシステム。
【請求項５８】
前記ファイルが、サポートされたマーチャント・データファイルと、前記インターネット・ブラウザに行わせるナビゲーションの行き先を示す個々のインターネット・サイトのインターネットアドレスとを比較することにより、前記インターネット・ブラウザに行わせるナビゲーションの行き先を示すウエブサイトがサポートされたマーチャント・ウエブサイトであるかどうかを判断するコンピュータ・コードを含む、請求項５２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、現在係属中の、米国特許出願番号０９／４２９，５８５（１９９９年１０月２８日出願）の一部継続である。
【０００２】
本発明は、インターネット・ブラウザを用いてオンライン・ショッピングを簡便化する方法およびシステムに関する。
【背景技術】
【０００３】
インターネット（即ちワールドワイドウエブ、ウエブなど）にアクセスする時、インターネット・ユーザは、通常、例えば、ネットスケープ・ナビゲータ（商標）またはマイクロソフト・インターネットエクスプローラ（商標）などのようなブラウザ・ソフトウェア・プログラムをコンピュータを介して開始または起動させる。ブラウザプログラム（本願明細書ではブラウザとも呼ぶ）は、（例えばモデムとインターネット・サービス・プロバイダ（ＩＳＰ）を介して）インターネットとの物理リンクを確立し、所定の外観と機能を有するテキストインターフェイスとグラフィックユーザインターフェイス即ちブラウザ・インターフェイスを提供する。現在、この外観と機能のいずれもインターネット・ユーザにより大幅に変更する事は出来ない。従って、インターネット・ユーザが、ウエブサイトからウエブサイトへ、アプリケーションからアプリケーションへ、ＨＴＭＬ（ハイパーテキスト・マークアップ言語）ページからＨＴＭＬページへ移動しながらインターネットをナビゲートしている間、ブラウザ・インターフェイスは比較的静的である。
【０００４】
ブラウザ・インターフェイスの限定された制御は、例えば、ブラウザ・インターフェイスにファンクションボタンを追加出来る実行可能なソフトウェア・プログラムを介して現在利用可能である。しかし、この付加機能は、ブラウザが最初起動されるときにブラウザ・インターフェイスに追加されるが、その後静的状態のままである。従って、ブラウザが起動された時や、ユーザがインターネットをナビゲートしている時、前述したように変更されたブラウザ・インターフェイスを示すブラウザが、インターネット・サイトから情報を動的にダウンロードし、ブラウザ自身をカスタマイズする事は出来ない。またこのような変更されたブラウザ・インターフェイスは、プラグインとインターフェイス用の種々のブラウザアプリケーション・プログラミング・インターフェイス（ＡＰＩ）へのアクセスに供する事は出来ない。従って、ブラウザ・インターフェイスを変更する方法を提供し、従来技術の上述の欠点を解決するブラウザ・インターフェイスを提供することが望ましい。
【０００５】
インターネット・サイトの急増によって、コンテンツ・プロバイダ（即ち、インターネット・サイトのオーナー）にとって、特定のインターネット・サイトでユーザが過ごす時間を最大限に長くすることがますます困難になっている。言うまでもなく、プロバイダのインターネット・サイトでユーザが過ごす時間を最大限に長く出来ることが当該コンテンツ・プロバイダにとって望ましい。あるいはインターネット・ユーザがコンテンツ・プロバイダのサイトを再訪することが保証されることが望ましい。一般にこの状態は当業で粘着性（ｓｔｉｃｋｉｎｅｓｓ）と呼ばれている。インターネット・サイトを設けている企業向けの多くのビジネスモデルは、少なくとも部分的には、宣伝から導き出される収入に基づくものである。ユーザがインターネット・サイトにとどまり、あるいは、インターネット・サイトを再訪する見込みが大きければ大きいほど、そのサイトに表示される広告をユーザが見る可能性は大きくなる。従って、そのインターネット・サイトを提供している企業は、そのウエブページ上の広告に対してより高い広告料金を請求することが可能となる。
【０００６】
コンテンツ・プロバイダのサイトにアクセスするインターネット・ユーザ数を最大限に増やすことも望ましい。端的に言えば、インターネット・コンテンツ・プロバイダは、そのプロバイダのインターネット・サイトに対して出きり限り多くのインターネット・ユーザの注意を引きつけること、および、当該インターネット・ユーザがその場所サイトにとどまる時間を最大限に長くすることを望んではいるが、これらのいずれも現在のインターネット・ブラウザを用いて行うことは不可能である。
【０００７】
インターネットの多くの利点の中で、オンライン・ショッピングは従来のショッピングよりも優れたはっきりと異なる利点を提供するものである。多数のマーチャント・ウエブサイトを簡単に訪問し、ウエブサイトのそれぞれの商品を閲覧し、価格を比較し、比較的短い時間で、家庭やオフィスから注文を出す事が出来る能力によって、オンラインの買物客の時間と費用の節減が行われることは明らかである。さらに、天候や、近隣に存在する店舗の不足のために、複数の店を訪れることが困難な場合もある買物客にとって、現在、ほとんど無制限の数の店舗と、入手可能な商品とが彼らの指先にある。
【０００８】
オンライン・ショッピング経験は比較的迅速に行う事が出来る。買物客はマーチャントサイトからマーチャントサイトへナビゲートし、商品を閲覧し、品目の選択と注文とをショッピングカートで行う事が出来る。これらすべてを数回のマウスクリックによって行う事が出来る。これに対して、チェックアウト処理は、時間がかかり、労働集約的な状態のままである。買物客は、ショッピングを終了すると、“チェックアウト”処理を選択することにより、マーチャント・ウエブサイトのチェックアウトオプションを開始する事が出来る。この時、買物客は、氏名、料金請求先、出荷宛先、クレジットカード番号などの様々な個人データの書き込みを通常求められる。買物客は、オンライン・ショッピングによる取引を終了するために、個々のマーチャントに対してこの情報を繰り返し入力する必要があり、この入力によって、（情報入力時に買物客が犯す）エラーの発生確率が大きくなり、オンライン・ショッピング処理を遅らせることになる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、インターネット・ブラウザ・インターフェイスを動的に制御する方法と、動的に制御可能なブラウザ・インターフェイスとに関する。本発明の一実施形態では、ショッピング・アシスタント・ボタンとショッピング・アシスタント機能とがブラウザ・インターフェイスに追加され、これを利用してユーザ（オンラインの買物客など）が正確なオンライン・ショッピング処理を行うことが可能になる。
【００１０】
本発明は、また、インターネット・ユーザが所定のインターネット・サイトにアクセスする回数を増やす方法、および、インターネット・ユーザが、所定のインターネット・サイトで過ごす時間を増やす方法にも関する。
【００１１】
ここで用いられている、“制御する”および“制御可能な”という用語は、本発明を限定しない例として、インターネット・ブラウザ・インターフェイスの追加、削除および変更を意味するものである。本願明細書に記載されているように、インターネット・ブラウザ・インターフェイスは、ブラウザユーザに対して提示される視覚的あるいは聴覚的表示意味し、ユーザがブラウザとリアルタイムで交信を行う媒介手段となるものである。“カスタマイズする”という用語（およびこの用語の変形）は、本発明により提供される制御能力を記述するために本願明細書で使用出来るものである。ここで使用されているように、“動的に制御する”という用語（およびこの用語の変形）は、インターフェイス・オブジェクトを表示しているブラウザが起動している間、インターネット・ブラウザ・インターフェイス（即ちインターフェイス・オブジェクト）の一部分を表示し、これを周期的に変更または更新する事が出来る方法を意味する。
【００１２】
本願明細書において、ブラウザと言う用語は、その一般的かつ当業者に理解されている意味が与えられており、一般に、ワールドワイドウエブまたはインターネットとのインターフェイスを提供するソフトウェア・プログラムを意味する。ブラウザによって、インターネット・ユーザがインターネットをナビゲートすることを可能にし、種々のインターネット・サイトとの接続を確立し、コンテンツ・プロバイダが種々のインターネット・サイトに設けているウエブページの閲覧を可能とするものである。ブラウザは、特に、インターネット・サイトを介してアクティブＸコントロールやプラグインを呼び出す事が出来るものである。ブラウザによって、インターネット・ユーザはインターネット・サイト間をナビゲートする（ネットサーフィンを行う）事が出来る。ブラウザによって、ブラウザ・ソフトウェア・プログラムのプロバイダによりフォーマットされた、インターネット・ユーザとのブラウザ・インターフェイスが提供される。ブラウザ・インターフェイスによって、一般に、ブラウザがインターネット・ユーザに提供するレイアウト（色、大きさ、数および位置など）および機能が規定される。ブラウザ・インターフェイスによって、一般に、ブラウザ・インターフェイスの通常の大きさ、色、レイアウトを規定する第１の親ウインドウと、ウインドウ制御ボタン（最小化、クローズなど）とを備える事も出来る。ブラウザ・インターフェイスは、第２の親ウインドウ（第１の親ウインドウに対する子ウインドウ）、並びに、この第２の親ウインドウに従属する１以上のウインドウ（即ち子ウインドウ）を備えることも可能である。第２の親ウインドウおよびその従属するウインドウは、例えば、様々な情報（例えば広告、クーポン券、ニュース、ＨＴＭＬリンクなど）と、機能（即ち、ツールバー、プルダウン・メニュー、プラグイン、アプリケーションなど）とをインターネット・ユーザへ提供する事が出来る。
【００１３】
本願明細書で使用されているように、アクティブＸコントロールとは、インターネット用デスクトップ・アプリケーションにリンクするためのツールを意味し、当業で理解されているマイクロソフト社の開発仕様に基づくものである。本願明細書で使用されている、プラグインとは、ネットスケープ・ブラウザと共に使用するために開発された一種のプログラムを意味し、より大きなアプリケーション（ブラウザ・ソフトウェア・プログラムなど）を統合化して、さらに大きなプログラムにある特定の機能または能力を付加するプログラムである。本願明細書で述べる、上述のようなアクティブＸコントロールおよびプラグインはいずれのインターネット・ブラウザとも併用する事が出来る。
【００１４】
本願明細書で使用されているように、“インターネット・サイト”という用語は、インターネットアドレスまたはＵＲＬ（ユニフォームまたはユニバーサル・リソース・ロケータ）により規定されたインターネット上の位置（即ちノード）を意味する。本願明細書で使用する、“インターネット・ウエブページ”という用語は、インターネット・サイトで提供されるハイパーテキスト・マークアップ言語（ＨＴＭＬ）コマンドの集合を意味し、これらのＨＴＭＬコマンドは、ブラウザを介してインターネット・ユーザのコンピュータ・ディスプレイに表示可能なハイパーテキスト・ドキュメントを作成するためのテキスト、画像および機能に関するフォーマット情報を提供する。例えば、インターネット・ユーザは、ＵＲＬを入力してインターネット・サイトとの接続を確立し、そのインターネット・サイトは、ユーザのブラウザへＨＴＭＬコマンドを出力して、ユーザのコンピュータ・ディスプレイに当該インターネット・サイトのウエブページを表示出来るようにする。ブラウザは、ウエブページに埋め込まれたハイパーテキスト・マークアップ言語（ＨＴＭＬ）コマンドを翻訳し、これらのＨＴＭＬコマンドを用いて、当該ウエブページ用のテキストおよび画像のフォーマットを行う。
【００１５】
本発明は、インターネット・ユーザ、インターネット・コンテンツ・プロバイダ、インターネット・サービス・プロバイダ（ＩＳＰ）に利益をもたらすものである。インターネット・ユーザに対して、本発明は、該ユーザのインターネット・ブラウザ・インターフェイスの動的制御またはカスタマイズを行う方法を提供するものである。インターネット・ユーザは、該ユーザがブラウザを用いてインターネットにアクセスする度に、ユーザが規定した情報および／または機能（本願明細書では集合的に情報と称する）がブラウザ・インターフェイスと共に表示させるようにブラウザ・インターフェイスをカスタマイズする事が出来る。例えば、ユーザは、アクティブＸコントロールとプラグインとを介して利用出来るようなブックマーク、住所録および電話帳、個人の財務情報、個人向けのニュースおよび各種機能を備える事が出来る。
【００１６】
さらに、インターネット・ユーザがコンテンツ・プロバイダのアカウントを持っていれば、ブラウザによりブラウザ・インターフェイスと共にそのユーザの固有アカウント情報（例えば、投資、ポートフォーリオ、ヘッドラインニュース、ブックマーク、アドレス帳など）を動的に表示することも可能となる。現在、インターネット・ユーザは、コンテンツ・プロバイダのインターネット・サイトと接続されている間だけ、該ユーザの固有アカウント情報にアクセスする事が出来る。ユーザは、更新されたアカウント情報を受信するために、コンテンツ・プロバイダのサイトへ戻らなければならない。ユーザが一度そのインターネット・サイトを出ると、アカウント情報はブラウザ・インターフェイスと共に表示され無くなる。本発明は、ブラウザ・インターフェイスを動的に制御する方法と、インターネット・ユーザが、ブラウザ・インターフェイスと共に表示を行い、そのユーザ固有の情報および／または機能を連続して更新することを可能にする動的に制御可能なブラウザ・インターフェイスとを提供する。
【００１７】
コンテンツ・プロバイダに対して、本発明は、ユーザがブラウザを用いてインターネットにアクセスする度に、（ブラウザを介して）このコンテンツ・プロバイダのインターネット・サイトとの自動接続の確立を保証する。従って、インターネット・ユーザが（ブラウザ・アイコンを選択することなどにより）ブラウザを実行させるとすぐに、ブラウザは、当該ユーザのカスタマイズされたブラウザ・インターフェイス情報をロードするために、コンテンツ・プロバイダのインターネット・サイトと自動的に接続を確立する。本発明は、ブラウザが起動状態の間、即ちユーザがネットサーフィンをしている間、周期的かつ自動的に、ユーザのブラウザをコンテンツ・プロバイダのインターネット・サイトと接続する事も出来る。１つの実施形態では、コンテンツ・プロバイダは、ブラウザ・インターフェイスを制御するプログラムへのアクセスをインターネット・ユーザに提供する事が出来る。一度インターネット・ユーザが、そのユーザのブラウザ・インターフェイスをカスタマイズする制御プログラムにアクセスすると、ユーザがインターネットにアクセスする度に、そのユーザのブラウザにより、そのコンテンツ・プロバイダとの接続を自動的に確立する事が出来る。従って、ユーザがＵＲＬを入力したときにのみ（あるいは、別の方法で、例えばリンクやバナー広告を選択するような行動により接続を確立させるために積極的に行動する時に）、インターネット・サイトとの接続を確立する現在利用可能なブラウザとは対照的に、本発明は、ブラウザが起動された時、インターネット・ユーザまたはブラウザ・ベンダのいずれかがブラウザに予めプログラムした選択ホームウエブページに関りなく、コンテンツ・プロバイダとの接続を自動的に確立する。一度その初期接続が確立されると、コンテンツ・プロバイダはインターネット・ユーザのコンピュータに対してユーザ固有情報および／または機能をロードして、そのユーザのブラウザ・インターフェイスと共に表示を行う事が出来る。
【００１８】
さらに、コンテンツ・プロバイダは、周期的にインターネット・ユーザのブラウザ・インターフェイス用に更新、新規のダウンロード、あるいは、情報および／または機能を伝送するために、ブラウザを当該コンテンツ・プロバイダのインターネット・サイトと自動的に再接続させることが可能である。例えば、インターネット・ユーザがコンテンツ・プロバイダの電子メールサービスに申し込めば、たとえユーザがどこか別の場所で“サーフィン”していても、コンテンツ・プロバイダが受け取った当該インターネット・ユーザ用の電子メール・メッセージをインターネット・ユーザへ自動的に伝送することが可能となる。ユーザのブラウザが、そのユーザのブラウザの起動時にコンテンツ・プロバイダのインターネット・サイトとの接続を最初に確立する時、コンテンツ・プロバイダがインターネット・ユーザへ伝送する情報の中には、コンテンツ・プロバイダのインターネット・サイトと周期的に再接続を行う命令が含まれている。従って、ユーザがアクセスするインターネット・サイトの数に関係無く、また、ユーザが現在アクセスしている特定のインターネット・サイトに関係無く、コンテンツ・プロバイダのインターネット・サイトとの再接続がコンテンツ・プロバイダが定めた間隔で自動的に確立される。これらの再接続は、ユーザがコンテンツ・プロバイダから通知を受け取った（即ち新しいメールが着信した）ときを除いてインターネット・ユーザには透過的である。従って、インターネット・ユーザがネットサーフィンをしている時、ブラウザ・インターフェイスを動的に制御することが可能となる。ＩＳＰにとって、少なくともコンテンツ・プロバイダの場合と同程度の大きな利益がある。
【００１９】
先ず、インターネット・ユーザ用のブラウザ・インターフェイスは、コンテンツ・プロバイダまたはＩＳＰが提供出来るソフトウェア・プログラム、あるいは、ユーザのコンピュータで利用可能なソフトウェア・プログラムを用いてカスタマイズする必要がある。本願明細書で以後、制御プログラムまたは制御を行うためのプログラム（およびその他の変名で）と称されるこのソフトウェア・プログラムによってユーザのブラウザが機能する態様が変えられる。具体的には、上記制御プログラムはインターネット・ユーザのコンピュータでライブラリ・ファイルのダウンロードまたは作成を行うものである。このライブラリ・ファイルは、例えば、ブラウザ内に、シェル（または複数のシェル）を作成するダイナミックリンクライブラリ（ＤＬＬ）（ウインドウズ・オペレーティング・システム用）であってもよい。  また、上記シェル内に、アクティブＸコントロールやプラグインとしてブラウザ内に様々な情報および／または機能をロードしても良い。このライブラリ・ファイルには、本発明によりブラウザ・インターフェイスに追加されたインターフェイス・オブジェクトを規定するアクティブＸコントロールやプラグイン機能が含まれる。インターネット・ユーザがブラウザを開始即ち起動すると、このライブラリ・ファイルが開かれ、そのファイル内に含まれるアクティブＸコントロールやプラグインコードはブラウザにより利用出来るようになり、ブラウザ・インターフェイスの中へ組み込まれ、これによって、インターフェイス・オブジェクトをブラウザ・インターフェイスと共に表示させる。ブラウザが起動されている限り、一般的にはユーザがネットサーフィンを行っている限り、ライブラリ・ファイルは、従ってシェル（または複数のシェル）は開かれた状態のままとなる。従って、インターネット・サイトからインターネット・サイトへユーザが移動している時でも、シェル内にロードされる、ブラウザ・インターフェイスをカスタマイズするための情報および／または機能は起動状態のままとなる。本願明細書の文脈で使用される“情報および機能”という用語は、ライブラリ・ファイルに、または、任意の情報、データおよび／またはライブラリ・ファイルの一部に含む事が出来るソフトウェアにより実行される機能を意味する。
【００２０】
ユーザがブラウザを最初に起動すると、ライブラリ・ファイルは、コンテンツ・プロバイダのインターネット・サイトとの接続をブラウザに更に確立させる。コンテンツ・プロバイダのインターネット・サイトは、インターフェイス・オブジェクトに関連する情報および／または機能をユーザのコンピュータへロードして、ブラウザで使用し、また、ブラウザ・インターフェイスでの表示に使用する。コンテンツ・プロバイダがロードする情報および／または機能は、例えば、そのユーザがコンテンツ・プロバイダのアカウントを持っていれば、インターネット・ユーザに対して特定のものであって良い。上記とは別に、コンテンツ・プロバイダは、例えば、インターネット・ユーザがコンテンツ・プロバイダのアカウントを持っていなければ（即ちゲストであれば）、一般的な情報および／または機能をロードしても良い。
【００２１】
本発明は、処理中のサーバにおいてオブジェクトリンク＆組み込み（ＯＬＥ）を使用して、ブラウザ・インターフェイスの情報および／または機能の制御を行うものである。ライブラリ・ファイルに含まれるアクティブＸコントロールまたはブラウザ・プラグイン（それぞれ、本願明細書ではブラウザ・インターフェイス・オーバーレイ（ＢＩＯ）ライブラリと称する）と共にアクティブＸコントロールやプラグインにより利用可能な任意の情報および／または機能を、本発明を利用して仮想的にブラウザ・インターフェイスに追加しても良い。このようにして、ライブラリ・ファイル（ＢＩＯライブラリによる）には、ブラウザ・インターフェイスのカスタマイズ、即ち、ブラウザ・インターフェイスの追加、削除および／または変更に必要なコードが含まれる。
【００２２】
一度、制御プログラムにアクセスし、当該ユーザのブラウザの操作をカスタマイズすれば、ブラウザが起動された時、カスタマイズされたブラウザ・インターフェイスが表示される。従来のブラウザ変更方法とは対照的に、本発明は、動的に制御することが可能な方法およびブラウザ・インターフェイスを提供する。更新または変更された情報および／または機能がブラウザへ伝送され、インターネット・ユーザがウエブのサーフィンを行っている間、および、ブラウザ・インターフェイスのカスタマイズされた情報および／又機能が維持されている間、ブラウザ・インターフェイスに上記情報および／または機能を表示する事が出来る。このようにして、インターネット・ユーザは、当該ユーザのブラウザ・インターフェイスで、いずれのインターネット・サイトにいても、また、ユーザがブラウザを用いてネットサーフィンを行っている限り、株式相場、電子メール、ヘッドラインニュースなどのような最新情報を受け取る事が出来る。
【００２３】
本発明は、ショッピング・アシスタント・ボタンと機能とを提供するブラウザ・インターフェイスの変更によりオンライン・ショッピングを簡便化する方法およびシステムを更に提供する。本発明のこの実施形態に基づいて提供される変更ブラウザ・インターフェイスは、個々の買物客即ちユーザ用のウォレットを作成することによりオンライン・ショッピングを単純化するものである。このウォレットはセキュリティ保護処理を施したサーバのデータベースに格納され、ユーザが与えるセキュリティ保護キーでしか、そして、該ユーザしかアクセス・変更を行う事は出来ない。このウォレットには、サポートされたマーチャント・チェックアウトのウエブページへ直接ポートする事が出来るユーザ供給情報が含まれる。従って、ユーザがサポートされたマーチャントのウエブサイトでオンライン・ショッピングしていて、そのマーチャントから或る商品および／またはサービスの購入を希望する時、本発明は、ユーザのウォレットへのアクセスをユーザに提供して、そのウォレットの中に含まれているデータのポートを容易にし、迅速にかつ努力することなく、マーチャントのチェックアウト・ウエブページに設けられているマーチャントの注文用紙に記入を行うようにするものである。
【００２４】
本発明の他の目的および特徴は、添付図面と関連して考察する以下の詳細な説明から明らかになるであろう。しかし、これらの図面は単に例示を目的として作成されたものであり、本発明を限定するものとして作成されたものではなく、本発明の限定については添付の請求項を参照すべきである。
【００２５】
単に例示的なものである図面では、同じ参照符号はいくつかの図を通して同一の対応する構成要素を示すものとする。
【発明を実施するための最良の形態】
【００２６】
本発明は、インターネット・ブラウザ・インターフェイスを制御し、表示する方法、並びに、制御可能なインターネット・ブラウザ・インターフェイスに関する。本発明によれば、インターネット・コンテンツ・プロバイダやＩＳＰにより供給出来る制御ソフトウェア・プログラム、または、インターネット・ユーザのコンピュータに常駐出来る制御ソフトウェア・プログラムを用いてブラウザ・インターフェイスのカスタマイズを行う事が出来る。この制御ソフトウェア・プログラムにより、インターネット・ユーザ、コンテンツ・プロバイダまたはＩＳＰは、ユーザのブラウザとブラウザ・インターフェイスの情報および／または機能をカスタマイズし、制御することが可能となる。
【００２７】
本発明はまた、ショッピング・アシスタント・ボタンおよび機能を提供するブラウザ・インターフェイスの変更によりオンライン・ショッピングを簡便化する方法およびシステムを提供するものである。本発明のこの実施形態に基づいて提供される変更済みブラウザ・インターフェイスは、個々の買物客即ちユーザ用のウォレットを作成することによりオンライン・ショッピングを単純化するものである。このウォレットはセキュリティ保護処理を施したサーバのデータベースに格納され、ユーザが与えるセキュリティ保護キーでしか、そして、ユーザしかアクセスや、変更を行う事は出来ない。このウォレットには、サポートされたマーチャント・チェックアウトのウエブページへ直接ポートすることが可能なユーザによる供給情報が含まれる。従って、ユーザが、サポートされたマーチャントのウエブサイトでオンライン・ショッピングをしていて、そのマーチャントから或る商品および／またはサービスの購入を希望する時、本発明は、自分のウォレットに対するアクセスをユーザに提供して、そのウォレットの中に含まれているデータのポートを容易にし、迅速にかつ努力することなく、マーチャントのチェックアウト・ウエブページに設けられたマーチャントの注文用紙への記入が行われるようにするものである。
【００２８】
次に図面を詳細に参照すると、図１０は、本発明を実現することが可能なインターネット９０と接続されたコンピュータ５０のブロック図である。コンピュータ５０は、コンピュータ５０の種々の装置間の情報（即ちデジタルデータ）の通信を容易にし、通信用インターフェイス６８を介して、コンピュータと外部装置とシステムとの間の通信を容易にする内部バス６４を備えている。バス６４とつながれたプロセッサ６６はコンピュータ５０内部の情報を処理する。コンピュータ５０は、プロセッサ６６から伝送された命令を受信・格納するための、バス６４と接続された、例えばランダムアクセスメモリ（ＲＡＭ）または別の等価な動的記憶素子などのようなメインメモリ６０を更に備える。また、メインメモリ６０は、プロセッサ６６が命令を実行している間、変数やその他の中間情報を一時的に格納するために使用しても良い。また、リードオンリー・メモリ（ＲＯＭ）６２は、プロセッサ６６が使用する静的データと命令とを格納するためにバス６４と接続されている。本発明を限定しない例として、例えば、ディスプレイ５４（たとえばブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）など）、キーボードなどの入力装置５６、マウスやトラックボールなどのカーソル制御装置５８を含む種々の入出力装置がコンピュータ５０の一部として設けられている。例えば、磁気ディスクドライブと磁気ディスク、ＣＤ−ＲＯＭドライブとＣＤ−ＲＯＭ、または、別の等価な装置並びにデータ記録媒体などのデータ格納装置５２が、プロセッサ６６、メインメモリ６０、通信用インターフェイス６８と通信を行うためのバス６４と接続されている。格納装置５２は、好適にはオペレーティング・システム７０と、オペレーティング・システム７０に格納されたインターネット・ブラウザ用ソフトウェア・プログラム７２（即ちブラウザ）とを格納することが望ましい。以下さらに詳細に論じるように、ライブラリ・ファイル７４をデータ格納装置５２に格納しても良い。
【００２９】
コンピュータ５０は、同軸ケーブル、銅線、光ファイバケーブルを含む（但しこれらに限定されるものではない）送信媒体を通して通信用インターフェイス６８を介してインターネット９０と接続する事が出来る。コンピュータ５０とインターネット９０との間の通信は無線やセルラー・インターフェイスを介しても良い。通信用インターフェイス６８は、コンテンツ・プロバイダ１００、２００により提供されるサーバ・コンピュータ（図示せず）などのコンピュータ５０と別の電子装置やシステム間との双方向通信を容易にする。
【００３０】
コンピュータ５０を使用するインターネット・ユーザ（図示せず）は、ブラウザ７２を起動させることによりインターネット９０へのアクセスを行うことができ、これによって、インターネット・サービス・プロバイダ（ＩＳＰ）８０を介して、コンピュータ５０の通信用インターフェイス６８とコンテンツ・プロバイダ１００のインターネット・サイト１３０との間の通信リンクが開かれる。ブラウザ７２は、ブラウザ・ベンダがブラウザ７２内に予め設定されたウインドウ３０のレイアウト（色、大きさ、数、位置など）および機能とを有するブラウザ・インターフェイス２０（図１などを参照のこと）をコンピュータ・ディスプレイ５４に提供する。インターネット・コンテンツはコンピュータ５０へ伝送され、コンテンツ・プロバイダ１００ブラウザ・インターフェイス２０のコンテンツ・ウインドウ３２に表示される。
【００３１】
本発明の一実施形態において、第１のインターネット・コンテンツ・プロバイダ１００は、ブラウザ７２とブラウザ・インターフェイス２０とを制御するためのプログラム１２０へのアクセスをインターネット・ユーザに提供することも可能である。ユーザが処理を実行すると、制御プログラム１２０により、例えば、ダイナミックリンクライブラリ（ＤＬＬ）などのようなライブラリ・ファイル７４がインターネット・ユーザのコンピュータ５０のデータ格納装置５２にダウンロードされるか、あるいは作成される。ライブラリ・ファイル７４はアクティブＸコントロールやプラグイン機能を含むことが望ましい。その後、インターネット・ユーザがブラウザ７２を用いてインターネットにアクセスする時、ブラウザ７２はライブラリ・ファイル７４を開き、好ましくはコンテンツ・プロバイダのインターネット・サイト１３０との接続を自動的に確立することが望ましい。コンテンツ・プロバイダは、ブラウザ７２によりを確立された接続に応じて、ライブラリ・ファイル７４により作成された、ブラウザ内で作動するシェルの中へ情報および／または機能データをロードする。例えば、ユーザがコンテンツ・プロバイダ１００のアカウントを持っていれば、カスタマイズされた情報および／または機能をライブラリ・ファイル７４の中へロードしても良い。ユーザがアカウントを持っていなければ、より一般的な（即ちゲスト用の）情報および／または機能をロードしても良い。
【００３２】
本発明の種々の実施形態において、本願明細書においてさらに詳細に説明するように、コンピュータ間での（サーバとユーザまたはクライアントコンピュータなどの間での）データ通信を行う事が出来る。本発明では、任意の現在公知のあるいは以後開発される媒体または方法を用いて、任意の媒体を用いる任意の方法で、このようなデータ通信（または送信／受信、ダウンロード／アップロードなど）を行う事が出来ることが想定されている。
【００３３】
ライブラリ・ファイル７４は、本質的には、インターネット・ブラウザ７２とブラウザ・インターフェイス２０との制御、即ち追加、削除および／または変更を行うことが可能なアクティブＸコントロールやプラグインコードを含むブラウザ７２内の１つのシェル（または複数のシェル）を開くものである。アクティブＸコントロールやプラグインと共にロードされるとき、ライブラリ・ファイル７４は、ブラウザ７４とブラウザ・インターフェイス２０の制御に利用する事が出来る関数、オブジェクト、データおよびその他のソフトウェアを含むことが望ましい。本願明細書ではこれらを広義に情報と呼ぶ。本発明は、インターネット・ユーザがインターネット・サイト１３０からインターネット・サイト２３０へ移動する時、ライブラリ・ファイル７４（およびシェル）が閉じないことを保証するものである。これによって、インターネット・ユーザがアクティブＸコントロールやプラグインをロードしたインターネット・サイトから切断し、別のインターネット・サイトと接続した時でも、当該アクティブＸコントロールやプラグインを介して得られた情報および／または機能は失われない。
【００３４】
次に、図１を参照すると、それぞれのウインドウがインターネット・ユーザに種々の機能を与える複数のウインドウを持つ従来のインターネット・ブラウザ・インターフェイス２０が示されている。ブラウザ・インターフェイス２０は、ブラウザ・インターフェイスの一般的な大きさ、色およびレイアウトを通常規定し、当該ウインドウ３０用のウインドウ制御ボタン２８（最少化する、閉じるなどを行う）を含む第１の親ウインドウ３０を備える事が出来る。ブラウザ・インターフェイス２０は、第１の親ウインドウ３０内に第２の親ウインドウ３６（第１の親ウインドウの子）、および、第２の親ウインドウに従属する１以上のウインドウ３８を更に備えることも可能である。第２の親ウインドウ３６および子ウインドウ３８は、一般に、インターネットにアクセスしたり、ナビゲートしたりする時、インターネット・ユーザを補助する情報および／または機能を規定する。例えば、第２の親３６およびその従属ウインドウ３８は、ツールバー、プルダウン・メニュー、プラグイン、アプリケーションを提供しても良い。
【００３５】
例えば、インターフェイス２０の（図中）上部に設けられた３つのウインドウ３８は３つのツールバー２２を画定し、これらのツールバーには、例えばプルダウン・メニュー、ファンクションボタン（停止、戻り、次へ、ホームなど）およびファンクションボタンとウインドウとの組み合わせ（探索ボタンとウインドウなど）のような種々のインターフェイス制御２４を含むものであってもよい。最上部のツールバー２２は複数のプルダウン・メニュー２４を提供し、中段のツールバー２２は複数のファンクションボタン２４を提供し、最下段のツールバー２２はプルダウン・メニューおよびウインドウ２６（ＵＲＬアドレスウインドウ）を提供する。コンテンツ・ウインドウ３２も、インターネット・コンテンツ・プロバイダ１００（図１０などを参照）からのコンテンツが表示出来るインターフェイス２０の一部として設けられる。インターネット・ユーザは、第２のツールバー２２に設けられた表示ツールバーオブジェクト２４（プルダウン・メニュー）を用いて、下方の３つの（図中）ツールバー２２のうちのいずれかをオンとオフに切り替える事が出来る。しかし、インターネット・ユーザはここではブラウザ・インターフェイス２０を追加、削除さもなければ変更する事は出来ない。
【００３６】
本発明の種々の実施形態により構成されたインターネット・ブラウザ２０が図２〜図４に示されている。図２では、ブラウザ・インターフェイス２０には、コンテンツ・プロバイダ１００によりライブラリ・ファイル７４にロードされたアクティブＸコントロールやプラグインにより規定されるインターフェイス・オブジェクト４０が含まれる。インターフェイス・オブジェクト４０は、プルダウン・メニュー４４を有し、ブラウザ７２が提供するインターフェイス制御（即ちブラウザ・ツールバー・オブジェクト）２４と共にブラウザ・ツールバー２２に表示される。図３では、インターフェイス・オブジェクト４０は、ブラウザ・インターフェイス２０に別のウインドウ４８として表示されたインターフェイス・オブジェクト・ツールバー４２とプルダウン・メニュー４４とを有する。図４では、インターフェイス・オブジェクト４０は、ブラウザ・インターフェイス２０内の別の４８ウインドウ内に表示された複数のプルダウン・メニュー４４およびサーチウインドウ４６を含むインターフェイス・ツールバー４２を備える。本発明の種々の実施形態によるインターフェイス・オブジェクト４０は、ブラウザを介して利用可能な任意の種類の情報および／または機能を仮想的に備える事が出来る。従って、本発明を限定しない例として、インターフェイス・オブジェクト４０は、プルダウン・メニュー、ツールバーおよびプルダウン・メニュー、文字情報（例えば広告、クーポン券、新たなＨＴＭＬリンクなど）、文字および／または音声情報（同時に生じる音を伴うテキストによる広告など）、文字、音声および／または画像（動画であるか否かを問わない）情報、ビデオ、ビデオおよびオーディオ、オーディオ等を含むものであってもよい。
【００３７】
図２〜図４により示されている本発明によるインターネット・ブラウザ・インターフェイス２０の種々の実施形態は単に本発明の例示であって、本発明を限定する例ではない。本願明細書に示す教示によりブラウザ・インターフェイス２０への変更が可能である。
【００３８】
次に図５を参照すると、本発明の一実施形態によるインターネット・ブラウザ・インターフェイス２０を制御する方法がこの図に示され、全体として５００とする。ステップ５１０で、インターネット・ユーザは、インターネット・ウエブサイト１３０、ＩＳＰ８０またはユーザのコンピュータ５０を介して制御プログラム１２０にアクセスする。制御プログラム１２０は、インターネット・ユーザが処理を実行すると、さらに詳細に以下論じるように、ユーザのインターネット・ブラウザ・インターフェイス２０をその後制御する能力を当該ユーザに与えるものである。制御プログラム１２０は、ステップ５２０で、インターフェイス・オブジェクトを規定するアクティブＸコントロールやプラグインコードを含むインターネット・ユーザのコンピュータ５０に、ライブラリ・ファイル７４のダウンロードや作成を行う。ステップ５３０と５４０に示されているように、インターネット・ユーザがブラウザ７２を開始即ち起動する度にライブラリ・ファイル７４が開かれ、所定のインターネットのウエブサイト１１０との接続が自動的に確立される。このウエブサイト１１０は、インターフェイス・オブジェクト用のアクティブＸコントロールやプラグインコードをインターネット・ユーザのコンピュータ５０へ伝送するように好適に構築されている。開かれたライブラリ・ファイル７４は、アクティブＸコントロールやプラグインが提供する機能をブラウザ・インターフェイス２０に追加する事が出来るブラウザ７０内にシェルを提供する。ブラウザ７２が閉じられるまで、ライブラリ・ファイル７４とシェルのいずれも閉じない。ステップ５５０で、ブラウザ・インターフェイス２０に表示されるインターフェイス・オブジェクト４０が作成される。インターフェイス・オブジェクト４０の情報および／または機能は、アクティブＸコントロールやプラグインにより規定される。本発明の種々の実施形態において、インターフェイス・オブジェクト４０は、ステップ５６０に示されるように、ユーザがネットサーフィンを続けている限り、即ち、ブラウザ７２が起動されている限り、ブラウザ・インターフェイス２０と共にブラウザ７２により表示された状態のままになる。従って、本発明によりブラウザ７２およびブラウザ・インターフェイス２０に追加された機能は、インターネット・ユーザがネットサーフィンをしている間は失われる事は無い。
【００３９】
本発明は、図５を参照して概要を説明したようなブラウザ７２およびブラウザ・インターフェイス２０を制御する種々の実施形態を提供するものであり、これら実施形態のそれぞれについて以下詳細に説明する。
【００４０】
次に図６、続けて図１０を参照しながら、本発明によるブラウザ７２とブラウザ・インターフェイス２０とを制御し、これらを表示する方法を示す実施形態について全体を６００として次に説明を行う。本願明細書で解説するように、図６の目的のために、および、この図に向けられた以下の解説を目的として、ライブラリ・ファイル７４がインターネット・ユーザのコンピュータ５０に予めダウンロードまたは作成されているものとする。ステップ６１０で、インターネット・ユーザはブラウザ７２を開始即ち起動し、インターネット９０へのアクセスを開始する。ステップ６２０で、ライブラリ・ファイル７４が開かれ、ステップ６３０に示すように所定のコンテンツ・プロバイダとの接続が自動的に確立される。ＢＩＯライブラリのアクティブＸコントロールまたはプラグインコードにより規定された機能が、コンテンツ・プロバイダによりユーザのコンピュータ５０へ（ライブラリ・ファイル７４へ）伝送されて、ブラウザ・インターフェイス２０に追加出来るインターフェイス・オブジェクト４０が作成される。ステップ６４０に示すように、インターフェイス・オブジェクト４０は、インターネット・ブラウザ・インターフェイス２０と共に表示される。インターフェイス・オブジェクト４０の機能は、アクティブＸコントロールまたはプラグインコードにより規定されているが、インターネット・ユーザがインターネット９０を巡回している間、ユーザが訪れたインターネット・サイトの数や種類に関係無く、また、ユーザが、ブラウザ・ソフトウェア・プログラム７２を用いてインターネット９０にアクセスしている限り、インターネット・ブラウザ・インターフェイス２０と共に残っている。ステップ６５０に示すように、インターネット・ユーザが１つのインターネット・サイトから別のインターネット・サイトへ移動する時、本発明は、インターフェイス・オブジェクト４０が当該移動により現存しているかどうか、即ち、ステップ６５２に示すように、該オブジェクト４０が、ブラウザ・インターフェイス２０にブラウザ７２によりまだ表示されているかどうかの判断を行う。インターフェイス・オブジェクト４０がブラウザ・インターフェイス２０に表示されていなければ（即ち、ブラウザ・インターフェイス２０から削除されたか、他の理由により終了されていれば）、ステップ６６０に示すように、インターフェイス・オブジェクト４０は再描画される。インターフェイス・オブジェクト４０が１つのインターネット・サイトから別のインターネット・サイトへユーザの移動によっても残っていて、ブラウザ・インターフェイス２０内に表示された状態のままであれば、ステップ６５４で、ブラウザ７２が操作可能な状態であるかどうかの判断も行われる。何故なら、ブラウザ７２が操作可能な状態にあれば、インターフェイス・オブジェクト４０はブラウザ・インターフェイス２０にのみ表示されるからである。ブラウザ７２が操作可能な状態でなければ（ユーザがもうネットサーフィンをしていなければ）、ステップ６７０に示すように、インターフェイス・オブジェクト４０は終了され、ライブラリ・ファイル７４は閉じられる。ブラウザ７２が操作可能な状態のままであれば、本発明は、ステップ６５２で、インターフェイス・オブジェクト４０がブラウザ・インターフェイス２０と共に表示されることを保証し続ける。インターネット・ユーザがインターネット・サイト間で移動している時、本発明はインターフェイス・オブジェクト４０の状態をモニタし、ユーザがインターネット９０を巡回している限り、インターフェイス・オブジェクト４０がブラウザ７２によりブラウザ・インターフェイス２０と共に表示されることを保証する。
【００４１】
図６に示されている実施形態において、本発明は、ＢＩＯライブラリを初めに呼び出し、ユーザのコンピュータ５０へロードしたインターネット・ウエブサイト１３０からインターネット・ユーザが離れる際、ブラウザ７２がブラウザ・インターフェイス２０と共にインターフェイス・オブジェクト４０を表示することを保証するものである。例えば、ユーザがブラウザ７２を開始即ち起動したとき、第１のコンテンツ・プロバイダ１００により保守管理される第１の所定のインターネット・サイト１３０との接続が自動的に確立され、ＢＩＯライブラリがユーザのコンピュータ５０にロードされる。次いで、ＢＩＯライブラリにより提供される機能が、ライブラリ・ファイル７４により作成されたシェルを介してブラウザ７２に利用可能になる。インターネット・ユーザが、第２のコンテンツ・プロバイダ２００により保守管理されている第２のインターネット・サイト２３０と接続した時、インターフェイス・オブジェクト４０用の機能はブラウザ・インターフェイス２０に存在し続けることになる。本実施形態では、第１のインターネット・サイト１３０とのリンクが終了したとき、コンピュータ５０のブラウザ７２またはオペレーティング・システム７０が、ライブラリ・ファイル７４のアンロードを行うことによりＢＩＯライブラリの機能を使用禁止にすることを本発明により防止するものである。
【００４２】
例えば、ブラウザ７２がインターネット・サイト１３０と最初に接続した時、当該サイト１３０は、ライブラリ・ファイル７４の中へロードされるＢＩＯライブラリとして、アクティブＸコントロールソフトウェアコードの形で機能情報をインターネット・ユーザのコンピュータ５０へ伝送する。もし、第１のインターネット・サイト１３０との接続終了時に、ライブラリ・ファイル７４がオペレーティング・システム７０またはブラウザ７２により、閉じるか、またはアンロードのような明確な命令を受けていなければ、第１のインターネット・サイト１３０との接続が閉じられた後であっても、ライブラリ・ファイル７４はロードされた状態を保つことになり、ブラウザ・インターフェイス２０内のインターフェイス・オブジェクト４０用の所望の機能が提供されることになる。インターネット・ユーザが種々のインターネット・サイト間を移動している間、ライブラリ・ファイル７４がロードされたままの状態を保つことにより、ライブラリ・ファイル７４の内部を除いて、（第１のインターネット・サイト１３０によりインターネット・ユーザ５０へ伝送されるだけの）アクティブＸコントロールの外部のデータ、関数およびオブジェクトのロードを行うことが可能となる。ライブラリ・ファイル７４がロードされたままの状態を保っている限り、ライブラリ・ファイル７４で、および、アクティブＸコントロールの外部で作成されたいずれのデータやオブジェクトもロードされたままの状態となり、ブラウザ・インターフェイス２０内で機能し続けることになる。
【００４３】
ブラウザ７２が第１のインターネット・サイト１３０と接続した後、かつ、その接続が終了する前に、サーフィンの間ライブラリ・ファイル７４を開いた状態に保つことにより、グローバル・オブジェクトＡ（オブジェクトＡ）が、呼び出し関数のヒープではなく、インターネット・ユーザのコンピュータ５０のプログラムのヒープに作成される。このようにして、グローバル・オブジェクトは呼び出し関数の終了を生き延びることになる。Ｃ＋＋の新しい演算子を用いて、または、大域的宣言でグローバル・オブジェクトを宣言することによりグローバル・オブジェクトの作成を行う事が出来る。いずれの場合にせよ、グローバル・オブジェクトはブラウザ７２と第１のインターネット・サイト１３０との間の接続が終了しても存在し続けることになる。
【００４４】
このように規定されたグローバル・オブジェクトは、第１のインターネット・サイト１３０により提供されるアクティブＸコントロールが閉じた後、即ち第１のインターネット・サイト１３０との初期接続が終了した後も、機能し続けることになる。一度グローバル・オブジェクトが作成されると、このグローバル・オブジェクトを用いてインターフェイスが作成される。当該インターフェイスは、例えば、機能の削除、置換および／またはブラウザ７２とブラウザ・インターフェイス２０への機能の追加を行うために機能する。このインターフェイスは、グローバル・オブジェクトの一部として、あるいは、新たなインターフェイス・オブジェクト４０を割り当てるグローバル・オブジェクトにより作成しても良い。例えば、ブラウザ・ウインドウ３８内にインターフェイス・オブジェクト・ウインドウ４８（図３と図４などを参照のこと）を作成することなどにより、インターフェイス・オブジェクト４０を作成しても良い。上記とは別に、ブラウザ・インターフェイス２０は、例えば、ブラウザ・インターフェイス２０内にブラウザ・ツールバー２２またはブラウザ・ツールバー・オブジェクト２４の追加または変更などを行うことにより直接変更しても良い。さらに別の代替例として、図４に示されているブラウザ・インターフェイス２０から切り離されたオブジェクトインターフェイス・ツールバー４２の作成がある。
【００４５】
さらに、ブラウザ７２を制御して、例えば、所定のインターネット・サイト１３０との接続の確立をブラウザ７２に命令するのに用いるポインタが必要となる。このポインタを広範囲に格納することが望ましく、それによってブラウザ７２へコマンドを送信するライブラリ・ファイル７４内の任意の関数またはオブジェクトにより上記ポインタのアクセスが可能となる。例えば、マイクロソフト・インターネットエクスプローラでは、ＩＷｅｂＢｒｏｗｓｅｒ、ＩＷｅｂＢｒｏｗｓｅｒ２またはＩＷｅｂＢｒｏｗｓｅｒＡｐｐオブジェクトリンク＆組み込み（ＯＬＥ）インターフェイス・コマンドを用いてポインタを作成する事が出来る。例えば、マイクロソフト・ファウンデーション・クラス（ＭＦＣ）を利用して、ＣＯｌｅＣｏｎｔｒｏｌクラスのＧｅｔＣｌｉｅｎｔＳｉｔｅメンバーを使用し、第１のインターネット・サイト１３０、即ちＢＩＯライブラリをロードしたインターネット・サイトからポインタを検索するポインタを作成する事が出来る。ＧｅｔＣｌｉｅｎｔＳｉｔｅはブラウザ７２がＢＩＯライブラリと交信するためのエントリポイントとして機能する。前回のステップにより返されたＩＯｌｅＣｌｉｅｎｔＳｉｔｅクラスのＧｅｔＣｏｎｔａｉｎｅｒメンバーを用いてＢＩＯライブラリ用コンテナへのポインタを取得する事が出来る。ＢＩＯライブラリのコンテナは、アクティブＸコントロールをロードするコンテナである。インターネット・ブラウザ・インターフェイス２０は一般にブラウザ・ツールバー２２とコンテンツ・ウインドウ３２とを含むいくつかの部分から構成される。ドキュメントオブジェクトは、インターネット・ユーザがアクセスし、ある特定のウエブページに現れる全てのデータを含む全てのウエブページ用としてブラウザ７２により作成される。ドキュメントオブジェクトはＢＩＯライブラリ用のコンテナでもある。従って、ドキュメントオブジェクトをＢＩＯライブラリのコンテナと呼ぶ場合もある。
【００４６】
前回のステップにより返されたＩＯｌｅＣｏｎｔａｉｎｅｒクラスのＱｕｅｒｙＩｎｔｅｒｆａｃｅメンバーを用いて、ＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒインターフェイスへのポインタを取得する事が出来る。このポインタを用いて、ブラウザ７２が示す別のインターフェイスの所在位置を検知する事が出来る。最後に、ＢＩＯライブラリを呼び出したブラウザ７２により提供される固有インターフェイスに対応して、前回のステップにより返されたＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒクラスのＱｕｅｒｙＳｅｒｖｉｃｅメンバーを用いて、ＩＷｅｂＢｒｏｗｓｅｒＡｐｐ、ＩＷｅｂＢｒｏｗｓｅｒまたはＩＷｅｂＢｒｏｗｓｅｒ２インターフェイスへのポインタを取得する事が出来る。
【００４７】
ある代替実施形態では、本発明を用いてブラウザ・ウインドウ３０全体の変更を行う事が出来る。ブラウザ・ウインドウ３０全体を変更する場合、インターフェイス・オブジェクト４０を既存のブラウザ・ウインドウ３８の中へ統合化するのとは対照的に、変更したブラウザ・ウインドウ３０用のクラス全体をサブクラス化したり、或いは、固有ブラウザ・ウインドウ３８をサブクラス化したりすることが可能となる。ここで用いられている、ウインドウ・フッキング（ｈｏｏｋｉｎｇ  ａ  ｗｉｎｄｏｗ）とも呼ばれる“ウインドウのサブクラス化”という用語は、ユーザ規定ウインドウ・メッセージ・ハンドリング・プロシージャを用いて、ウインドウへ送信される全てのメッセージ処理と元のブラウザ・ウインドウ・メッセージ・ハンドリング・プロシージャを置き換えることを意味する。例えば、ウインドウはマイクロソフト・ファウンデーション・クラス（ＭＦＣ）ＣＷｎｄ：ＳｕｂｃｌａｓｓＷｉｎｄｏｗ  （）関数を用いてサブクラス化する事が出来る。上記とは別に、ＧＷＬ＿ＷＮＤＰＲＯＣ引数（マイクロソフト・ウインドウズ定数）と共にＳｅｔＷｉｎｄｏｗＬｏｎｇ関数（マイクロソフト・ウインドウズ関数）呼び出しを用いて、ウインドウをサブクラス化することも可能である。サブクラスのウインドウ用の元のブラウザ・ウインドウ・メッセージ・ハンドリング・プロシージャにＳｅｔＷｉｎｄｏｗＬｏｎｇ関数呼び出しにより返されたポインタを格納しても良い。これによって、ウインドウ３０または３８へ渡される全てのメッセージをＢＩＯライブラリがインターセプトすることが可能となる。さらに、ＢＩＯライブラリは、ブラウザ７２から提供された、ボタン、メニューなどを含むインターフェイス制御２４からのコマンド、または、本発明に準拠するＢＩＯライブラリにより追加されたインターフェイス・オブジェクト４０からのコマンドを翻訳することが可能となる。
【００４８】
ＢＩＯライブラリにより与えられるユーザ規定ウインドウ・メッセージ・ハンドリング・プロシージャであって、元のブラウザ・ウインドウ・メッセージ・ハンドリング・プロシージャを置き換える上記ユーザ規定ウインドウ・メッセージ・ハンドリング・プロシージャは、ＢＩＯプロシージャ（ＢＩＯ  Ｐｒｏｃｅｄｕｒｅ）と呼ばれる。ブラウザ７２に対してＢＩＯプロシージャを用いて、ブラウザ７２用として意図されたメッセージ（コマンドなど）をインターセプトし、変更することも可能である。あるいは置き換えまたは新たなメッセージ（インターフェイス・オブジェクト４０用メッセージハンドラなど）をＢＩＯプロシージャによりブラウザ７２へ伝送することも可能である。
【００４９】
本発明はまた、ブラウザ・インターフェイス２０からのインターフェイス・オブジェクト４０の削除を保証するものでもある。例えば、インターネット・ユーザが新たなウエブサイトにアクセスすると、インターネット・ブラウザ７２のなかにはブラウザ・インターフェイス２０全体を再描画するものもある。ユーザが行う上記のようなインターネットでの移動に従いながらグローバル・オブジェクトがまだ機能可能な間、インターフェイス・オブジェクト４０がブラウザ・インターフェイス２０から削除される結果、インターフェイス・オブジェクト４０はブラウザ・インターフェイス２０により表示され無くなる。このような事態が生じるのを防ぐために、ブラウザ・インターフェイス２０をリペイントするブラウザ７２からのメッセージ（コマンドなど）をＢＩＯプロシージャによりインターセプトすることが可能であり、ブラウザ・インターフェイス２０が再描された直後にインターフェイス・オブジェクト４０を再描画することが可能となる。上記とは別に、ブラウザ・インターフェイス２０におけるインターフェイス・オブジェクト４０の存在を周期的にテストすることが可能であり、インターフェイス・オブジェクト４０が存在しなければ、ブラウザ・インターフェイス２０内にインターフェイス・オブジェクト４０を再描画することが可能となる。ほぼ１秒未満の間隔でこのような周期的テストを行うことが望ましい。
【００５０】
上述の実施形態の一例（図６に図示）として、アクティブＸコントロールがＢＩＯライブラリとしてロードされ、メニュー項目（および機能）がブラウザ・インターフェイス２０に追加される。本発明は、新たなグローバル・オブジェクト（オブジェクトＡ）を動的に作成するアクティブＸコントロールを作成するものであり、この新たなグローバル・オブジェクトによって、ブラウザ・インターフェイス２０に追加すべき所望の機能を備えた新たなメニュー・オブジェクト（このオブジェクトはインターフェイス・オブジェクト４０であってもよい）が作成される。命令ＡｆｘＧｅｔＭａｉｎＷｎｄ  （）−  ＧｅｔＭｅｎｕ  （）−  ＡｐｐｅｎｄＭｅｎｕ  （）を用いてメニュー・オブジェクト４０をブラウザ・インターフェイス２０に追加することも可能である。この場合、ブラウザ・インターフェイス２０の追加メニューはメニュー・オブジェクト４０を指示するポップアップメニューを含むことになる。次いで、ブラウザ・インターフェイス・ウインドウがサブクラス化され、このブラウザ・インターフェイス・ウインドウにより、ＢＩＯプロシージャにより処理されたメニュー・オブジェクト４０用としてメッセージが処理され、ブラウザ・インターフェイス２０用のメッセージはブラウザ７２用メッセージハンドラへ渡される。インターネット・ユーザが第１のインターネット・サイト１３０から切断する（アクティブＸコントロールを含むウエブページから出る）と、アクティブＸコントロールは閉じることになるが、グローバル・オブジェクト（オブジェクトＡ）はプログラムのヒープ（ｐｒｏｇｒａｍ  ｈｅａｐ）中に残り、ブラウザ・インターフェイス２０へ所望の機能を提供し続ける。
【００５１】
インターフェイス・オブジェクト４０が追加されるブラウザ・ウインドウをサブクラス化する代わりに、オブジェクトＡまたはその子孫のうちの１つは、インターフェイス・オブジェクト４０の所有者である状態を保持することが可能である。次いで、インターフェイス・オブジェクト４０用のメッセージハンドラを作成する事が出来る。例えば、マイクロソフト・ファウンデーション・クラスを用いて、オブジェクトＡまたはその子孫のうちの１つになるようにセットするということを除いて、インターフェイス・オブジェクト４０の所有者が、上述の本発明の実施形態に準拠するブラウザ・ツールバー２２にインターフェイス・オブジェクト４０を追加する事が出来る。
【００５２】
次に図７から図１０までを続けて参照しながら、本発明によるブラウザ・インターフェイス２０を制御し、表示する方法（７００として全体を示す）、の別の実施形態について説明を行う。本願明細書に記載のように、図７の目的として、また、図７へ向けられる以下の説明のために、ライブラリ・ファイル７４がインターネット・ユーザのコンピュータ５０に予め作成されている。ステップ７１０で、インターネット・ユーザはブラウザ７２を開始即ち起動して、インターネット９０にアクセスする。ステップ７２０で、ライブラリ・ファイル７４がユーザのコンピュータ５０で開かれ、ステップ７３０に示されるように所定のインターネット・サイト１３０との接続が自動的に確立される。ステップ７４０で、ＢＩＯライブラリのアクティブＸコントロールまたはプラグインコードにより規定された機能が、コンテンツ・プロバイダによりユーザのコンピュータ５０へ（ライブラリ・ファイル７４へ）伝送されて、インターフェイス・オブジェクト４０の表示を制御する連続ループを用いて、ブラウザ・インターフェイス２０で表示出来るインターフェイス・オブジェクト４０が作成される。連続ループの終了時にインターフェイス・オブジェクト４０を削除する（即ちその機能を終了させる）だけでよい。アクティブＸコントロールまたはプラグインコードにより規定されているようなインターフェイス・オブジェクト４０の機能は、ユーザが訪れたインターネット・ウエブサイトの数やタイプに関係無く、また、インターネット・ユーザがブラウザ・ソフトウェア・プログラムを用いてインターネットにアクセスしている限り、そして、ブラウザ７２が起動状態のままである限り、インターネット・ユーザがインターネット９０を巡回する時のインターネット・ブラウザ・インターフェイス２０の場合の状態のままである。インターネット・ユーザが１つのウエブサイトから別のウエブサイトへ移動する時、ステップ７５０に示すように、本発明は、インターフェイス・オブジェクト４０がその移動により現存しているかどうかの判断、即ち、ステップ７５２に示すように、上記オブジェクト４０がブラウザ・インターフェイス２０にまだ表示されているかどうかの判断を行うものである。インターフェイス・オブジェクト４０がブラウザ７２によりブラウザ・インターフェイス２０に表示されていなければ（即ち、ブラウザ・インターフェイス２０から削除されているか、さもなければ終了していれば）、ステップ７６０に示すように、インターフェイス・オブジェクト４０は再描画される。インターフェイス・オブジェクト４０が１つのウエブサイトから別のウエブサイトへユーザの移動する間にも残っていて、ブラウザ・インターフェイス２０に表示された状態のままであれば、ステップ７５４で、ブラウザ７２が操作可能な状態であるかどうかの判断も行われる。何故なら、ブラウザ７２が操作可能な状態にあれば、インターフェイス・オブジェクト４０はブラウザ７２によりブラウザ・インターフェイス２０のみに表示されるからである。ブラウザ７２が起動していなければ、ステップ７７０に示すように、インターフェイス・オブジェクト４０は終了し、ライブラリ・ファイル７４は閉じられる。ブラウザ７２が操作可能な状態のままであれば、本発明は、ステップ７５６で、連続ループが終了しているかどうかの判断を行う。ループが終了していれば、ステップ７７０に示すように、インターフェイス・オブジェクト４０も終了する。ステップ７５２に示すように、ループがまだ処理を実行していれば、本発明は、インターフェイス・オブジェクト４０がブラウザ・インターフェイス２０にまだ表示されているかどうかの判断を行う。
【００５３】
図７に示されている本発明の実施形態では、たとえオペレーティング・システム７０またはブラウザ７２がライブラリ・ファイル７４のアンロードまたは終了を行う命令を生成しても、（アクティブＸコントロールコードが中でロードされる）ライブラリ・ファイル７４の処理をフリーズさせることによりアクティブＸコントロールのアンロードを防止するようにするものである。ライブラリ・ファイル７４がフリーズし、アンロードを終了させなくすることに起因して、アクティブＸコントロールが作成したライブラリ・ファイル７４の内部のデータ、関数およびオブジェクトのすべては、ライブラリ・ファイル７４がアンロード命令を受けた後も存在し、機能し続ける。
【００５４】
いくつかのオペレーティング・システム７０および／またはブラウザ７２では、アクティブＸコントロールが最早インターネット・サイトに存在しなくなったとき、ＢＩＯライブラリは閉じられる。このことは、図１０のインターネット・サイト１３０などの、アクティブＸコントロールを持つ１つのインターネット・サイトから、図１０のインターネット・サイト２３０などの、アクティブＸコントロールを持たない別のインターネット・サイトへインターネット・ユーザが移動する時生じる場合がある。アクティブＸコントロールが存在しないとき、インターフェイス・オブジェクト４０の作動の継続を可能にするために、ＢＩＯライブラリ（およびライブラリ・ファイル７４）が閉じないようにする必要がある。
【００５５】
これを達成するために、ブラウザ７２の制御に用いるポインタが作成される。このポインタはグローバルに格納することが望ましく、それによってブラウザ７２へコマンドを送信する必要があるライブラリ・ファイル７４内の任意の関数またはオブジェクトにより上記ポインタのアクセスが可能となる。例えば、マイクロソフト・インターネットエクスプローラでは、ＩＷｅｂＢｒｏｗｓｅｒ、ＩＷｅｂＢｒｏｗｓｅｒ２またはＩＷｅｂＢｒｏｗｓｅｒＡｐｐＯＬＥインターフェイス・コマンドを用いてポインタを作成する事が出来る。マイクロソフト・ファウンデーション・クラス（ＭＦＣ）を利用してこれを行うために、（ＢＩＯライブラリとの交信に用いる事が出来る）ＣＯｌｅＣｏｎｔｒｏｌクラスのＧｅｔＣｌｉｅｎｔＳｉｔｅメンバーを用いて、ＢＩＯライブラリのインターネット・サイト、即ち、アクティブＸコントロールを行うそのインターネット・サイトへのポインタの検索を行う事が出来る。前回のステップにより返されたＩＯｌｅＣｌｉｅｎｔＳｉｔｅクラスのＧｅｔＣｏｎｔａｉｎｅｒメンバーを用いて、ＢＩＯライブラリ用コンテナへのポインタを取得する事が出来る。前回のステップにより返されたＩＯｌｅＣｏｎｔａｉｎｅｒクラスのＱｕｅｒｙＩｎｔｅｒｆａｃｅメンバーを用いて、ＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒインターフェイスへのポインタを取得する事が出来る。ＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒインターフェイスを用いて、ブラウザ７２が示す別のインターフェイスのうちのいずれでも容易に見つける事が出来る。ＢＩＯライブラリを呼び出したブラウザ７２のバージョンにより示されるインターフェイスに応じて、前回のステップにより返されたＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒクラスのＱｕｅｒｙＳｅｒｖｉｃｅメンバーを用いて、ＩＷｅｂＢｒｏｗｓｅｒＡｐｐ、ＩＷｅｂＢｒｏｗｓｅｒまたはＩＷｅｂＢｒｏｗｓｅｒ２インターフェイスへのポインタを取得する事が出来る。
【００５６】
ライブラリ・ファイル７４が閉じないようにするために、ライブラリ・ファイルの動作は停止される。ライブラリ・ファイル７４の処理のフリーズまたは停止を行うために、ＢＩＯライブラリがアンロードされた時にのみ終了する連続するプログラムループを作成し、処理を実行することも可能である。その時点でプログラムループはメッセージキューのポンピングも行う。このプログラムループは、本願明細書ではメッセージポンプと呼ばれ、ループ内のＰｅｅｋＭｅｓｓａｇｅ、ＧｅｔＭｅｓｓａｇｅ、ＴｒａｎｓｌａｔｅＭｅｓｓａｇｅおよびＤｉｓｐａｔｃｈＭｅｓｓａｇｅコマンドを用いてこのプログラムループを作成することが可能である。メッセージポンプを実行するＣ＋＋コードの例を以下に示す。
【００５７】
【表１】
2005508035.tif 000003
【００５８】
但し、ｍ＿Ｃｏｎｔｉｎｕｅは停止時点をループに命令するのに用いる論理変数であり、ＰｅｅｋＭｅｓｓａｇｅ，  ＧｅｔＭｅｓｓａｇｅ，  ＴｒａｎｓｌａｔｅＭｅｓｓａｇｅ，  ａｎｄ  ＤｉｓｐａｔｃｈＭｅｓｓａｇｅは全てのウインドウズ関数である。ｍ＿Ｃｏｎｔｉｎｕｅが偽ならば、ループは終了し、メッセージポンプを終了させる。ｍｓｇ引数はウインドウズＭＳＧ構造に対する基準値である。
【００５９】
メッセージポンプが好適に作動する方法として、任意のＰｅｅｋＭｅｓｓａｇｅ関数を用いてメッセージキュー内で待機している任意のメッセージがあるかどうかを調べるためにチェックを行う方法が挙げられる。メッセージが存在すれば、メッセージポンプは、ＧｅｔＭｅｓｓａｇｅ関数を用いてメッセージキューからメッセージを取得し、ＴｒａｎｓｌａｔｅＭｅｓｓａｇｅ関数を用いてバーチャル・キーメッセージからこのメッセージを変換し、キャラクタ・メッセージに変える。最後に、メッセージポンプは、ＤｉｓｐａｔｃｈＭｅｓｓａｇｅ関数を用いてメッセージを受け取るようになっている初期のウインドウ・メッセージ・ハンドリング・プロシージャへメッセージを送信する。
【００６０】
オペレーティング・システム７０の組み込まれた能力を利用して、メッセージキューをポンピングするメッセージポンプを構成することも可能である。例えば、ＭＦＣコマンドＣＷｎｄ：：  ＭｅｓｓａｇｅＢｏｘ（“マイモーダル”，ＭＢ＿ＯＫ）などのコマンドを用いるモーダル・ダイアログ・ボックスやメッセージボックスはこの目的を果たすのに十分に役立つものとなり、さらに、このボックスはライブラリ・ファイル７４の処理のフリーズや停止を行うために利用される。
【００６１】
メッセージポンプが連続ループ処理を実行している限り、インターネット・ユーザが別のインターネット・サイトをアクセスしている時でもアクティブＸコントロールが終了する事は無い。
【００６２】
図７により示されている本発明の実施形態は、（例えばサブクラス化、メッセージ処理などの場合）図６の上述の実施形態と同様に実施される。
【００６３】
上述の実施形態（図６と図７）の双方において、必ずしも必要というわけではないが、インターフェイス・オブジェクト４０用の出口関数を設けて、オブジェクトＡとその子孫のすべてを閉じるようにすることが望ましい。出口関数を呼び出すための実施可能な例示シナリオには、ＢＩＯプロシージャ内のブラウザ・ウインドウを閉じるためにメッセージをインターセプトするステップや、アクティブＸコントロールを終了させるステップが含まれる。
【００６４】
次に図８を参照すると、本発明の方法のさらに別の実施形態が示され、その全体が８００として参照される。図８の目的として、また、図８へ向けられる以下の説明のために、ライブラリ・ファイル７４がインターネット・ユーザのコンピュータ５０に予め作成されている。ステップ８１０で、インターネット・ユーザはブラウザ７２を開始即ち起動して、インターネット９０にアクセスする。ステップ８２０で、ライブラリ・ファイル７４がユーザのコンピュータ５０で開かれ、ステップ８３０に示されるように、所定のインターネット・サイト１３０（図１０などを参照のこと）との接続が自動的に確立される。ステップ８３２で、ブラウザ７２により提供される初期のブラウザ・インターフェイスの複製である新たなブラウザ・インターフェイスが作成される。ステップ８４０で、プラグインの機能が最初にロードされた元のブラウザ・インターフェイスを表す機能ウインドウが作成される。
【００６５】
本発明のこの実施形態に準拠する機能ウインドウの作成ステップが図８ａに示され、全体が８４０として参照される。ステップ８４２で、最初のブラウザ・インターフェイス・ウインドウ用のハンドルが特定される。最初のブラウザ・インターフェイス・ウインドウ（この時点においては機能ウインドウである）は、ステップ８４４で隠し状態および／または使用禁止の状態にされているため閉じる事は出来ない。これを閉じれば、ＢＩＯライブラリをクラッシュさせることになる。ステップ８４６で、ブラウザ７２の制御に用いるポインタが作成される。最後に、ステップ８４８で、インターネットを巡回するためにインターネット・ユーザが使用出来る新たなブラウザ・インターフェイス・ウインドウが作成される。
【００６６】
図８を再び参照すると、ステップ８５０から始めて、制御の対象とする任意のブラウザ・ウインドウ、または、ブラウザが使用する任意のウインドウの第１のサブクラス化、次いで、以下さらに詳細に説明するようなウインドウの追加、削除および／または変更により、今度はブラウザ・インターフェイスの制御を行うことが可能となる。元のブラウザウインドウ・メッセージ・ハンドリング・プロシージャは（上記で規定したように）ＢＩＯプロシージャにより置き換えられる。ステップ８６０で、本発明は、任意の新たなブラウザ・ウインドウ（即ち予めサブクラス化されていない可能性のあるウインドウ、または、本発明に準拠して制御されていない可能性があるウインドウ）が開かれているかどうかの判断を行う。新たなウインドウが開かれていれば、本発明は、ステップ８７０で、インターフェイス・オブジェクト４０をこれらの新たなウインドウに追加すべきかどうかの判断を行う。新たなウインドウが開かれていなければ、本発明は、ステップ８８０で示すように、インターネット・ユーザがブラウザ７２を閉じることを望んでいるかどうかの判断を行う。望んでいれば、本発明は、ステップ８９０で、機能ウインドウを含む全てのブラウザ・ウインドウを閉じる。ユーザがブラウザ７２を閉じることを望んでいなければ、ステップ８８０で判断されるように、本発明はステップ８６０へ戻り、新たなブラウザ・ウインドウが開かれているかどうかの判断を再び行う。
【００６７】
図８、図８ａおよび図１０を続けて参照しながら、上述の本発明の実施形態についてさらに詳細に解説することにする。インターネット・サイト１３０を介してコンテンツ・プロバイダ１００によりアクティブＸコントロールがロードされると、一般に、ブラウザ７２によるそのウエブサイト１３０との接続の確立とアクティブＸコントロールの呼び出しとに応じて、ユーザのコンピュータに配置されているライブラリ・ファイル７４が開かれ、ブラウザ７２内にシェルが作成される。このブラウザ７２内でアクティブＸコントロール用コードをロードする事が出来る。アクティブＸコントロールが閉じられる場合（ユーザがインターネット・サイト１３０との接続を終了させる場合）に、ライブラリ・ファイル７４がアンロードされた時にアクティブＸコントロールを含むライブラリ・ファイル７４がアンロードまたはクローズを行うようにオペレーティング・システム７０またはブラウザ７２により明示的に命令されていれば、ライブラリ・ファイル７４内を除いたアクティブＸコントロールの外側で作成された全てのデータ、関数またはオブジェクトが破壊される。ライブラリ・ファイル７４のアンロードを防止するために、命令されるまでブラウザ７２はアクティブＸコントロールのクローズを妨げられる。アクティブＸコントロールがクローズ命令を受けることがなければ、ライブラリ・ファイル７４がアンロードされることは決してない。
【００６８】
これを達成する好適な方法として、アクティブＸコントロールをロードした最初のブラウザ・インターフェイス・ウインドウを隠し状態および／または使用禁止状態にして、インターネット・ユーザが中で作業を続け、インターネットを巡回することが可能なその同一のウインドウの新たなコピーを作成する方法がある。最初のブラウザ・インターフェイスが望むらくは隠し状態および／または使用禁止状態にされているため、ライブラリ・ファイル７４が、最初のブラウザ・インターフェイス用ウインドウ（ライブラリ・ファイル７４をロードしたウインドウ）を示すまで、このウインドウを作動可能にするまで、あるいは、このウインドウを閉じるまでアクティブＸコントロールを閉じる事は出来ない。
【００６９】
図８の上述の方法として、例えば、ウエブページ１３０内に、または、バンドオブジェクトとして通常含まれているタグを利用して、および、マイクロソフト・インターネットエクスプローラ４．ｘ用ソフトウェア開発キットに記載のように、ブラウザ７４内の標準的アクティブＸコントロールとしてＢＩＯライブラリを好適にロードする方法が挙げられる。これは、ＢＩＯライブラリ用コードを含むライブラリ・ファイル７４の初期化と実行とをブラウザ７２に命令するものである。
【００７０】
ＢＩＯライブラリを初期化し、呼び出した最初の時点で、機能ウインドウが作成され、インターネット・ユーザが別のインターネット・ウエブサイト２１０、即ち別のウエブページを訪問している間、この機能ウインドウは、アクティブＸコントロール自身とのセッションを開いた状態に保つことによりＢＩＯライブラリは開いた状態に保たれる。この機能ウインドウによって、開いているＢＩＯライブラリのコピーを有さないブラウザ・ウインドウが、ブラウザ７２と接続するＯＬＥインターフェイスにアクセスすることも可能となる。
【００７１】
機能ウインドウを作成するために、最初のブラウザ・インターフェイス・ウインドウ（即ちＢＩＯライブラリをロードしたウインドウ）を隠し状態および／または使用禁止状態にすることが望ましい。これは、ＢＩＯライブラリのハンドルから始めて、最初のブラウザ・インターフェイス・ウインドウ用のハンドルを特定することにより達成する事が出来る。ＢＩＯライブラリのハンドルから最初のブラウザ・インターフェイス用ウインドウハンドルを検索するために、ＧｅｔＰａｒｅｎｔ関数の呼び出し用の現在値がデスクトップウインドウより１つ下のレベルを表すまで、ＧｅｔＰａｒｅｎｔ関数（ウインドウズ関数）が連続して呼び出される。例えば、ループ内で実行される“ｍ＿Ｈａｎｄｌｅ＝ＧｅｔＰａｒｅｎｔ（ｍ＿Ｈａｎｄｌｅ）”などの宣言により所望の機能と結果を得る事が出来る。但しｍ＿Ｈａｎｄｌｅの値はＢＩＯライブラリのハンドル値に等しく最初セットされ、次いで、この値は、最終的に最初のブラウザ・インターフェイス・ウインドウへこのハンドルを返す。
【００７２】
次のステップは、最初のブラウザ・インターフェイス・ウインドウ（今度は機能ウインドウと呼ばれる）を隠すおよび／または使用禁止にし、その結果インターネット・ユーザが、（例えばブラウザ７２を閉じることにより）機能ウインドウを閉じることが出来ないようにし、それによって、ＢＩＯライブラリにアンロードを行わせ、ＢＩＯライブラリにより提供された機能をブラウザ・インターフェイス２０から削除するステップである。ユーザから最初のブラウザ・インターフェイス・ウインドウを隠すおよび／またはユーザ駆動イベントからそのブラウザ・ウインドウを使用禁止にするために、ブラウザ・ウインドウを隠すおよび／またはブラウザ・ウインドウを使用禁止にする値と共に、ＷＭ＿ＳＨＯＷＷＩＮＤＯＷおよび／またはＷＭ＿ＥＮＡＢＬＥメッセージ（双方ともウインドウズ定数）を最初のブラウザ・インターフェイス・ウインドウへ送信する事が出来る。例えば、ブラウザ・ウインドウハンドルを用いて最初のブラウザ・インターフェイス・ウインドウへメッセージを送信するために、ＰｏｓｔＭｅｓｓａｇｅまたはＳｅｎｄＭｅｓｓａｇｅ関数（既存のウインドウズ関数）を利用する事が出来る。上記とは別に、ＳｈｏｗＷｉｎｄｏｗおよびＥｎａｂｌｅＷｉｎｄｏｗ関数（既存のウインドウズ関数）を用いて同じ結果を得ることも可能である。
【００７３】
ブラウザ７２を制御するポインタが作成される。ブラウザ７２へコマンドを送信する、ライブラリ・ファイル７４内の任意の関数またはオブジェクトによりアクセス可能となるように、このポインタをグローバルに格納することが望ましい。例えば、マイクロソフト・インターネットエクスプローラでは、ＩＷｅｂＢｒｏｗｓｅｒ、ＩＷｅｂＢｒｏｗｓｅｒ２またはＩＷｅｂＢｒｏｗｓｅｒＡｐｐＯＬＥインターフェイスを用いて前記ポインタを作成する事が出来る。例えば、マイクロソフト・ファウンデーション・クラスを利用して上記を行うために、ブラウザ７２用のエントリポイントとして役立つＣＯｌｅＣｏｎｔｒｏｌクラスのＧｅｔＣｌｉｅｎｔＳｉｔｅメンバーを用いて、ＢＩＯライブラリと交信して、ＢＩＯライブラリのインターネット・サイト、即ち、アクティブＸコントロールをロードしたインターネット・サイト１３０へのポインタの検索を行う事が出来る。前回のステップにより返されたＩＯｌｅＣｌｉｅｎｔＳｉｔｅクラスのＧｅｔＣｏｎｔａｉｎｅｒメンバーを用いて、ＢＩＯライブラリ用コンテナへのポインタを取得する事が出来る。前回のステップにより返されたＩＯｌｅＣｏｎｔａｉｎｅｒクラスのＱｕｅｒｙＩｎｔｅｒｆａｃｅメンバーを用いて、ＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒインターフェイスへのポインタを取得することが可能であり、ＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒインターフェイスを用いて、ブラウザ７２が示す別のインターフェイスのうちのいずれのインターフェイスでも見つけられるようにすることが望ましい。ＢＩＯライブラリを呼び出したブラウザ７２のバージョンにより示されるインターフェイスに応じて、前回のステップで返されたＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒクラスのＱｕｅｒｙＳｅｒｖｉｃｅメンバーを用いて、ＩＷｅｂＢｒｏｗｓｅｒＡｐｐ、ＩＷｅｂＢｒｏｗｓｅｒまたはＩＷｅｂＢｒｏｗｓｅｒ２インターフェイスへのポインタを取得しても良い。
【００７４】
最後に、インターネット・ユーザがネットサーフィンを続ける（即ち、種々の異なるインターネット・サイトにアクセスし続ける）事が出来る新たなブラウザ・ウインドウが作成される。何故なら、機能ウインドウを作成するために前に使用したブラウザ・ウインドウが隠し状態および／または使用禁止状態にされているからである。好ましくは、ＩＷｅｂＢｒｏｗｓｅｒ、ＩＷｅｂＢｒｏｗｓｅｒ２またはＩＷｅｂＢｒｏｗｓｅｒＡｐｐＯＬＥインターフェイスのうちのいずれかを用いて（例えばそのＯＬＥインターフェイスのナビゲートメンバーまたはナビゲート２メンバーを用いて）、新たなブラウザ・ウインドウを作成することが望ましい。上記とは別に、Ｎｅｗ  ＷｉｎｄｏｗやＯｐｅｎ  Ｉｎ  Ｎｅｗ  Ｗｉｎｄｏｗコマンドなどの、ブラウザ７２を用いて新たなブラウザ・ウインドウを開く事が出来るような、任意のコマンドに対応するＷＭＣＯＭＭＡＮＤメッセージをブラウザ７２へ送信することも可能である。ブラウザ７２により提供される動的データ交換（ＤＤＥ）サポートを用いて新たなウインドウを開くようにしても良い。
【００７５】
ＢＩＯライブラリは、様々なブラウザ・インターフェイスの特徴と機能との追加／削除／変更即ちこれらの特徴と機能とを制御する必要がある。第１のステップとして、本発明に準拠して制御の対象となるブラウザ・ウインドウのうちのいずれかまたはブラウザが使用するウインドウ（即ち子ウインドウ）のうちの任意のサブクラス化を行うステップがある。ＢＩＯウインドウ・メッセージ・ハンドリング・プロシージャを用いて、本願明細書で以後ＢＩＯプロシージャと呼ぶ元のウインドウ・メッセージ・ハンドリング・プロシージャの置き換えが行われる。
【００７６】
一度ブラウザ・ウインドウ、または、その子ウインドウのうちの任意のサブクラス化が行われると、ＧｅｔＭｅｎｕ関数を用いてブラウザ・ウインドウ・メニューへのポインタを検索することによりサブクラス・メニューへの追加が可能となる。一度メニューのハンドルへのポインタを取得すると、ＭｏｄｉｆｙＭｅｎｕ，ＡｐｐｅｎｄＭｅｎｕ，ＩｎｓｅｒｔＭｅｎｕなどのメニュー関数を用いて、任意の所望のメニューをブラウザ・ウインドウに追加する事が出来る。メニューに割り当てられたいずれのコマンドも、ＢＩＯウインドウのサブクラス化に用いるＢＩＯプロシージャにより処理する必要がある。メニュー作成時にブラウザ内に含まれるコマンド識別子と同じコマンド識別子を使用してはならない。
【００７７】
標準的ウインドウズ関数を用いてツールバー４２の追加先であるウインドウのハンドル（本願明細書では以後フレームハンドルと呼ぶ）を検索することにより、インターフェイス・オブジェクト・ツールバー４２をブラウザ・インターフェイス２０に追加する事が出来る。一般に、上記ウインドウは、ＢＩＯウインドウまたはＢＩＯウインドウの子であるフレームウインドウになる。次いで、親ウインドウとしてフレームハンドルを用いてウインドウが作成される。例えば、（ツールバーの１つの形である）ダイアログバーをインターフェイス・オブジェクト４０として追加するために、タイプＣＤｉａｌｏｇＢａｒ（マイクロソフト・ファウンデーション・クラス）から導き出されたり、タイプＣＤｉａｌｏｇＢａｒのオブジェクトが作成されたりするが、これがフレームハンドルを用いて呼び出すＣｒｅａｔｅ法である。例えば、画像、ツールバー、ダイアログなどのようなリソースが使用され、かつ、ブラウザ７２がＢＩＯライブラリと同じリソースを共有していない場合、ＢＩＯライブラリリソースから任意のデータをロードする事が出来るようになる前に、ブラウザのリソースはＢＩＯライブラリリソースより一時的に置き換えられる。その後、ブラウザの原リソースよってＢＩＯライブラリリソースの置き換えが可能となる。
【００７８】
新たなブラウザ・ウインドウが開かれると、この新たなウインドウにインターフェイス・オブジェクト４０を追加することが望ましい場合がある。ユーザ定義関数を呼び出すＳｅｔＴｉｍｅｒウインドウズ関数を用いてタイマを作成しても良い。上記ユーザ定義関数は、機能ウインドウと同じクラス名を持つデスクトップウインドウの全ての子ウインドウのチェックを行うＦｉｎｄＷｉｎｄｏｗＥｘ関数（ウインドウズ関数）を利用することになる。予め変更されていないブラウザ・ウインドウ、即ち、インターフェイス・オブジェクト４０を有していないブラウザ・ウインドウについては、必要なハンドルを検索することが可能であり、元のＢＩＯウインドウに対して行われた変更と同じ変更を行う事が出来る。
【００７９】
最後に、インターネット・ユーザがブラウザ７２を閉じることを望む場合、機能ウインドウを除いてブラウザ・ウインドウのすべてが閉じているかどうかの判断を行う必要がある。そして、他の全てのブラウザ・ウインドウが閉じていれば、この機能ウインドウも閉じなければならない。ＢＩＯメッセージ処理手順内のＷＭＣＬＯＳＥメッセージ（ウインドウズ定数）をリスンすることにより、あるいは、開かれているブラウザ・ウインドウ数を周期的にチェックするタイマをセットすることにより、上記を達成することが可能となる。元の機能ウインドウを閉じるために、ＷＭＣＬＯＳＥメッセージをそのウインドウへ送信する事が出来る。
【００８０】
次に図９を参照すると、本発明によるインターネット・ブラウザ・インターフェイス２０を制御し、これを表示する方法の別の代替実施形態が示され、全体が９００として指定されている。
【００８１】
ステップ９１０、９２０および９３０は図６〜図８の上述の実施形態の場合とほぼ同じである。ステップ９４０で、新たなブラウザ・インターフェイス・ウインドウを作成し、最初のブラウザ・インターフェイス・ウインドウを隠し状態および／または使用禁止状態とする。このブラウザ・インターフェイス・ウインドウは機能ウインドウと呼ばれる。プラグインは最初のブラウザ・インターフェイス・ウインドウ用ハンドルを特定し、このウインドウを隠すおよび／または使用禁止にし、インターネット・ユーザが使用出来る新たなブラウザ・インターフェイス・ウインドウを作成する。ステップ９５０で、全てのブラウザ・ウインドウがサブクラス化され、次いで、ステップ９６０で示されているように、全ての開かれたウインドウに対してブラウザ・インターフェイスを制御することが可能となる。ステップ９６２で、本発明は任意の新たなブラウザ・ウインドウが開かれているかどうかを判断し、開かれていれば、本発明はステップ９６０へ戻る。新たなブラウザ・インターフェイス・ウインドウが開かれていない場合、ステップ９６２はステップ９６４へ進み、インターネット・ユーザがブラウザを閉じることを望んでいるかどうかが判断される。機能ウインドウを閉じる前に全てのウインドウを閉じる必要があり、それはステップ９６６で判断される。ステップ９７０で示されているように、全てのウインドウが閉じられた場合、機能ウインドウが閉じられる。全てのウインドウが閉じられていない場合、ステップ９６６はステップ９６４へ戻る。
【００８２】
本発明のさらに別の代替実施形態では、本発明は、ブラウザ・プラグインを用いてインターネット・ブラウザ・インターフェイスを制御して、呼び出しブラウザ７２の機能を制御（即ち追加、削除および／または変更）し、プラグインをロードしたインターネット・サイト１３０からユーザが出た後プラグイン機能を保持する方法を提供するものである。
【００８３】
ブラウザ７２とインターネット・サイト１３０との接続の確立と、プラグインの呼び出しとに応じて、ブラウザ・プラグインがインターネット・ユーザのコンピュータ５０にロードされると、ライブラリ・ファイル７４はブラウザ７２内にシェルを確立し、このブラウザ７２内にプラグイン用コードをロードする事が出来る。プラグインが閉じられた場合、ライブラリ・ファイル７４のアンロードを行うことがオペレーティング・システム７０またはブラウザ７２により明示的に指示されていれば、ライブラリ・ファイル７４がアンロードされた時、ライブラリ・ファイル７４内を除いたプラグインの外側で作成された全てのデータ、関数またはオブジェクトも破壊されることになる。ライブラリ・ファイル７４がアンロードしないようにするために、プラグインのクローズ命令を受け取るまで、ブラウザ７２によるプラグインのクローズは妨げられる。プラグインがクローズ命令を受けることがなければ、ライブラリ・ファイル７４もアンロード命令を受けることは決してない。プラグインをロードした最初のブラウザ・ウインドウを隠すおよび／または使用禁止にすることにより、さらに、インターネット・ユーザがインターネットにアクセスし、インターネットを巡回するのに使用するために、その同じウインドウの新たなコピーを作成することにより、上記を達成する事が出来る。最初のブラウザ・ウインドウは隠された状態および／または使用禁止状態にされていることが望ましいため、プラグインは、ライブラリ・ファイル７４が表示、起動またはクローズを選ぶまで、プラグインをロードした最初のブラウザ・ウインドウを閉じる事は出来ない。
【００８４】
例えば、ブラウザ・プラグインが、好適にはウエブページ１１０内のタグ（図１０などを参照）を用いて、標準プラグインとしてブラウザ７２にロードされる。このプラグインは、プラグイン（即ちＢＩＯライブラリ）用コードを含むライブラリ・ファイル７４の初期化とロードとを行うようにブラウザ７２に命令する。
【００８５】
ＢＩＯライブラリが最初に初期化され、呼び出された時点で、元のブラウザ・ウインドウを隠すおよび／または使用禁止にすることにより機能ウインドウが作成され、これによって、プラグイン自身とのセッションを開いた状態に保つことによりＢＩＯライブラリのアンロードが防止される。この機能ウインドウによって、開いているＢＩＯライブラリのコピーを有さないブラウザ・ウインドウが、プラグイン用組み込み型アプリケーション・プログラミング・インターフェイス（ＡＰＩ）にアクセスすることも可能となる（即ち、ネットスケープ・ナビゲータとマイクロソフト・インターネットエクスプローラとにより提供されるようなブラウザ・インターフェイス２０を通じて、および、プラグイン機能を介して機能がインターネット・ユーザに利用可能となる）。
【００８６】
ブラウザ７２が最初に呼び出された時点で、最初のブラウザ・ウインドウを使用禁止にするか、隠す（この場合プラグインは常駐している）ことにより機能ウインドウが望むらくは作成される。これを行うために、プラグインは最初のブラウザ・ウインドウのハンドルを最初に特定する必要がある。ＮＰＷｉｎｄｏｗ構造のウインドウメンバーが、ＮＰＰＳｅｔＷｉｎｄｏｗ関数への第２の引数としてブラウザ７２からＢＩＯライブラリへ渡される。このウインドウメンバーはプラグインウインドウへのハンドルである（ＮＰＷｉｎｄｏｗとＮＰＰ＿ＳｅｔＷｉｎｄｏｗはプラグイン用のネットスケープおよびインターネットエクスプローラＡＰＩの一部である）。このウインドウメンバーから最初のブラウザ・ウインドウハンドルを検索するために、ＧｅｔＰａｒｅｎｔ関数を呼び出すための現在値がデスクトップウインドウより１つ下のレベルを表すまで、ＧｅｔＰａｒｅｎｔ関数（ウインドウズ関数）が連続して呼び出される。例えば、ループ内で実行される“ｍ＿Ｈａｎｄｌｅ＝ＧｅｔＰａｒｅｎｔ（ｍ＿Ｈａｎｄｌｅ）”などの宣言により所望の機能と結果とを得る事が出来る。但しｍ＿Ｈａｎｄｌｅの値はＮＰＷｉｎｄｏｗ構造のハンドル用の値に等しく最初セットされ、次いで、この値は、最終的に最初のブラウザ・ウインドウへこのハンドルを返す。
【００８７】
次いで、インターネット・ユーザが機能ウインドウを閉じて、ＢＩＯライブラリをクラッシュさせることが出来ないように、最初のブラウザ・ウインドウを隠し状態および／または使用禁止状態にする。ユーザから最初のブラウザ・ウインドウを隠すおよび／またはユーザ駆動イベントからそのウインドウを使用禁止にするために、ブラウザ・ウインドウを隠すおよび／またはブラウザ・ウインドウを使用禁止にする値と共に、ＷＭ＿ＳＨＯＷＷＩＮＤＯＷおよび／またはＷＭ＿ＥＮＡＢＬＥメッセージ（双方ともウインドウズ定数）を最初のブラウザ・ウインドウへ送信する事が出来る。これは、例えば、ＰｏｓｔＭｅｓｓａｇｅまたはＳｅｎｄＭｅｓｓａｇｅ関数（ウインドウズ関数）を利用して、ブラウザ・ウインドウハンドルを用いて最初のブラウウインドウへメッセージを送信することにより達成出来る。上記とは別に、ＳｈｏｗＷｉｎｄｏｗおよびＥｎａｂｌｅＷｉｎｄｏｗ関数（ウインドウズ関数）を用いて同じ結果の達成が可能である。
【００８８】
最終ステップは、最初のブラウザ・ウインドウを隠し状態および／または使用禁止状態にした後、ネットサーフィンを続けるためにインターネット・ユーザが使用出来る新たなブラウザ・ウインドウを作成することである。例えば、＿ｎｅｗ、＿ｂｌａｎｋ、または、予め存在しない任意のウインドウ名にターゲットパラメータをセットして、以下のネットスケープとインターネットエクスプローラのプラグインＡＰＩ関数：ＮＰＮ＿ＧｅｔＵＲＬ，  ＮＰＮ＿ＰｏｓｔＵＲＬ，  ＮＰＮ＿ＧｅｔＵＲＬＮｏｔｉｆｙ，  ＮＰＮ＿ＰｏｓｔＵＲＬＮｏｔｉｆｙのうちのいずれかを呼び出すことにより上記を達成する事が出来る。上記関数のＮＰＰ引数は、ブラウザ７２により機能ウインドウ用プラグインへ提供されたＮＰＰ構造である。これを行う別の方法として、例えば、Ｎｅｗ＿ＷｉｎｄｏｗコマンドまたはＯｐｅｎ＿Ｉｎ＿Ｎｅｗ＿Ｗｉｎｄｏｗなどの新たなウインドウを開くために用いる事が出来るような任意のコマンドに対応するブラウザ７２へＷＭＣＯＭＭＡＮＤメッセージを送信する方法がある。ブラウザにより提供される動的データ交換（ＤＤＥ）サポートを用いて新たなウインドウを開く事が出来る。ＮＰＮ＿ＧｅｔＵＲＬ，  ＮＰＮ＿ＰｏｓｔＵＲＬ，  ＮＰＮＧｅｔＵＲＬＮｏｔｉｆｙ，  ＮＰＮＰｏｓｔＵＲＬＮｏｔｉｆｙおよびＮＰＰ構造はプラグイン用ネットスケープおよびインターネットエクスプローラＡＰＩの一部であり、ＷＭＣＯＭＭＡＮＤはウインドウズ定数である。
【００８９】
ＢＩＯプラグインは、ブラウザ７２の特徴と機能とを制御する、即ち上記特徴と機能の追加／削除／変更を行う事が出来る。第１のステップとして、本発明に準拠して制御の対象となるブラウザ・ウインドウのうちのいずれかまたはブラウザが使用するウインドウ（まとめてＢＩＯウインドウ）のうちの任意のサブクラス化を行うステップがある。
【００９０】
ブラウザ・ウインドウまたはその子ウインドウをサブクラス化した後、ＧｅｔＭｅｎｕ関数（ウインドウズ関数）を用いてブラウザ・ウインドウ・メニューへのポインタを検索することによりブラウザ・インターフェイス２０にメニューを追加する事が出来る。一度メニューのハンドルへのポインタを取得すると、ＭｏｄｉｆｙＭｅｎｕ，  ＡｐｐｅｎｄＭｅｎｕ，  ＩｎｓｅｒｔＭｅｎｕなど（ウインドウズ関数）のメニュー関数を用いて、任意の所望のメニューをブラウザ・ウインドウに追加する事が出来る。ブラウザ７２内に含まれる任意の同じコマンド識別子と同じコマンド識別子をメニュー作成時に使用しないように注意しながら、ＢＩＯウインドウのサブクラス化に用いるＢＩＯメッセージ処理手順によって、メニューに割り当てられた任意のコマンドを処理しなければならない。
【００９１】
上記とは別にまたはこれに追加して、標準的ウインドウズ関数を用いてツールバー４２の追加先であるウインドウのハンドル（本願明細書では以後フレームハンドルと呼ぶ）を検索することにより、インターフェイス・オブジェクト・ツールバー４２をブラウザ・インターフェイス２０に追加する事が出来る。上記ウインドウはＢＩＯウインドウまたはＢＩＯウインドウの子ウインドウであるフレームウインドウになる。次いで、親ウインドウとしてフレームハンドルを用いてウインドウが作成される。例えば、（ツールバーの１つの形である）ダイアログバーをインターフェイス・オブジェクト４０として追加するために、タイプＣＤｉａｌｏｇＢａｒ（マイクロソフト・ファウンデーション・クラス）から導き出されたオブジェクトまたはタイプＣＤｉａｌｏｇＢａｒのオブジェクトを作成する事が出来る。これがフレームハンドルを用いて呼び出すＣｒｅａｔｅ法である。例えば、画像、ツールバー、ダイアログなどのようなリソースが使用され、かつ、ブラウザ７２がＢＩＯライブラリと同じリソースを共有していない場合、ＢＩＯライブラリリソースから任意のデータをロードする事が出来るようになる前に、ブラウザのリソースはＢＩＯライブラリリソースにより一時的に置き換えられる。その後、ブラウザの元のリソースによってＢＩＯライブラリリソースを置き換えることが可能となる。
【００９２】
新たなブラウザ・ウインドウが開かれたとき、この新たなウインドウにインターフェイス・オブジェクト４０を追加する事が出来る。ユーザ定義関数を呼び出すＳｅｔＴｉｍｅｒウインドウズ関数を用いてタイマを作成することにより上記を達成する事が出来る。上記ユーザ定義関数は、機能ウインドウと同じクラス名を持つデスクトップウインドウの全ての子ウインドウのチェックを行うＦｉｎｄＷｉｎｄｏｗＥｘ関数（ウインドウズ関数）を利用する。変更されたインターフェイスを予め含まない新たなウインドウ（インターフェイス・オブジェクト４０を含まない）については、必要なハンドルが検索され、元のＢＩＯウインドウに対して行われた変更と同じ変更が行われる。
【００９３】
最後に、インターネット・ユーザがブラウザ７２を閉じることを望む場合、機能ウインドウを除いてブラウザ・ウインドウのすべてが閉じているかどうかの判断を行う必要がある。そして、他の全てのブラウザ・ウインドウが閉じていれば、この機能ウインドウを閉じる事が出来る。例えば、ＢＩＯメッセージ処理手順内のＷＭＣＬＯＳＥメッセージ（ウインドウズ定数）をリスンすることにより、あるいは、開かれているブラウザ・ウインドウの数を周期的にチェックするタイマをセットすることにより、上記を達成することが可能となる。ＷＭ＿ＣＬＯＳＥメッセージを送信することにより元の機能ウインドウを閉じることも可能である。
【００９４】
本発明によれば、ＢＩＯライブラリ（即ちプラグイン）をロードすることが可能となり、ブラウザ・インターフェイス２０内に自動的にＢＩＯライブラリの機能を提供する事が出来る（ユーザが、特定のインターネット・サイトへ積極的にアクセスする、即ちプラグインを呼び出すウエブページへサーフする必要は無くなる）。例えば、ネットスケープは、自動スタートアップとして特定されるキーをそのウインドウ・レジストリ内に備えている。起動時に、ネットスケープは、自動スタートアップキー内にリストされているＯＬＥの制御機能のすべてをロードする。自動スタートアップキー内のライブラリ・ファイル７４への（従って、ＢＩＯライブラリとインターフェイス・オブジェクト４０を規定するプラグインへの）リファレンスまたは呼び出しを行うことにより、ネットスケープ・ブラウザを開始する即ち起動する度にライブラリ・ファイルのロードを行う事が出来る。ブラウザ・インターフェイス２０でインターフェイス・オブジェクト４０のインスタンスを作成する命令と、所定のインターネット・サイト１３０との接続を確立するブラウザ７２用の命令とを上記ライブラリ・ファイル７４の中に含める事が出来る。この技法を用いることにより、ユーザがある特定のインターネット・サイト１３０を訪問してＢＩＯライブラリをロードする必要は無くなる。少なくともブラウザ７２内にプラグインをロード出来るようになるまで、ブラウザ・インターフェイス２０を介して表示とアクセスを行うためにライブラリ・ファイル７４を開いた状態に保つ必要がある。これを行う１つの方法として、ライブラリ・ファイル７４と関連するリファレンスカウンタの増分を行い、それによって、ネットスケープが自動スタートアップキーにリストされたＯＬＥコントロール機能のアンロードを行うとき、ライブラリ・ファイル７４が、より大きなリファレンス番号を持っているためにアンロードされないようにする方法がある。
【００９５】
ライブラリ・ファイル７４をプラグインとしてロードして、タイマまたはループを用いてネットスケープＤＤＥサーバを周期的に探すようにする事が出来る。ブラウザ７２によりネットスケープＤＤＥサーバから返信を受信したとき、ネットスケープはコマンドを受け取る準備ができており、プラグインを共にロードすることが可能となる。次いで、ＤＤＥを用いて、ＷＷＷ＿ＯＰＥＮＵＲＬなどのコマンドをブラウザ７２へ送信してもよく、このコマンドは本願明細書で論じているようにプラグインをロードさせることになる。
【００９６】
ＢＩＯライブラリ用として用いるネットスケープ・プラグインウインドウを隠す別の方法として、（“スタート”ボタンが配置されている）タスクバーからネットスケープ・プラグインウインドウを削除して、可視スクリーンから見えなくするという方法がある。上記ネットスケープ・プラグインウインドウをタスクバーから取り除く１つの方法として、ＳｅｔＷｉｎｄｏｗＬｏｎｇを呼び出して、プラグインウインドウのウインドウスタイルをツールボックスウインドウに変更する方法がある。ツールボックスウインドウはタスクバーには現れる事は無い。ネットスケープ・プラグインウインドウは、ＭｏｖｅＷｉｎｄｏｗを呼び出し、ユーザのデスクトップの可視範囲にはない座標を与えることによりスクリーンから外して配置する事が出来る。
【００９７】
元のブラウザメッセージ処理手順を置き換えるために用いるＢＩＯウインドウ・メッセージ・ハンドリング・プロシージャは、メッセージの指定する届け先がどのウインドウであるか、および、一度ＢＩＯウインドウ・メッセージ・ハンドリング・プロシージャがメッセージを受け取った場合、当該メッセージを用いて何をすべきかを知っていなくてはならない。これを行う好適な方法として、情報を互いにリンクするマップを作成する方法がある。本発明の場合、そのウインドウにとって重要な情報を含む構造とウインドウハンドルとをリンクするマップを利用することが望ましい。例えば、ＢＩＯライブラリが新たなブラウザ・ウインドウにインターフェイス・オブジェクト４０を追加する時、そのＢＩＯウインドウにとって有益な情報を含む構造とＢＩＯウインドウのハンドルをリンクさせるマップ内の新たなエントリが作成される。この構造内に含まれる数々の情報の１つとして、ＢＩＯウインドウ用のブラウザの元のウインドウ・メッセージ・ハンドリング・プロシージャが含まれることが望ましい。ブラウザの元のウインドウ・メッセージ・ハンドリング・プロシージャを保持することによって、ＢＩＯウインドウ・メッセージ・ハンドリング・プロシージャがメッセージの処理方法が分からない場合、ブラウザの元のウインドウ・メッセージ・ハンドリング・プロシージャへメッセージを渡すことが出来るようにする必要がある。
【００９８】
ＢＩＯウインドウ・メッセージ・ハンドリング・プロシージャによりメッセージが受信されると、処理手順へ渡される第１の引数は上記メッセージを受信したウインドウのハンドルである。このウインドウ固有の全てのデータを含む構造を検索するために、キーとしてウインドウハンドルを用いてマップ内の検索が行われる。返された構造には元のウインドウ・メッセージ・ハンドリング・プロシージャなどの格納済みウインドウ固有の情報が含まれる。
【００９９】
ブラウザ・インターフェイス２０の制御（即ちブラウザ・インターフェイスへの追加、ブラウザ・インターフェイスからの削除あるいはブラウザ・インターフェイスの変更）時に、本発明ではブラウザ７２の作動方法が変更される。ブラウザのウインドウまたは子ウインドウへメッセージを送信することにより、ブラウザの機能に関してインターネット・ユーザはほとんどどんなことでも行うことが可能となる。メッセージを送信するオブジェクトまたはウインドウには、インターネット・ユーザが直接リアルタイムで通信出来る相手先であるメニュー、ボタン、コンボボックスおよびその他のほとんどあらゆる手段（即ちインターフェイス制御手段）が含まれる。例えば、メッセージは４つの構成要素に分解する事が出来る：１）メッセージの受信を意図するウインドウのハンドル、２）メッセージのｍｓｇ値、３）通常ｍｓｇ値に従属する用途を持つｗＰａｒａｍ、４）通常ｍｓｇ値に依存する値を持つＩＰａｒａｍ。
【０１００】
例えば、ブラウザのウインドウ内のボタンをクリックすると、ブラウザ・ウインドウのウインドウ・メッセージ・ハンドリング・プロシージャへウインドウズ定数であるＷＭＣＯＭＭＡＮＤを含むメッセージ（ｍｓｇ値）を送信する事が出来る。この場合、上記メッセージ内のｗＰａｒａｍ変数の下位２バイトはどのボタンが押されたかを特定するために用いる数となる。
【０１０１】
上述のように、ブラウザのウインドウまたは子ウインドウのサブクラス化を行うことにより、ユーザがインターフェイス制御手段のいずれかとリアルタイムで伝送する際に送信される任意のメッセージをインターセプトする事が出来る。一度メッセージがインターセプトされると、ＢＩＯウインドウ・メッセージ・ハンドリング・プロシージャが上記メッセージを翻訳し、このメッセージに対して反応する事が出来る。インターフェイス制御機能が同じ状態のままにする（即ち本発明への追加、本発明からの削除または本発明による変更を行わない）ことである場合、上記メッセージは元のウインドウ・メッセージ・ハンドリング・プロシージャへ戻す事が出来る。このようにして、ブラウザ７２内に存在するほとんど全てのインターフェイス制御機能を制御することが可能となる。さらに、ブラウザ・インターフェイス２０にインターフェイス制御機能を追加し、（ｗＰａｒａｍの形で渡される）コマンド識別子を割り当てる事が出来る。次いで、ＢＩＯウインドウ・メッセージ・ハンドリング・プロシージャにより、上記ｗＰａｒａｍを翻訳し、追加すべきインターフェイス制御機能の提供が可能となる。さらに、ブラウザから削除すべきインターフェイス制御と関連するコマンド識別子を受け取った場合、単に本発明によるウインドウ処理手順に何もさせることなく機能の削除を行う事が出来る。これによって、上記コマンドがブラウザ・ウインドウの元のメッセージハンドリングプロシージャへ渡されないようにする事が出来る。
【０１０２】
上記に詳しく論じたように、本発明の種々の実施形態を用いて、インターネット・ユーザは、ユーザ定義インターフェイス制御機能を備えたブラウザ・インターフェイス２０の作成が可能となる。この場合、上記ブラウザ・インターフェイス２０のウインドウの親をサブクラス化されたウインドウにセットすることにより、新規の（即ち制御対象の）ウインドウから出されるいずれのメッセージでもＢＩＯウインドウ・メッセージ・ハンドリング・プロシージャで処理することになる。これを利用して、ツールバー、ダイログバー（ｄｉａｌｏｇｂａｒ）、フローティング・ダイアローグ（ｆｌｏａｔｉｎｇ  ｄｉａｌｏｇ）などの任意のインターフェイス・オブジェクト４０をブラウザ・インターフェイス２０に追加することが可能となる。
【０１０３】
本発明についてさらなる説明を行うために、本発明を限定しない以下の例示の利用例を示す。インターネット・ユーザがインターネットを巡回する時持続して存在するプラグインまたはアクティブＸコントロールによって、ユーザが、インターネットに配置されているデータベースから得られる自分の“ブックマーク”や“お気に入り”のダウンロードを可能にするブラウザ・インターフェイス２０にインターフェイス・オブジェクト４０を追加することが可能となる。このインターフェイスはブラウザ・インターフェイスの中へ直接追加され、このインターフェイスによってプラグインまたはアクティブＸコントロールにより提供されたインターフェイス・オブジェクト４０を用いて、ユーザはダウンロードした“ブックマーク”や“お気に入り”のリンクを訪れることが可能となる。このインターフェイス・オブジェクト４０は、既存のブラウザ上の現在の“お気に入り”や“ブックマークマーク”メニュー項目と同様の機能を果たすものである。有利な相違点として、このブックマークはインターネット上のデータベースからダウンロードされるため、ユーザは、プラグインまたはアクティブＸコントロールをロード出来る自分のブックマークに任意のコンピュータのブラウザ上でアクセス出来るという利点が挙げられる。
【０１０４】
本発明は、プラグインまたはアクティブＸコントロールを介して、ブラウザ・インターフェイス２０の“お気に入り”や“ブックマーク”に設けた広告“リンク”に基づいて広告収入を生むために利用することも可能である。広告対象のターゲット消費者は、例えば、氏名、年齢、性別、収入、人種、学歴および地理上の所在地などのデータベースに格納された情報に基づいて、また、データベースに格納されているまたはブラウザ７２に存在するお気に入りとブックマークなどの好みに基づいて行うことも可能である。
【０１０５】
ユーザがインターネットを巡回する時持続して存在するプラグインまたはアクティブＸコントロールを用いて、ユーザが、インターネットに配置されているデータベースから得られる自分の“アドレス帳”のダウンロードを可能にするブラウザ・インターフェイス２０にインターフェイス・オブジェクト４０を追加することが可能となる。このようなインターフェイス・オブジェクト４０は、ブラウザ・インターフェイス２０のインターフェイスの中へ直接追加することが可能であり、このインターフェイス・オブジェクト４０は、電子メールの送信並びに自分の“アドレス帳”にリストされている連絡先用の格納済み情報の検索をユーザが行うことが出来るようにするものである。
【０１０６】
本発明は、プラグインまたはアクティブＸコントロールのインターフェイス・オブジェクト４０の“アドレス帳”に設けた広告“リンク”に基づいて広告収入を得ることを目的として利用することも可能である。広告対象のターゲット消費者は、例えば、氏名、年齢、性別、収入、人種、学歴および地理上の所在地などのデータベースに格納された情報に基づいて、また、データベースに格納されているまたはブラウザに存在するお気に入りとブックマークなどの好みに基づいて行うことも可能である。
【０１０７】
本発明は、ユーザの探索を可能にするウエブページを訪問する必要無く、プラグインまたはアクティブＸコントロールを利用して、ユーザがブラウザの中へ直接探索語をタイプ出来るようにする、ブラウザ・インターフェイス２０の編集ボックスの追加を可能にするものである。
【０１０８】
さらに、持続して存在するプラグインまたはアクティブＸコントロールによって、たとえユーザが異なるウエブサイトをサーフィンしていても、ユーザ側で、ウエブサイトで、あるいは、プログラムで選択された間隔で、ポーリング即ち周期的に好適なウエブサイトから情報の探索を行うことが可能となる。好適なウエブサイトのポーリングを行うとき、この好適なウエブサイトによって、メールや、株価の連続する更新や、例えば、ニュース・フィード・ヘッドラインやひいきのスポーツチームのスポーツ得点等、時間的にセンシティブに反応するその他の情報のリアルタイムに近い受信通知などの更新済み情報の送信をユーザのブラウザのインターフェイス・オブジェクトに対して行うことが可能となる。好適なウエブサイトは、ピーク時の利用期間中、好適なウエブサイトでのトラフィックを制御するために、ポーリング間の時間間隔を延ばすことにより、所望の場合ポーリングのタイミング制御を行う事が出来る。
【０１０９】
本願明細書に記載のように、ライブラリ・ファイルが作成したシェルは、アプリケーションを実行したり、情報を表示したりすることが可能な１つの環境であるため、本発明を利用して任意の情報またはプログラムをブラウザのインターフェイスに追加することが可能となる。上記シェルは、ブラウザ・インターフェイス、ブラウザの内容、さらにはシェル自体の内容さえからも独立している。要するに、シェルは適応可能な１つの機能であり、この機能は極端な場合ユーザにとって可視である必要さえ無い。従って、使用中、シェルは空であってもよく、ウエブサイトからその内容を受け取る事が出来る。あるいは、シェルはプラグインを取得することも可能である。もしくは、シェルがウエブサイトまたはユーザから新しい内容を受け取るとき、シェルは新たなライブラリ・ファイルを取得して、“リアルタイムで”新たな情報の構文解析を学習することさえ可能である。従って、本発明は、ユーザが別のサイトを訪問している時でさえ、好適なサイトからユーザへ所望の情報を直接送る重要な機会を提供するものである。言うまでもなく、本発明のカスタマイズ可能なインターフェイスを介してウエブサイトにより提供されるユーザ固有機能が多ければ多いほど、そのウエブサイトが発生させる事が出来るユーザロイヤルティはさらに大きくなる。
【０１１０】
図１１〜図１７を参照すると、本発明の別の実施形態で、インターネット・ブラウザ・インターフェイスのツールバーへショッピング・アシスタント・ボタンを追加して、サポートされたマーチャント・ウエブサイトでのオンライン・ショッピングを簡便化する事が出来る。ショッピング・アシスタント・ボタンの規定を含むこの実施形態の機能は、サーバから送信されたコンピュータ・コードにより提供され、ユーザのコンピュータに格納される。コンピュータ・コードはインターネット・ブラウザのインターネットナビゲーションをモニタして、ブラウザが、サポートされたマーチャント・ウエブサイトに在るかどうかの判断を行い、インターネット・ブラウザがサポートされたマーチャント・ウエブサイトに在れば、ショッピング・アシスタント・ボタン用のインジケータを提供し、サポートされたマーチャント・チェックアウト・ウエブページに記入を行う。
【０１１１】
本願明細書に使用される  “オンライン・ショッピング”という用語は、インターネット・ブラウザのユーザが、インターネットで商品および／またはサービスを購入する事が出来る処理プロセスを意味する。オンライン・マーチャント（インターネット上の商品および／またはサービスの販売者など）は、マーチャントサーバが主催するウエブサイトを提供する事が出来る。このウエブサイトを介してユーザはインターネット・ブラウザを用いて１以上のウエブページにアクセスする事が出来る。マーチャントは１以上のウエブページを介して販売用として種々の商品および／またはサービスの提供を行う事が出来る。買物客は商品、サービスについての説明を閲覧し、電子ショッピングカートの中へ入れる種々の商品および／またはサービスを選択し、ショッピングカートの内容を見て、チェックアウトする事が出来る（以下さらに詳細に説明する）。
【０１１２】
図１１に示されているブラウザ・インターフェイス２０にはインターフェイス・オブジェクト４０が含まれ、このインターフェイス・オブジェクト４０には、インターフェイス・オブジェクト・ツールバー４２とショッピング・アシスタント・ボタン１４４とが設けられている。このショッピング・アシスタント・ボタン１４４は、ブラウザ・インターフェイス２０に種々の機能を提供するものであるが、この種々の機能の中には、本発明を限定しない例として、ブラウザ・インターフェイス２０のユーザ（ユーザおよび買物客という用語は本願明細書では交換可能に用いられている）が、電子ウォレット（さらに詳細に以下解説する）を作成し、この電子ウォレットを編集し、ショッピング・アシスタント・ボタン１４４（およびブラウザ・インターフェイス２０からのショッピング機能）を使用禁止にし、サポートされたマーチャントをリストし、ショッピング・アシスタント・ボタン１４４と、プルダウン・メニュー４４と、ショッピング・アシスタント・ボタン１４４が提供する機能とについて問い合わせを行い、ショッピング・アシスタント・ボタン１４４およびショッピング・アシスタント・ボタン１４４が提供する機能の利用方法について助けを求める問い合わせを行う能力が含まれる。ショッピング・アシスタント用コンピュータ・コードまたはソフトウェア（例えばｄｌｌファイルやｅｘｅ．ファイル、ＪａｖａＳｃｒｉｐｔなど）がサーバにより提供され、ユーザのコンピュータ５０に格納され、ショッピング・アシスタント・ボタン１４４および本発明に準拠して提供されるその他の機能を規定し、提供するために、ブラウザおよびブラウザ・インターフェイス２０と接続して実行可能である。これらについてはさらに詳細に以下説明する。
【０１１３】
好ましい実施形態では、本発明の種々の実施形態に関して上記詳述したように、インターフェイス・オブジェクト４０がブラウザ・インターフェイス２０に追加されると、ショッピング・アシスタント・ボタン１４４およびショッピング・アシスタント・ボタン１４４により与えられる機能が提供される。即ち、インターフェイス・オブジェクト４０（即ちツールバー）がブラウザ・インターフェイス２０に追加されると、ショッピング・アシスタント・ボタン１４４および関連するコンピュータ・コードがユーザのコンピュータ５０へ送信またはダウンロードされる。上記とは別に、インターフェイス・オブジェクト４０が追加された前後にユーザが要求したとき、ショッピング・アシスタント・ボタン１４４と機能とをブラウザ・インターフェイス２０に選択的に追加する事が出来る。
【０１１４】
本発明のこの実施形態に準拠して提供されるショッピング・アシスタント機能は、少なくとも第１の例では、サーバ１０２（このサーバは物理的に互いに近い位置に配置された、あるいは、物理的に互いに別々の位置に配置された１以上のコンピュータを備えたものであってもよい）（図１０などを参照のこと）によって提供される。ユーザがブラウザ・インターフェイス２０のＵＲＬアドレスウインドウ２６内に所定のインターネットアドレスまたはＵＲＬを入力すると、上記サーバ１０２にアクセスする事が出来る。サーバ１０２は、セキュリティ保護が施されたサーバ（即ちセキュリティ保護ソケット層（ＳＳＬ）接続を介してのみアクセス可能なサーバ）であることが望ましい。この所定のインターネットアドレスで、ユーザは１以上のウエブページにアクセスすることが可能となる。これらのウエブページのうちの少なくとも１つのウエブページによって、ユーザは本発明のこの実施形態に準拠するウォレットを設定することが可能となる。例示のウォレット設定ウエブページが図１２〜図１４に示されている。このウォレット設定ウエブページについて以下さらに詳細に解説する。
【０１１５】
このショッピング・アシスタント機能は、サーバ１０２によりユーザのコンピュータ５０へダウンロードされるショッピング・アシスタント・コンピュータ・コードまたはソフトウェアによっても提供され、この機能はブラウザ・インターフェイス２０とショッピング・アシスタント・ボタン１４４と接続して実行可能である。ショッピング・アシスタントコードは、例えば、ｄｌｌファイルや．ｅｘｅファイル、ＪａｖａＳｃｒｉｐｔあるいはその他の公知の種類のコンピュータ・コードファイルやソフトウェアファイルであってもよい。ショッピング・アシスタントコードは、異なるインターネットアドレスへのナビゲーションをユーザがブラウザに行わせる度に、インターネットアドレス（またはドメインやＵＲＬ）をインターセプトすることによりインターネット・ブラウザのインターネットナビゲーションのモニタを行う。ショッピング・アシスタントコードは、サポートされたマーチャントのインターネットアドレスを含むサポートされたマーチャント・ファイルとインターセプトされたアドレスとの比較を行うことにより、インターセプトされたインターネットアドレスと、サポートされたマーチャントのインターネットアドレスとの比較を行う。サポートされたマーチャント・ファイルは、サーバ１０２によりダウンロードされ、ユーザのコンピュータ５０に格納されていることが望ましい。ユーザがサーバ１０２内へログを行う度に、サーバ１０２はサポートされたマーチャント・ファイルのそのバージョンと、ユーザのコンピュータ５０に格納されたバージョンとの比較を行う（例えば、このバージョン情報はログイン処理中ユーザが送信することも可能である）。サーバ１０２は、必要に応じて、サポートされたマーチャント・ファイルの更新バージョンをユーザのコンピュータへダウンロードする。ショッピング・アシスタントコードも、ブラウザが受信した個々のウエブページをインターセプトし、ウエブページの種別（例えば、課金ウエブページ、マーチャント・ホームページ、商品ページなど）をｈｔｍｌコードとＨＴＴＰ要求ヘッダとにより判別する。
【０１１６】
ショッピング・アシスタントコードは、ショッピング・アシスタント・ボタン１４４とプルダウン・メニュー４４との規定も行い、ブラウザと、サーバ１０２と、オンライン・ショッピング用マーチャントサーバとの間の通信の制御を行う。
【０１１７】
本発明の種々の実施形態に準拠するインターフェイス・オブジェクト４０の一部としてショッピング・アシスタント・ボタン１４４を設けることも可能である。しかし、ユーザがショッピング・アシスタント機能を利用し、アクセスするためには、ユーザは最初ウォレットの設定を行わなければならない。本願明細書で用いられる、“ウォレット”という用語は、（符号化または暗号化を施すことが可能な）当該ユーザ固有のファイルであって、（本願本願明細書でデータとも呼ばれる）情報から構成されるファイルを意味し、上記ファイルは当該ユーザにより設けられ、サーバ１０２（図１０など参照）のデータ格納装置１０６（ハードドライブ、光ディスク）に設けられたウォレット・データベース１０４に格納される。ウォレットの設定時にユーザが提供した情報が予め設定したフィールドまたはフィールド名に格納されるようにウォレット・データベース１０６は構造化される。同様に、サポートされたマーチャント・データファイルも、マーチャント・チェックアウト・ウエブページがウォレット設定処理中に提供された情報と同じ情報を必要とする程度まで同じフィールドまたはフィールド名を用いて構造化される。
【０１１８】
ウォレットを設定するために、ユーザは、サーバ１０２が提供した一定のウォレット設定ウエブページに応じて一定情報を提供する必要がある。インターネット・ブラウザが、ブラウザ・インターフェイス２０による表示を行うためにサーバからデータ（典型的にはＨＴＭＬデータ）を受け取ることは当業者には公知である。従って、サーバがウエブページを提供するという本願明細書での言及は、インターネット・ブラウザにより表示するための、サーバからのダウンロードまたはデータ伝送を意味するものである。
【０１１９】
例示のウォレット設定ウエブページが図１２に示され、全体が１０００として参照される。例えば、ショッピング・アシスタント・ボタン１４４のプルダウン・メニュー４４の“ウォレット編集”オプションを介して上記ウエブページ１０００にアクセスする事が出来る。例えば、“ウォレット設定”リンク１００２のような、ウォレット設定ウエブページ１０００の所定のリンクを選択することにより、図１３に示されているようなウォレット・データ入力ウエブページ１０１０がサーバ１０２によりダウンロードされる。ウォレット・データ入力ウエブページ１０１０で、ユーザは複数のフィールド１０１２に一定情報の入力（プルダウン・メニューまたは英数字エントリ）を行う。この情報は、本発明を限定しない例として、クレジットカードタイプ、クレジットカード番号、クレジットカードの期限切れの日付、ユーザの姓名、料金請求先、電話番号、ユーザＩＤ、ユーザパスワード並びにユーザ固有のその他の種々の情報となることが考えられる。ウォレットの設定時に、個々のユーザは、ユーザのウォレットを利用するために、ユーザＩＤとパスワードの他に、必要なセキュリティ保護キー（図１６などを参照のこと）の入力も求められる。ウォレット・データ入力ウエブページ１０１０内の必要なフィールド１０１２のすべてに記入を行うと、ユーザは“終了”ボタン（図示せず）を選択する事が出来る。これによって、ユーザ入力情報がサーバ１０２へ送信される。これに応じて、サーバ１０２は、図１４に示されているように、最終的にユーザのウォレットを設定する前にユーザが再査するために、新しく入力されたユーザのアカウント情報の要約１０２２を含むウォレット・サマリ・ウエブページ１０２０のダウンロードを行う。ユーザ情報が正しければ、ユーザは、例えば、“続ける場合にはここをクリック”と指示されたリンク１０２４などのウォレット・サマリ・ウエブページ１０２０のリンクを選択することができ、ユーザ情報（データ）はサーバ１０２へ送信され、データ格納装置１０６のウォレット・データベース１０４に格納される。今説明したウォレット設定処理手順中、データはサーバ１０２とユーザのコンピュータ５０（図１０などを参照のこと）との間で送信される。例えば、ユーザが“ウォレット設定”リンク１００２を選択したとき、ウエブページ１０００（図１２）と１０１０（図１１）の双方をサーバ１０２により送信して、ユーザはブラウザ・インターフェイス２０にこれらのウエブページを表示する事が出来る。ユーザがウォレット・データ入力ウエブページ１０１０で必要な情報の入力を終了し、“終了”ボタン（図示せず）を選択したとき、ユーザ情報即ちユーザデータをサーバ１０２へ送信する事が出来る。ユーザのコンピュータ５０からのユーザ情報の受信時に、サーバ１０２はウォレット・サマリ・ウエブページ１０２０を送信する事が出来る。上記とは別に、サーバ１０２は、（ユーザによるリンクまたはボタンの選択時などの）ユーザ開始アクションに応じて別々に上述のウエブページの各々を送信することも可能である。
【０１２０】
サーバ１０２は、コンテンツ・プロバイダ１００や、検索エンジン・プロバイダやＩＳＰなどのような別のインターネット・サービス・プロバイダのサーバであってもよい。本願明細書ではこれらのサーバは一括してプロバイダ１００と呼ばれる。プロバイダ１００によりオンライン・マーチャントが選択され、このプロバイダ１００と接続して本発明のショッピング機能を利用することが可能となる。サポートされているマーチャント・ファイルには、マーチャントのそれぞれのインターネットアドレスを含む全てのサポートされたマーチャントのリストが含まれる。ショッピング・アシスタント用コンピュータ・コードはこのファイルを利用して、ＵＲＬアドレスウインドウ２６の中へ入力された（またはリンク内に設けられた）ＵＲＬを、サポートされているマーチャント・ファイル内に含まれているＵＲＬと比較することにより、ユーザは、サポートされたマーチャント・ウエブサイトへナビゲーションを行ったかどうかの判断を行う事が出来る。
【０１２１】
一度マーチャント（マーチャントは図１０で全体が２００として参照される）が選択されると、プロバイダ１００は、チェックアウト・ウエブページのレイアウト（図１７を参照のこと）と、マーチャントのチェックアウト処理およびチェックアウト・ウエブページの終了に必要な情報とを含むマーチャントのチェックアウト処理を確認する。プロバイダ１００は、サポートされたマーチャント・ルールと、選択された個々のマーチャント（本願明細書ではやはりサポートされたマーチャントと呼ぶ）用のマッピングファイルとを作成する。このマッピングファイルによって、個々のマーチャントのチェックアウト処理中にマーチャントが必要とするユーザデータと、個々のマーチャントのチェックアウト・ウエブページとに対応する複数のマーチャントフィールド名とが規定される。例えば、図１７を参照すると、サポートされたマーチャント・チェックアウト・ウエブページ２１００では、買物客が、例えば、支払い方法、クレジットカード番号、クレジットカードの有効期限の日付を含む料金請求先を含む料金請求先情報、並びに、買物客の個人情報（氏名、住所および電話番号など）の提供が要求される。マーチャントフィールド名は、ユーザのウォレット内に規定されたウォレットフィールド名に対応する。個々のマーチャントはそのチェックアウト処理中異なる情報を必要とする場合も考えられるので、個々のサポートされたマーチャント・ルールとマッピングファイルとは、異なるマーチャントフィールド名を含むものであってもよい。しかし、全てのマーチャントフィールド名はウォレットフィールド名に対応する。
【０１２２】
サポートされたマーチャント・ルールとマッピングファイルとは、ウォレット・データ（即ちウォレットフィールド名）を必要なマーチャントデータ（即ちマーチャントフィールド名）と対応づける。例えば、姓フィールドと名フィールドとを規定するマーチャント・ルールとマッピングファイルでのエントリとは以下のように構造化することも可能である。
【０１２３】
【表２】
2005508035.tif 000004
但し、  “ｗａｌｌｅｔ＿ｂ＿ｆｎａｍｅ＿ｆｉｒｓｔ”はユーザの名前用のウォレット・データベースフィールド名である。これに対して、サポートされたマーチャント・ファイルではユーザの第１の名前は“ｃｏｎｔａｃｔＦｉｒｓｔＮａｍｅ”と特定される。従って、本発明は、ウォレット・データベース内のフィールドを、サポートされたマーチャント・ファイル内のフィールドに対応づけて、ユーザがサポートされたマーチャント・ウエブサイトで買い物をする時、個々のマーチャントの注文用紙に自動的に記入が出来るようにするものである。
【０１２４】
図１５〜図１７を参照しながら、例示のチェックアウト処理について以下説明する。異なるマーチャントは異なるチェックアウト処理を含み、異なるチェックアウト・ウエブページを提供する場合もあるので、以下の説明は単に例示的なものであり、本発明の範囲を限定したり、本発明の範囲を画定したりすることを意図するものではない。さらに、以下の説明はオンライン・ショッピング処理（この処理マーチャント毎に変動する可能性がある）の全体を追跡するものではなく、専らチェックアウト処理のみを追跡するものである。このチェックアウト処理は一般に、ユーザが“チェックアウト”またはマーチャントウエブページの別の類似のボタンを選択した後開始される。
【０１２５】
ユーザが自分のインターネット・ブラウザを開始すると、インターフェイス・オブジェクト４０はユーザのコンピュータ５０とサーバ１０２との間で自動的に接続を確立する。種々のユーザデータがサーバ１０２によりユーザのコンピュータ５０へダウンロードされる。ユーザは、ＵＲＬアドレスウインドウ２６（図１１を参照のこと）内にアドレスをタイプすることにより、または、ウエブページ上のリンクを選択することにより、任意のインターネットアドレスへインターネット・ブラウザのナビゲーションを行わせる事が出来る。ブラウザによるインターネットのナビゲーション（ウエブサイトからウエブサイトへの移動）方法に関係無く、ショッピング・アシスタントコードは、ユーザが行うナビゲーションの行き先である個々のインターネット・サイトのＵＲＬをインターセプトし、サポートされたマーチャント・データファイルとそのＵＲＬとの比較を行う。一致が発見された場合、ショッピング・アシスタントコードは、例えば、ユーザがサポートされたマーチャント・ウエブサイトへナビゲーションを行っていることを示す黄色い円などのショッピング・アシスタント・ボタン１４４でユーザに知覚出来るインジケータを示す。ショッピング・アシスタントコードはまた、サーバ１０２に対して、当該マーチャント用のルールおよびマッピング用データを含むファイルであって、当該マーチャントのチェックアウト処理に関する詳細情報を提供するファイルのダウンロード要求も行う。
【０１２６】
ショッピング・アシスタントコードも、ブラウザが受信した個々のウエブページをインターセプトし、ｈｔｍｌコードとＨＴＴＰ要求ヘッダを見ることにより、課金ページ、電子メールアドレス要求、クレジットカード情報要求などのウエブページの種別を判別する。上記情報は、マーチャントのプロバイダの選択中、および、サポートされたマーチャント・データファイルの作成中に取得したものである。マーチャントのルールとマッピングファイルとを用いて、ショッピング・アシスタントコードは、サービスを受ける専用ページと、そのページでのユーザ情報の提供方法とを決定する事が出来る。
【０１２７】
図１５に示されているように、ユーザのウォレットがある特定のページ用として必要である旨がショッピング・アシスタントコードにより決定された場合、ショッピング・アシスタントコードは、ユーザのブラウザ・インターフェイス２０内でセキュリティ保護キーウインドウ３０００を開いて、データ・エントリ・ウインドウ３０２０にセキュリティ保護キー（ＳＫ）を入力するようにユーザに求める。一度ユーザがＳＫを入力し、“継続”ボタン３０３０を選択すると、上記セキュリティ保護キーは、ユーザのコンピュータ５０により好適にはｈｔｔｐを用いてサーバ１０２へ安全に送信される。サーバ１０２は、ウォレット・データベース１０６上の当該ユーザのウォレットに予め格納されているデータと、ユーザデータ（ＩＤとＳＫなど）とを比較する。データが一致すれば、ＳＫが検証され、サーバ１０２により認証がショッピング・アシスタントコードへ送信される。データが一致しなければ、拒絶が送信される。図１６に示されているようなウォレット情報ウインドウ３１００として認証を出力しても良い。ＳＫがサーバ１０２により首尾よく検証された場合、ＳＳＬを介して“セキュリティ・クッキー”がセキュリティ保護を施したサーバへ送信され、“セキュリティ・クッキー”がセットされると、ユーザのウォレットを利用するユーザのオンラインショッピングセッションが始まる。“セキュリティ・クッキー”は強制的に（ａｇｇｒｅｓｓｉｖｅｌｙ）タイムアウトされ、好適には１時間まで有効とすることが望ましい。
【０１２８】
本発明のショッピング・アシスタント機能を用いてユーザがチェックアウト処理の継続を望む場合、ユーザは“継続”ボタン３１３０を選択する事が出来る。ユーザがマーチャントのチェックアウト処理を用いてチェックアウトを望む場合、ユーザは“取り消し”ボタン３１４０を選択する事が出来る。ユーザが継続ボタン３１３０を選択すると、ショッピング・アシスタントコードは、サーバ１０２上のウォレット・データベース１０４からユーザのウォレットを検索し、図１７に示されているようにマーチャントのチェックアウト・ウエブページ２１００に自動的に記入を行う。ユーザのウォレットはサーバ１０２により好適にはｈｔｔｐを用いて安全に送信される。ユーザのウォレット、従ってユーザの個人データは、ユーザのデータ格納装置５２に格納する必要は無く、一時メモリ６０（本願明細書でメインメモリまたはＲＡＭと呼ぶ）内に格納するだけでよい。そしてこの個人データは、本発明のこの実施形態のショッピング・アシスタントコードおよび機能によって、およびこれらと接続されて利用される。このユーザのデータは（所定の時間後などに）自動的に時間切れにしたり、ユーザがブラウザを閉じるとき、メモリ６０からフラッシュさせて消去したりする事が出来る。
【０１２９】
ブラウザが表示するウエブページの種別に応じて、ショッピング・アシスタントコードは、ユーザのウォレット（ＲＡＭ内に一時的に格納されたデータ）から適切なユーザデータをウエブページへ提供する。例えば、ウエブページが“料金請求先”用ウエブページであるとショッピング・アシスタントコードが判断した場合、料金請求先データがＲＡＭからコピーされて、料金請求先ウエブページ内のフィールドにポピュレートされ、最終的にマーチャントのサーバへ伝送される。チェックアウト処理中、ショッピング・アシスタントコードは、マーチャント・ルールとマッピングファイルおよびユーザのウォレットと接続して処理を行い、種々のマーチャント・チェックアウト・ウエブページにより求められるユーザデータを自動的に提供する。
【０１３０】
ウォレット・データベース１０６はウォレット・データだけを含むものであってもよい。あるいは、ウォレット・データは別のデータと共にデータベース内に配置されたものであってもよい。ショッピング・アシスタント・ボタン１４４および機能によって、およびこれらと接続してウォレットを好適に利用しながら、例えば、ショッピング・アシスタントを使用しない料金支払いやショッピング、および、ユーザが個人データの入力を要求されるほとんどあらゆるオンライン取引に関して、ショッピング・アシスタント以外のアプリケーションによってこのウォレットを使用することも可能である。このウォレットによって、ユーザのデータにセキュリティ保護を施した送信と処理とが行われ、そのデータのセキュリティに不必要な疑いを招くことなく、様々なオンライン取引に関してユーザがそのデータを利用出来るようになる。
【０１３１】
一度ユーザがウォレットを設定すると、ユーザがオンライン・ショッピングを行うとき、本発明のこの実施形態に準拠して提供される機能がユーザに利用可能となる。好適には、ユーザが（インターネット・ブラウザを介して）接続しているインターネット・サイトに関係無く、サポートされたマーチャントと接続してオンライン・ショッピング機能を利用出来ることが望ましい。従って、ユーザはプロバイダのインターネット・サイトと接続する必要は無く、あるいは、サポートされたマーチャントのウエブサイトと接続する必要さえ無い。ショッピング・アシスタントコードは、ユーザ（ユーザのコンピュータ５０）と、サーバ１０２と、ウォレット・データベース１０４と、マーチャントのインターネット・サイトおよびチェックアウト・ウエブページ間での全ての通信を処理するものである。
【０１３２】
本発明の別の実施形態において、プロバイダ１０２以外のパーティが、インターフェイス・オブジェクト・ツールバー４２（図４を参照のこと）のようなブラウザインターフェイス・ツールバーにボタン４４（即ちインターフェイス・オブジェクト）を追加することも可能である。例えば、ある企業のウエブサイトにリンクを設け、この企業ウエブサイトへの訪問者が、ブラウザ・インターフェイス２０から、この企業ウエブサイトとワンクリックでつながるリンクを設けた自分のインターフェイス・オブジェクト・ツールバー４２にボタン４４を追加出来るようにすることも可能である。企業、あるいは、ウエブサイトを主催しているいずれのエンティティもプロバイダ１００のスポンサとなる可能性がある。何故なら、インターフェイス・オブジェクト・ツールバー４２に企業のボタンを追加することにより、ただ１回のマウスクリックで別の任意のウエブサイトからその企業のウエブサイトへ戻る事が出来るようになるからである。このようにして、ブラウザ・インターフェイス（即ちツールバー４２）へ企業ボタンを追加することにより、ユーザと企業ウエブサイト間の親近性が確立されることになる。企業スポンサは、ボタン（外観（ワンクリックボタンやプルダウン・メニュー）、アイコン等）の設計を行い、プロバイダにより保守管理され、ブラウザ・インターフェイスと関連づけられるデータベース内へ組み込むためにこのボタンの設計とＵＲＬデータとをプロバイダ１００へ提供する。このようにして、企業スポンサはプロバイダのデータベース内に規定されたボタンを持つ事が出来るようになる。
【０１３３】
その企業ウエブサイトへの訪問者が自分のブラウザ・インターフェイス２０内にその企業のボタンのインストールを望むものの、ブラウザインターフェイス・ツールバー４２をまだインストールしていない場合、本発明によって、ブラウザ・インターフェイス２０内のブラウザインターフェイス・ツールバー４２と企業ボタン４４とのインストールも可能となる。その一方で、ブラウザ・インターフェイス２０のツールバー２２へ企業ボタン４４を追加することも可能となる。あるいは、インターフェイス・オブジェクト・ツールバー４２のボタン４４として企業ボタン４４を追加することも可能である。
【０１３４】
また教示用ツールとして本発明を利用することも可能である。例えば、インターフェイス・オブジェクト・ツールバー４２は、色、点滅、ハイライトなどを変化させることが可能な複数のボタン４４を備えているため、そのボタンや、そのボタンが提供する機能へユーザの注意を向けさせる事が出来る。
【０１３５】
ユーザが競合するウエブサイトを訪問している時、プロバイダや企業スポンサの或る特色についてプロバイダや企業スポンサがユーザに通知出来るようにすることも本発明では可能である。例えば、ユーザがある自動車会社のウエブサイトを訪問している時、対応するプロバイダの特色（プロバイダの自動車など）のハイライト表示を行って、その特色の利用可用性についてプロバイダウエブサイトでユーザに警告する事が出来る。ユーザがブラウザに或るウエブサイトへのナビゲーションを行わせる度に、そのＵＲＬをインターセプトするソフトウェアをユーザのコンピュータに設けることも可能である。そのインターセプトされたＵＲＬを、プロバイダのプロパティ用の複数のＵＲＬが含まれるファイルと比較する事が出来る。
【０１３６】
重要なことは、ユーザが任意の特定時点にナビゲーションを行った行き先ウエブサイトの検出がユーザのコンピュータのみで検出出来るという点である。これによって、インターネットでのユーザの活動に関する情報がどのサーバへも伝送されないことになる。
【０１３７】
当業者は、さらに、本願明細書で行われた開示から、ユーザのコンピュータ並びに種々のサーバに設けたソフトウェアを利用して、本発明の種々の実施形態が実施可能であることは明らかである。
【０１３８】
任意の数のコンピュータ技術を利用して本発明を実施出来ることを理解されたい。例えば、インターネットと接続して作動可能なものとして本実施形態を開示したが、例えば、広域ネットワークを含む任意のコンピュータネットワークを介して本発明を利用することも可能である。同様に、ユーザのコンピュータ５０は、例えば、個人用情報機器、ウエブ可能な携帯電話、ネットワークへダイヤル可能な有線電話、モバイルコンピュータ、パーソナルコンピュータ、インターネット機器等を含むネットワークと接続された任意の装置であってもよい。さらに、本願明細書に記載のサーバは、任意のソフトウェアを実行する任意の種類のものであってもよく、さらに、本願明細書に記載のソフトウェアモジュール、オブジェクトおよびプラグインは任意のプログラム言語で書かれたものであってもよい。最後に、本願明細書に記載のデータベースと格納装置は、例えば、ローカルなコンピュータメモリ、ネットワークと接続された格納装置、並びに、磁気や光学などの任意の公知の記憶媒体を含む任意の格納技術を利用するものであってもよい。
【０１３９】
以上、本発明の好ましい実施形態で適用されるような本発明の主要な新規の特徴を示し、説明し、指摘したが、当業者が、本発明の精神から逸脱することなく、開示された発明の細部および形態の様々な省略と代用と変更とを行うことも可能である。従って、本発明は、本願明細書に添付の特許請求の範囲によってのみ限定されるものである。
【図面の簡単な説明】
【０１４０】
【図１】従来技術のインターネット・ブラウザ・インターフェイスの図である。
【図２】本発明の一実施形態に基づくブラウザ・ツールバーにインターフェイス・オブジェクトを含むインターネット・ブラウザ・インターフェイスの図である。
【図３】本発明の一実施形態に基づくインターフェイス・オブジェクトを含むインターフェイス・ツールバーを備えたインターネット・ブラウザ・インターフェイスの図である。
【図４】本発明の一実施形態に基づく複数のインターフェイス・オブジェクトを含むインターフェイス・ツールバーを備えたインターネット・ブラウザ・インターフェイスの図である。
【図５】本発明によるインターネット・ブラウザ・インターフェイスの制御方法を示すフローチャートである。
【図６】本発明の種々の実施形態に基づくインターネット・ブラウザ・インターフェイスを制御し、表示する方法を示すフローチャートである。
【図７】本発明の種々の実施形態に基づくインターネット・ブラウザ・インターフェイスを制御し、表示する方法を示すフローチャートである。
【図８】本発明の種々の実施形態に基づくインターネット・ブラウザ・インターフェイスを制御し、表示する方法を示すフローチャートである。
【図８ａ】本発明の種々の実施形態に基づくインターネット・ブラウザ・インターフェイスを制御し、表示する方法を示すフローチャートである。
【図９】本発明の種々の実施形態に基づくインターネット・ブラウザ・インターフェイスを制御し、表示する方法を示すフローチャートである。
【図１０】本発明を実現することが可能なインターネットと接続されたコンピュータの概略ブロック図である。
【図１１】本発明の一実施形態に基づくショッピング・アシスタント・ボタンを備えたインターネット・ブラウザ・インターフェイスの例示スクリーン・ショットである。
【図１２】本発明の一実施形態に基づくウォレット設定ウエブページの例示スクリーン・ショットである。
【図１３】ウォレット・データ入力ウエブページの例示スクリーン・ショットである。
【図１４】本発明の一実施形態に基づくウォレット・サマリ・ウエブページの例示スクリーン・ショットである。
【図１５】本発明の一実施形態に基づくセキュリティ保護キーウインドウの例示スクリーン・ショットである。
【図１６】本発明の一実施形態に基づくウォレット情報ウインドウの例示スクリーン・ショットである。
【図１７】本発明の一実施形態に基づくサポートされたマーチャント・チェックアウトのウエブページの例示スクリーン・ショットである。
【図１】
2005508035.tif 000005
【図２】
2005508035.tif 000006
【図３】
2005508035.tif 000007
【図４】
2005508035.tif 000008
【図５】
2005508035.tif 000009
【図６】
2005508035.tif 000010
【図７】
2005508035.tif 000011
【図８】
2005508035.tif 000012
【図８ａ】
2005508035.tif 000013
【図９】
2005508035.tif 000014
【図１０】
2005508035.tif 000015
【国際公開パンフレット】
2005508035.tif 000016
2005508035.tif 000017
2005508035.tif 000018
2005508035.tif 000019
2005508035.tif 000020
2005508035.tif 000021
2005508035.tif 000022
2005508035.tif 000023
2005508035.tif 000024
2005508035.tif 000025
2005508035.tif 000026
2005508035.tif 000027
2005508035.tif 000028
2005508035.tif 000029
2005508035.tif 000030
2005508035.tif 000031
2005508035.tif 000032
2005508035.tif 000033
2005508035.tif 000034
2005508035.tif 000035
2005508035.tif 000036
2005508035.tif 000037
2005508035.tif 000038
2005508035.tif 000039
2005508035.tif 000040
2005508035.tif 000041
2005508035.tif 000042
2005508035.tif 000043
2005508035.tif 000044
2005508035.tif 000045
2005508035.tif 000046
2005508035.tif 000047
2005508035.tif 000048
2005508035.tif 000049
2005508035.tif 000050
2005508035.tif 000051
2005508035.tif 000052
2005508035.tif 000053
2005508035.tif 000054
2005508035.tif 000055
2005508035.tif 000056
2005508035.tif 000057
2005508035.tif 000058
2005508035.tif 000059
2005508035.tif 000060
2005508035.tif 000061
2005508035.tif 000062
2005508035.tif 000063
2005508035.tif 000064
2005508035.tif 000065
2005508035.tif 000066
2005508035.tif 000067
2005508035.tif 000068
2005508035.tif 000069
2005508035.tif 000070
2005508035.tif 000071
2005508035.tif 000072
2005508035.tif 000073
2005508035.tif 000074
2005508035.tif 000075
2005508035.tif 000076
2005508035.tif 000077
2005508035.tif 000078
2005508035.tif 000079
2005508035.tif 000080
2005508035.tif 000081
2005508035.tif 000082
2005508035.tif 000083
2005508035.tif 000084
2005508035.tif 000085
2005508035.tif 000086
2005508035.tif 000087
2005508035.tif 000088
2005508035.tif 000089
2005508035.tif 000090
2005508035.tif 000091
2005508035.tif 000092
2005508035.tif 000093
2005508035.tif 000094
2005508035.tif 000095
2005508035.tif 000096
2005508035.tif 000097
2005508035.tif 000098
2005508035.tif 000099
2005508035.tif 000100
【国際公開パンフレット（コレクトバージョン）】
2005508035.tif 000101
2005508035.tif 000102
【国際調査報告】
2005508035.tif 000103