(57)【特許請求の範囲】
【請求項１】
他のコンピュータ・システムと通信を行うためのインタフェースと、表示画面と、前記表示画面上の位置を指定するポインティングデバイスとを有し、前記表示画面において複数のアプリケーション・ウインドウを表示することのできる第１及び第２の表示制御装置を含むシステムであって、
（ａ−１）第１のアプリケーション・ウインドウの手前側に生成された第１の透過性を有するウインドウと、
（ａ−２）前記第１の透過性を有するウインドウ上でのオペレータ入力を監視する第１のウインドウプロシージャと、
（ａ−３）前記第１の透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記透過性を有するウインドウにおいて該オペレータ入力に応答したアノテーション・データを生成する第１の描画部であって、前記透過性を有するウインドウは、オペレータ入力からのアノテーションのみを含む、前記第１の描画部と、
（ａ−４）前記第１の透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記第１のアプリケーション・ウインドウの画像データと前記透過性を有するウインドウのアノテーション・データを合成して前記第２の表示制御装置にイメージ・データとして送信する送信制御部と、
を備える第１の表示制御装置と、
（ｂ−１）前記第１の表示制御装置から送信された前記イメージ・データを表示する第２の表示制御装置と、
を含み、
前記第２の表示制御装置は、前記第１の表示制御装置から送信されたイメージ・データを第２のアプリケーション・ウインドウとして表示し、前記第２のアプリケーション・ウインドウ上で発生したイベント情報を前記第１の表示制御装置に送信して、第１の表示制御装置の上で動作しているアプリケーションに対してイベントを発生させる、ことを特徴とするシステム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、アプリケーション・ウインドウに画像データを対応付ける方式に関するものであり、より詳しくは、あるアプリケーション・ウインドウに対し、オペレータが所望の画像データを関連付けて表示する方式に関する。
【０００２】
【従来の技術】
図７に示すように従来より、遠隔地に存在する複数の人間が同じインターネットＷｅｂ画面を共有し、共同作業を行うことを可能にするコラボレーション技術が存在する（コンタクト・フュージョン（コンタクト・フュージョンはＩＢＭ社の商標）、ＰＳ  ＦＥＥＬ  Ｖｏｌ．３２  ｐｐ１３−２０  未来電子環境研究所「ＰＳ  ＦＥＥＬ」編集室  １９９８年６月等）。
【０００３】
しかし、この技術においては、コラボレーションを行う双方のシステムにおいて特定のアプリケーション（Ｗｅｂブラウザー）１２３、１４３の画像をとり込み、アノテーションデータ１２５、１４５とマージしてアプリケーション・ウインドウ画像として出力する方式を採用している。このため、既に存在しているＷｅｂデータを共有すること等を可能にするだけで、コラボレーションの相手に応じて動的にデータやその表示アプリケーションを共有することはできず、様々なアプリケーションの使用方法を説明したいというユーザの要求を満足させることができなかった。
【０００４】
【発明が解決しようとする課題】
本発明の目的は、画面上の物理的な位置ではなく、アプリケーションという意味のある単位に関連づけを行うことにより、共有しているアプリケーション上に直接、書き込みを行うことを可能にすることにある。
【０００５】
本発明の他の１つの目的は、使用するアプリケーションを所望の画面位置に表示しつつ、コラボレーションを行うに際し、アプリケーションに対応したユーザに判りやすいアノテーションを行うことのできるシステムを提供することにある。
【０００６】
本発明の他の１つの目的は、使用するアプリケーションを画面上、所望の大きさに表示しつつ、コラボレーションを行うに際し、アプリケーションに対応したユーザに判りやすいアノテーションを行うことのできるシステムを提供することにある。
【０００７】
本発明の他の１つの目的は、アプリケーションの移動に追随してアノテーションが移動するユーザにとって使い勝手のよいシステムを提供することにある。
【０００８】
本発明の他の１つの目的は、コラボレーションを行う最中において、他のアプリケーションの使用を可能にするシステムを提供することにある。
【０００９】
本発明の他の一つの目的は、通信システムへの負担が少ないコラボレーション・システムを提供することにある。
【００１０】
本発明の他の一つの目的は、不要な判断ロジックを削減し、高速処理を可能としたコラボレーション・システムを提供することにある。
【００１１】
本発明の他の一つの目的は、実行時に必要となる資源を削減したコラボレーション・システムを提供することにある。
【００１２】
【課題を解決するための手段】
オペレータによって指定されたアプリケーション・ウインドウ上に、そのアプリケーション・ウインドウの子ウインドウとなる透明ウインドウを生成する。そして、アプリケーション・ウインドウ領域においてフックを登録し、その領域で発生するメッセージを検出する。そして、メッセージの種類に応じてアノテーション描画、アプリケーション・ウィンドウ（およびその子孫ウィンドウ）の再描画に伴うアノテーションの再描画、アプリケーション・ウィンドウの大きさの変更や移動に伴う透明ウインドウの位置、大きさの調整を行う。
【００１３】
また、本発明は、遠隔地に存在する他の端末とコラボレーションを行うに際し利用することができる。そのうちの一形態は、コラボレーション対象となるアプリケーションのウィンドウとそれに対応する透明ウインドウを双方のシステムにおいて起動させ、透明ウィンドウ上に描画された図形等のデータだけを相手側システムに伝送して、相手側システム上の透明ウィンドウで描画を再現する方式である。他の形態として、コラボレーション対象のアプリケーションは１つのシステム上でだけ稼働し、他の端末システムには、そのイメージを送信する方式がある。
【００１４】
本発明の一態様においては、
表示画面と、前記表示画面上の位置を指定するポインティングデバイスとを有し、前記表示画面において複数のアプリケーション・ウインドウを表示することのできる表示制御装置上で実行されるアプリケーション・ウインドウにアノテーション・データを対応付ける方法であって、
（ａ）オペレータ入力に応答してアプリケーション・ウインドウを特定する段階と、
（ｂ）該特定されたアプリケーション・ウインドウの手前側に該特定されたアプリケーション・ウインドウのタイトルバーを除く領域とほぼ同じ領域において、透過性を有するウインドウを前記特定されたアプリケーション・ウインドウをペアレント・ウインドウとして生成する段階と、
（ｃ）前記透過性を有するウインドウ上でのオペレータ入力を監視する段階と、
（ｄ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記透過性を有するウインドウに対しアノテーション・データを生成するためのイベントであるか否かを判定する段階と、
（ｅ）前記透過性を有するウインドウ上で発生したオペレータ入力がアノテーション・データを生成するためのイベントであると判断された場合に、前記透過性を有するウインドウにおいて該オペレータ入力に応答したアノテーション・データを生成する段階と、
を含むアプリケーション・ウインドウにアノテーション・データを対応付ける方法が提供される。
【００１５】
なお、本願明細書の特許請求の範囲において、「透過性を有するウインドウ」は、後ろにあるウインドウが識別できる透過性のある部分を含むウインドウを意味し、均一に透明なウインドウのみならず、格子やグリッドの入ったウインドウをも含む概念である。
【００１６】
本発明の他の一態様においては、
他のコンピュータ・システムと通信を行うためのインタフェースと、表示画面と、前記表示画面上の位置を指定するポインティングデバイスとを有し、前記表示画面において複数のアプリケーション・ウインドウを表示することのできる表示制御装置上で実行されるアプリケーション・ウインドウにアノテーション・データを対応付ける方法であって、
（ａ）他のコンピュータ・システムとセッションを確立する段階と、
（ｂ）アプリケーション・ウインドウの手前側に透過性を有するウインドウを生成する段階と、
（ｃ）該アプリケーション・ウインドウの種類、ウインドウ・サイズを特定する情報を他のコンピュータシステムに送信する段階と、
（ｄ）前記透過性を有するウインドウ上でのオペレータ入力を監視する段階と、
（ｅ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記透過性を有するウインドウにおいて該オペレータ入力に応答したアノテーション・データを生成する段階と、
（ｆ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、該オペレータ入力に応答した図形データを前記他のコンピュータシステムに送信する段階と、
を含むアプリケーション・ウインドウにアノテーション・データを対応付ける方法が提供される。
【００１７】
本発明の他の一態様においては、
他のコンピュータ・システムと通信を行うためのインタフェースと、表示画面と、前記表示画面上の位置を指定するポインティングデバイスとを有し、前記表示画面において複数のアプリケーション・ウインドウを表示することのできる表示制御装置上で実行されるアプリケーション・ウインドウにアノテーション・データを対応付ける方法であって、
（ａ）他のコンピュータ・システムとセッションを確立する段階と、
（ｂ）該アプリケーション・ウインドウの手前側に透過性を有するウインドウを生成する段階と、
（ｃ）前記透過性を有するウインドウ上でのオペレータ入力を監視する段階と、
（ｄ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記透過性を有するウインドウにおいて該オペレータ入力に応答したアノテーション・データを生成する段階と、
（ｅ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記アプリケーション・ウインドウの画像データと前記アノテーション・データを前記他のコンピュータシステムに送信する段階と、
を含むアプリケーション・ウインドウにアノテーション・データを対応付ける方法が提供される。
【００１８】
本発明の他の一態様においては、
表示画面と、前記表示画面上の位置を指定するポインティングデバイスとを有し、前記表示画面において複数のアプリケーション・ウインドウを表示することのできる表示制御装置上で実行されるアプリケーション・ウインドウにアノテーション・データを対応付ける方法であって、
（ａ）アプリケーション・ウインドウの手前側に透過性を有するウインドウを生成する段階と、
（ｂ）前記透過性を有するウインドウ上でのオペレータ入力を監視する段階と、
（ｃ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記透過性を有するウインドウにおいて該オペレータ入力に応答したアノテーション・データを生成する段階と、
を含むアプリケーション・ウインドウにアノテーション・データを対応付ける方法が提供される。
【００１９】
本発明の他の一態様においては、
表示画面と、前記表示画面上の位置を指定するポインティングデバイスとを有し、前記表示画面において複数のアプリケーション・ウインドウを表示することのできる表示制御装置であって、
（ａ）オペレータ入力に応答して特定されたアプリケーション・ウインドウの手前側に該特定されたアプリケーション・ウインドウのタイトルバーを除く領域とほぼ同じ領域において、前記特定されたアプリケーション・ウインドウをペアレント・ウインドウとして生成された透過性を有するウインドウと、
（ｂ）前記透過性を有するウインドウ上でのオペレータ入力を監視し、前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記透過性を有するウインドウに対しアノテーション・データを生成するためのイベントであるか否かを判定するウインドウ・プロシージャと、
（ｃ）前記透過性を有するウインドウ上で発生したオペレータ入力がアノテーション・データを生成するためのイベントであると判断された場合に、前記透過性を有するウインドウにおいて該オペレータ入力に応答したアノテーション・データを生成する描画部と、
を含む表示制御装置が提供される。
【００２０】
本発明の他の一態様においては、
他のコンピュータ・システムと通信を行うためのインタフェースと、表示画面と、前記表示画面上の位置を指定するポインティングデバイスとを有し、前記表示画面において複数のアプリケーション・ウインドウを表示することのできる表示制御装置であって、
（ａ）他のコンピュータ・システムとのセッションを確立するためのインタフェースと、
（ｂ）アプリケーション・ウインドウの手前側に生成された透過性を有するウインドウと、
（ｃ）該アプリケーション・ウインドウの種類、ウインドウ・サイズを特定する情報を他のコンピュータシステムに送信する送信制御部と、
（ｄ）前記透過性を有するウインドウ上でのオペレータ入力を監視するウインドウ・プロシージャと、
（ｅ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記透過性を有するウインドウにおいて該オペレータ入力に応答したアノテーション・データを生成する描画部とを含み、
（ｆ）前記送信制御部は、さらに前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、該オペレータ入力に応答した図形データを前記他のコンピュータシステムに送信することを特徴とする表示制御装置が提供される。
【００２１】
本発明の他の一態様においては、
他のコンピュータ・システムと通信を行うためのインタフェースと、表示画面と、前記表示画面上の位置を指定するポインティングデバイスとを有し、前記表示画面において複数のアプリケーション・ウインドウを表示することのできる表示制御装置であって、
（ａ）他のコンピュータ・システムとセッションを確立するためのインタフェースと、
（ｂ）アプリケーション・ウインドウの手前側に生成された透過性を有するウインドウと、
（ｃ）前記透過性を有するウインドウ上でのオペレータ入力を監視するウインドウプロシージャと、
（ｄ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記透過性を有するウインドウにおいて該オペレータ入力に応答したアノテーション・データを生成する描画部と、
（ｅ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記アプリケーション・ウインドウの画像データと前記アノテーション・データを前記他のコンピュータシステムに送信する送信制御部と、
を含む表示制御装置が提供される。
【００２２】
本発明の他の一態様においては、
表示画面と、前記表示画面上の位置を指定するポインティングデバイスとを有し、前記表示画面において複数のアプリケーション・ウインドウを表示することのできる表示制御装置であって、
（ａ）アプリケーション・ウインドウの手前側に生成された透過性を有するウインドウと、
（ｂ）前記透過性を有するウインドウ上でのオペレータ入力を監視するウインドウ・プロシージャと、
（ｃ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記透過性を有するウインドウにおいて該オペレータ入力に応答したアノテーション・データを生成する描画部と、
を含む表示制御装置が提供される。
【００２３】
本発明の他の一態様においては、
他のコンピュータ・システムと通信を行うためのインタフェースと、表示画面と、前記表示画面上の位置を指定するポインティングデバイスとを有し、前記表示画面において複数のアプリケーション・ウインドウを表示することのできる第１及び第２の表示制御装置を含むシステムであって、
（ａ−１）第１のアプリケーション・ウインドウの手前側に生成された第１の透過性を有するウインドウと、
（ａ−２）該第１のアプリケーション・ウインドウの種類、ウインドウ・サイズを特定する情報を他のコンピュータシステムに送信する送信制御部と、
（ａ−３）前記第１の透過性を有するウインドウ上でのオペレータ入力を監視する第１のウインドウ・プロシージャと、
（ａ−４）前記第１の透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記第１の透過性を有するウインドウにおいて該オペレータ入力に応答したアノテーション・データを生成する第１の描画部とを含み、
（ａ−５）前記送信制御部は、さらに前記第１の透過性を有するウインドウ上でオペレータ入力が発生した場合に、該オペレータ入力に応答した図形データを前記第２の表示制御装置に送信することを特徴とする第１の表示制御装置と、
（ｂ−１）前記第１の表示制御装置から送信されたアプリケーション・ウインドウの種類、ウインドウ・サイズを特定する情報に基づいて特定されたアプリケーション・ウインドウの手前側に生成された第２の透過性を有するウインドウと、
（ｂ−２）前記第１の表示制御装置から送信された図形データを前記第２の透過性を有するウインドウ上に描画する第２の描画部を有する第２の表示制御装置と、
を含むシステムが提供される。
【００２４】
本発明の他の一態様においては、
前記第２の表示制御装置は、前記第２の透過性を有するウインドウ上でオペレータ入力が発生した場合に、該オペレータ入力に応答した図形データを前記第１の表示制御装置に送信することを特徴とするシステムが提供される。
【００２５】
本発明の他の一態様においては、
他のコンピュータ・システムと通信を行うためのインタフェースと、表示画面と、前記表示画面上の位置を指定するポインティングデバイスとを有し、前記表示画面において複数のアプリケーション・ウインドウを表示することのできる第１及び第２の表示制御装置を含むシステムであって、
（ａ−１）第１のアプリケーション・ウインドウの手前側に生成された第１の透過性を有するウインドウと、
（ａ−２）前記第１の透過性を有するウインドウ上でのオペレータ入力を監視する第１のウインドウプロシージャと、
（ａ−３）前記第１の透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記透過性を有するウインドウにおいて該オペレータ入力に応答したアノテーション・データを生成する第１の描画部と、
（ａ−４）前記第１の透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記第１のアプリケーション・ウインドウの画像データと前記アノテーション・データを前記第２の表示制御装置に送信する送信制御部と、
を備える第１の表示制御装置と、
（ｂ−１）前記第１の表示制御装置から送信された前記第１のアプリケーション・ウインドウの画像データと前記アノテーション・データを表示する第２の表示制御装置と、
を含むシステムが提供される。
【００２６】
本発明の他の一態様においては、
前記第２の表示制御装置は、前記第１の表示制御装置から送信された前記第１のアプリケーション・ウインドウの画像データと前記アノテーション・データを第２のアプリケーション・ウインドウとして表示し、前記第２のアプリケーション・ウインドウ上で発生したイベント情報を前記第１の表示制御装置に送信することを特徴とするシステムが提供される。
【００２７】
本発明の他の一態様においては、
表示画面と、前記表示画面上の位置を指定するポインティングデバイスとを有し、前記表示画面において複数のアプリケーション・ウインドウを表示することのできる表示制御装置上で実行されるアプリケーション・ウインドウにアノテーション・データを対応付ける制御プログラムを格納した記録媒体であって、
該制御プログラムは、
（ａ）オペレータ入力に応答してアプリケーション・ウインドウを特定することを前記表示制御装置に指示するためのプログラムコードと、
（ｂ）該特定されたアプリケーション・ウインドウの手前側に該特定されたアプリケーション・ウインドウのタイトルバーを除く領域とほぼ同じ領域において、透過性を有するウインドウを前記特定されたアプリケーション・ウインドウをペアレント・ウインドウとし指定して生成することを前記表示制御装置に指示するためのプログラムコードと、
（ｃ）前記透過性を有するウインドウ上でのオペレータ入力を監視することを前記表示制御装置に指示するためのプログラムコードと、
（ｄ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記透過性を有するウインドウに対しアノテーション・データを生成するためのイベントであるか否かを判定することを前記表示制御装置に指示するためのプログラムコードと、
（ｅ）前記透過性を有するウインドウ上で発生したオペレータ入力がアノテーション・データを生成するためのイベントであると判断された場合に、前記透過性を有するウインドウにおいて該オペレータ入力に応答したアノテーション・データを生成することを前記表示制御装置に指示するためのプログラムコードと、
を含む記憶媒体が提供される。
【００２８】
本発明の他の一態様においては、
他のコンピュータ・システムと通信を行うためのインタフェースと、表示画面と、前記表示画面上の位置を指定するポインティングデバイスとを有し、前記表示画面において複数のアプリケーション・ウインドウを表示することのできる表示制御装置上で実行されるアプリケーション・ウインドウにアノテーション・データを対応付ける制御プログラムを格納した記録媒体であって、
該制御プログラムは、
（ａ）他のコンピュータ・システムとセッションを確立することを前記表示制御装置に指示するためのプログラムコードと、
（ｂ）該アプリケーション・ウインドウの手前側に透過性を有するウインドウを生成することを前記表示制御装置に指示するためのプログラムコードと、
（ｃ）該アプリケーション・ウインドウの種類、ウインドウ・サイズを特定する情報を他のコンピュータシステムに送信することを前記表示制御装置に指示するためのプログラムコードと、
（ｄ）前記透過性を有するウインドウ上でのオペレータ入力を監視することを前記表示制御装置に指示するためのプログラムコードと、
（ｅ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記透過性を有するウインドウにおいて該オペレータ入力に応答したアノテーション・データを生成することを前記表示制御装置に指示するためのプログラムコードと、
（ｆ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、該オペレータ入力に応答した図形データを前記他のコンピュータシステムに送信することを前記表示制御装置に指示するためのプログラムコードと、
を含む記憶媒体が提供される。
【００２９】
本発明の他の一態様においては、
他のコンピュータ・システムと通信を行うためのインタフェースと、表示画面と、前記表示画面上の位置を指定するポインティングデバイスとを有し、前記表示画面において複数のアプリケーション・ウインドウを表示することのできる表示制御装置上で実行されるアプリケーション・ウインドウにアノテーション・データを対応付ける制御プログラムを格納した記録媒体であって、
該制御プログラムは、
（ａ）他のコンピュータ・システムとセッションを確立することを前記表示制御装置に指示するためのプログラムコードと、
（ｂ）該アプリケーション・ウインドウの手前側に透過性を有するウインドウを生成することを前記表示制御装置に指示するためのプログラムコードと、
（ｃ）前記透過性を有するウインドウ上でのオペレータ入力を監視することを前記表示制御装置に指示するためのプログラムコードと、
（ｄ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記透過性を有するウインドウにおいて該オペレータ入力に応答したアノテーション・データを生成することを前記表示制御装置に指示するためのプログラムコードと、
（ｅ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記アプリケーション・ウインドウの画像データと前記アノテーション・データを前記他のコンピュータシステムに送信することを前記表示制御装置に指示するためのプログラムコードと、
を含む記憶媒体が提供される。
【００３０】
本発明の他の一態様においては、
表示画面と、前記表示画面上の位置を指定するポインティングデバイスとを有し、前記表示画面において複数のアプリケーション・ウインドウを表示することのできる表示制御装置上で実行されるアプリケーション・ウインドウにアノテーション・データを対応付ける制御プログラムを格納した記録媒体であって、
該制御プログラムは、
（ａ）該アプリケーション・ウインドウの手前側に透過性を有するウインドウを生成することを前記表示制御装置に指示するためのプログラムコードと、
（ｂ）前記透過性を有するウインドウ上でのオペレータ入力を監視することを前記表示制御装置に指示するためのプログラムコードと、
（ｃ）前記透過性を有するウインドウ上でオペレータ入力が発生した場合に、前記透過性を有するウインドウにおいて該オペレータ入力に応答したアノテーション・データを生成することを前記表示制御装置に指示するためのプログラムコードと、
を含む記憶媒体。
【００３１】
【実施例】
Ａ．ハードウエア構成
図１は、本発明の表示制御装置１００を実施するためのハードウェア構成の概観図である。表示制御装置１００は、中央処理装置（ＣＰＵ）１とメモリ４とを含んでいる。ＣＰＵ１とメモリ４は、バス２等を介して、補助記憶装置としてのハードディスク装置１３、３１とを接続してある。フロッピーディスク装置（またはＭＯ２８、ＣＤ−ＲＯＭ２６、２９等の媒体駆動装置２６、２８、２９、３０）２０はフロッピーディスクコントローラ（またはＩＤＥコントローラ２５、ＳＣＳＩコントローラ２７等の各種コントローラ）１９を介してバス２へ接続されている。
【００３２】
フロッピーディスク装置（またはＭＯ、ＣＤ−ＲＯＭ等の媒体駆動装置２６、２８、２９、３０）２０には、フロッピーディスク（またはＭＯ、ＣＤ−ＲＯＭ等の媒体）が挿入され、このフロッピーディスク等やハードディスク装置１３、ＲＯＭ１４等の記憶媒体には、オペレーティングシステムと協働してＣＰＵ等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができ、メモリ４にロードされることによって実行される。このコンピュータ・プログラムのコードは圧縮し、または、複数に分割して、複数の媒体にまたがって記録することもできる。
【００３３】
表示制御装置１００は更に、ユーザ・インターフェース・ハードウェアを備えたシステムとすることができ、ユーザ・インターフェース・ハードウェアとしては、例えば、画面位置情報を入力をするためのポインティング・デバイス（マウス、ジョイスティック、トラックボール等）７、キー入力をサポートするキーボード６や、イメージデータをユーザに提示するためのディスプレイ１１、１２がある。また、スピーカ２３は、オーディオ・コントローラ２１から音声信号を、アンプ２２を介して受領し、音声として出力する。
【００３４】
本発明の表示制御装置１００は、シリアルポート１５およびモデムまたは、トークンリング等の通信アダプタ１８等を介して、他のコンピュータ等と通信を行うことができる。
【００３５】
本発明は、通常のパーソナルコンピュータ（ＰＣ）やワークステーション、テレビやＦＡＸ等の各種家電製品に組み込まれたコンピュータ又はこれらの組合せによって実施可能である。ただし、これらの構成要素は例示であり、その全ての構成成要素が本発明の必須の構成要素となるわけではない。特に、本発明は、アプリケーションのウインドウ上にアノテーションを行うものであるため、シリアルポート１５、通信アダプタカード１８、オーディオ・コントローラ２１、アンプ２２、スピーカ２３等の構成要素は本発明の一態様においては必須のものではない。
【００３６】
オペレーティング・システムとしては、Ｗｉｎｄｏｗｓ（マイクロソフトの商標）、ＡＩＸ（ＩＢＭの商標）上のＸ−ＷＩＮＤＯＷシステム（Ｘコンソーシアムの商標）などの、標準でＧＵＩマルチウインドウ環境をサポートするものが望ましいが、特定のオペレーティング・システム環境に限定されるものではない。
【００３７】
また、図１は、スタンド・アロン環境のシステムを示しているが、クライアント／サーバ・システムとして本発明を実現し、クライアント・マシンは、サーバ・マシンに対して、イーサネット、トークン・リングなどでＬＡＮ接続し、サーバ・マシン側には、後述する描画部、描画制御部等を配置し、その他の機能をクライアント・マシン側に配置してもよい。このように、サーバ・マシン側とクライアント・マシン側にどのような機能を配置するかは設計に際し自由に変更できる事項であり、複数のマシンを組合せ、それらにどのような機能を配分し、実施するか等の種々の変更は本発明の思想に包含される概念である。
【００３８】
Ｂ．システム構成
次に、図２のブロック図を参照して、本発明のシステム構成について説明する。本発明の好適な実施例においては、表示制御システム１００には、対象アプリケーション２０１、オペレーティング・システム２０３、透明ウインドウ２０５、ウインドウ・プロシージャ２０７、描画部２０９、描画制御部２１１、フック２１３、入出力制御部２１５、イベント判定部２１７、サイズ調整部２１９、再描画制御部２２１、表示制御部２２３及び、描画パラメータ２２５が含まれている。
【００３９】
対象アプリケーション２０１は、アノテーションを行う対象となるアプリケーションである。オペレーティング・システム２０３は、後述する透明ウインドウ２０５やフック２１３等を生成し、また、入力された信号を解釈し、所定のアプリケーションにウインドウメセージとして出力を行う。
【００４０】
透明ウインドウ２０５は、オペレータ入力に応答して、アノテーション・データの出力表示を行う。ウインドウ・プロシージャ２０７は、透明ウインドウ２０５で発生した描画イベントを取得する。
【００４１】
描画制御部２１１は、ウインドウ・プロシージャ２０７が取得した描画イベントを解釈し、所定期間の座標変化データ等を取得する。描画部２０９は、描画制御部２１１で解釈された座標変化データに基づいてアノテーション・データ（ポリーライン等）を生成する。
【００４２】
フック２１３は、対象アプリケーションのウインドウ上で発生するイベントを取得する。入出力制御部２１５は、マウス等のポインティングデバイスからの信号を制御する。イベント判定部２１７は、入力されたイベントの内容を解釈し、その種類を判別する。
【００４３】
サイズ調整部２１９は、透明ウインドウ２０５のサイズを対象アプリケーション２０１のウインドウ・サイズに適合するように調整する。再描画制御部２２１は、対象アプリケーション２０１の再描画が行われた後に透明ウインドウ２０５が再描画されるように制御を行う。
【００４４】
表示制御部２２５は、透明ウインドウ２０５の生成、消滅を制御する。描画パラメータ２２５は、描画パラメータの変更を制御する。インタフェース２３１は、他のコンピュータシステムと通信を行うためのインタフェースである。
【００４５】
受信制御部２３３は、取得したデータが他のコンピュータから送信された座標変化データを含むデータであるか否かを判別し、座標変化データを含むデータである場合には、描画部２０９に、座標変化データを渡す。この受信制御部２３３には、データ圧縮解凍機能や暗号データ復号化機能等を持たせてもよい。
【００４６】
送信制御部２３５は、所定時間毎アノテーションが行われたか否かを監視し、アノテーションが行われた場合には描画部２０９から描画パラメータ情報を、描画制御部２１１から座標変化データを取得し、他のコンピュータに送信する。この送信制御部２３５には、データ圧縮機能、暗号化機能等を持たせてもよい。
【００４７】
以上、図２に示す各機能ブロックを説明したが、これらの機能ブロックは、論理的機能ブロックであり、各々１つのまとまりを持ったハードウエアやソフトウエアによって実現されることを意味するのではなく、複合し、または共通したハードウエアやソフトウエアによって実現可能である。
【００４８】
Ｃ．動作説明
Ｃ−１．透明ウインドウの生成
図３は、本発明の好適な実施例におけるユーザインタフェースの一例である。ウインドウ３００は、アプリケーション・ウインドウであり、ウインドウ３５０は、アノテーション制御ウインドウである。
【００４９】
本発明の好適な実施例においてアノテーション制御ウインドウ３５０には、接続先エントリ３５５、接続ボタン３５７、切断ボタン３５９、アノテーション終了ボタン３６１、アノテーション開始ボタン３６５、線種指定アイコン３７１〜３７７、色彩指定アイコン３８１〜３８８、クリアボタン３９１、図形呼び出しボタン３９３が配置されている。
【００５０】
接続先エントリ３５５は、接続先を特定するためのエントリであり、接続先のアドレス等が入力される。なお、このエントリ３５５は、キーボードによる入力のみならず、予め登録されているアドレスをプルダウンメニュを選択することによっても指定可能である。
【００５１】
接続ボタン３５７は、接続先エントリで指定されたコンピュータシステムへの接続動作を開始するためのボタンである。切断ボタン３５９は、他のコンピュータシステムとの接続を切断するためのボタンである。アノテーション終了ボタン３６１は、アノテーションモードを解除し、透明ウインドウ２０５等を消去するためのボタンである。アノテーション開始ボタン３６５は、アノテーションモードに切り換え、透明ウインドウ等を生成するためのボタンである。本発明の好適な実施例において、アノテーション開始ボタン３６５がクリックされると、マウスポインタはペンの形状に変化し、アノテーション終了ボタン３６１がクリックされると、マウスポインタは元の形状に戻るようになっている。
【００５２】
線種指定アイコン３７１〜３７７は、アノテーションを行うに際し、使用する線の太さを指定するためのアイコンである。色彩指定アイコン３８１〜３８８は、アノテーションを行うに際し、使用する線の色を指定するためのアイコンである。
【００５３】
クリアボタン３９１は、現在指定したアノテーション制御ウインドウの指定を初期状態に設定し直すためのボタンである。図形呼び出しボタン３９３は、図形パレット（図示せず）を呼び出すためのボタンである。オペレータは、図形パレットにおいて、矩形、楕円形等、所望の図形を指定し、透明ウインドウにその図形を描画することもできる。
【００５４】
イレーザ（消しゴム）アイコン３９５は、すでに行ったアノテーションを消去するためのボタンである。本発明の好適な実施例において、イレーザ・アイコン３９５がクリックされるとマウスポインタは消しゴムの形状に変化し、アノテーション開始ボタン３６５、線種指定アイコン３７１〜３７７、図形パレットがクリックされることにより、イレーザモードが解除される。
【００５５】
本発明の好適な実施例において、オペレータは、アプリケーション選択プルダウン・ウインドウ３６３によって、（起動している、起動可能な、あるいは予め登録されたなどの）コラボレーションの候補となるアプリケーションのリストから、所望のアプリケーションを選択し、コラボレーション作業を開始することができる。そして、コラボレーション作業中にアノテーションが必要になった場合、オペレータは、アノテーション開始ボタン３６５をクリックし、必要でなくなった場合に、アノテーション終了ボタン３６１をクリックする。前述のように、アノテーション開始ボタン３６５がクリックされると、アプリケーション・ウィンドウ２０１をペアレント・ウィンドウとした透明ウィンドウ２０５を生成され、、アノテーション終了ボタン３６１がクリックされると、透明ウィンドウ２０５が終了する。本発明の好適な実施例において、透明ウインドウ２０５が稼働している間、マウス・ポインタは、透明ウインドウ２０５上でのみペンの形状に変化するので、オペレータは、アプリケーション・ウインドウ３００上に透明ウインドウ２０５が形成されたことを認識でき、また、透明ウインドウ２０５の領域も確認することができる。
【００５６】
また、本発明の他の好適な実施例においては、アプリケーション選択ボタンがオペレータによってクリックされると、マウス・ポインタが特別な形状インテリジェント・カーソルに変化する。このインテリジェント・カーソルには、オペレータに対しコラボレーションを行うことを希望するアプリケーション上でドロップすることを指示する表示が含まれている。そして、インテリジェント・カーソルが、アプリケーション・ウィンドウ３００上でドロップされると、そのメッセージがオペレーティングシステムを介してコレボレーション機能に通知され、アプリケーション・ウィンドウ２０１が選択される。
【００５７】
このとき、表示制御部２２５は、オペレーティングシステム２０３から対象アプリケーション２０１の（タイトルバーを含まない）ウィンドウ位置、ウインドウ・サイズの情報を取得し、透明ウィンドウ２０５の位置と大きさを対象アプリケーション２０１のウィンドウに一致させ、対象アプリケーションのチャイルド・ウィンドウの内で最も上（Ｚ順で上、あるいはユーザーからみて最も手前）に表示されるようにする。
【００５８】
さらに、オペレーティングシステム２０３に対してフック２１３を登録し、対象アプリケーション２０１へのメッセージを監視する状態を設定する。また、後述の再描画で使用するため、オペレーティングシステム２０３のタイマー機能を対象アプリケーション２０１に設定する。
【００５９】
Ｃ−２．イベントの処理
図４は、本発明の好適な実施例におけるイベントの処理手順を示す図である。まず、対象アプリケーション２０１で描画が発生、あるいは大きさが変更されると、オペレーティングシステム２０３でメッセージが発生する（ブロック４０３）。このメッセージは、再び対象アプリケーション２０１に渡される。このときフック２１３は、このメッセージを取得し、イベント判定部２１７に渡す（ブロック４０５）。イベント判定部２１７は、このメッセージが監視対象イベントであるかどうかを判定する（ブロック４０７）。イベント判定部２１７は、イベントの内容が描画であると判断した場合には、再描画制御部２２１にそのイベントを渡す（ブロック４０９）。また、イベント判定部２１７は、イベントの内容が大きさの変更であった場合にはサイズ調整部２１９にそのイベントを渡す（ブロック４１１、４１３）。
【００６０】
イベントを受領した再描画制御部２２１では、透明ウィンドウ２０５の内容の再描画が必要になったことを描画部２０９に通知する。なお、対象アプリケーション２０１の再描画は、フック２１３からオペレーティングシステム２０３に復帰してメッセージがアプリケーション２０１に渡されてから行われる。このため、透明ウィンドウ２０５の再描画は、再描画が必要である状態を再描画制御部２２１がフラグで記憶しておき、オペレーティングシステム２０３のタイマーイベントが発生した際に描画部２０９による描画が行われるようにすることにより、アプリケーション２０１の描画の後で透明ウィンドウ２０５の描画が行われるようにしている。
【００６１】
この一方、サイズ変更の場合は、サイズ調整部２１９は、対象アプリケーション２０１のウィンドウの新たなサイズ情報をオペレーティング・システム２０３より取得し、透明ウィンドウ２０５のサイズを変更する。このとき、透明ウインドウ２０３は、対象アプリケーション２０１のチルドレン・ウインドウの中で最も上に表示されるように設定される。
【００６２】
なお、透明ウィンドウ２０５を対象アプリケーション２０１のウィンドウのチャイルド・ウインドウとして作成するため、対象アプリケーション２０１のウィンドウを移動した場合、透明ウィンドウ２０５自体もオペレーティングシステム２０３によって移動される。
【００６３】
オペレータがポインティングデバイスによって、透明ウインドウ２０５上の描画（アノテーション）を要求した場合には、オペレーティングシステム２０３の働きによって、入力デバイスからのイベントを通知するメッセージが透明ウィンドウ２０５のウィンドウプロシージャ２０７に渡される。ウィンドウプロシージャ２０７ではイベントをアノテーションを行うべきイベントであると判定し、描画制御部２１１に通知する。アノテーションを行うべきイベントであるか否かの判定は、例えば、マウスの場合には、左ボタンを押した場合にアノテーションの開始、左ボタンを離した場合にアノテーションの終了、左ボタンを押したまま移動した場合にアノテーションを行うと判定する。
【００６４】
描画制御部２１１ではイベントに応じて描画データを更新する。具体的には、描画制御部は、ウインドウ・プロシージャ２０７が取得した描画イベント（アノテーション・イベント）を解釈し、所定期間毎の座標変化データ等を取得する。フリーハンドで線を描く場合には、描画部２０９は、描画制御部２１１で解釈された座標変化データに基づいて、ごく短い線分データの集合であるアノテーション・データ（ポリライン）を生成する。矩形等の所定の図形データの場合には、対角位置の２点の座標等、その図形を定義するためのデータが生成される。描画部２０９では、描画制御部２１１あるいは再描画制御部２２１からの通知に基づいて、現在描画されているべきデータを更新、あるいは再描画する。
【００６５】
Ｃ−３．コラボレーション
本発明は、遠隔地に存在する他の端末とコラボレーションを行うに際し利用することができる。そのうちの一形態は、コラボレーション対象となるアプリケーションのウィンドウとそれに対応する透明ウインドウを双方のシステムにおいて起動させ、透明ウィンドウ上に描画された図形等のデータだけを相手側システムに伝送して、相手側システム上の透明ウィンドウで描画を再現する方式（図５）である。他の形態として、コラボレーション対象のアプリケーションは１つのシステム上でだけ稼働し、他の端末システムには、そのイメージを送信する方式（図６）がある。
【００６６】
Ｃ−３−１．透明ウィンドウをコラボレーションを行う２つのシステムの双方で使用する方式
この形態では、コラボレーション対象となるアプリケーション２０１のウィンドウは、（例えばコラボレーション機能がアプリケーションを起動するといった操作によって）両方のシステムにおいてコラボレーションを行うアプリケーションの種類や、使用するファイルが予め限定されている。
【００６７】
具体的には、図３において、主局のオペレータが接続先エントリ３５５に接続先のアドレスを入力し、接続ボタン３５７を押すと、他のコンピュータシステムとのセッションが確立する（他のコンピュターシステムが接続を拒否した場合にはセッションは確立しない）。そして、セッションが確立した後に、主局コンピュータにおいて、アプリケーション選択プルダウン・ウインドウ３６３によって、（起動している、起動可能な、あるいは予め登録されたなどの）コラボレーションの候補となるアプリケーションのリストから、所望のアプリケーションを選択し、コラボレーション作業を開始することができる。このとき、主局側でそのアプリケーションの種類、使用しているあるいは使用するファイル名（例えば、サーバ上のファイルのように主局側、他局側ともにアクセスできるファイル）とウインドウ・サイズ（位置及び大きさ）が取得され、他のコンピュータシステムに送信される。
【００６８】
これを取得した他のコンピュータシステムは、そのアプリケーションや、ファイルが利用可能であるか等のチェックを行い、利用可能であった場合には、そのアプリケーションを指定されたウインドウサイズにおいて起動する。アプリケーション・ウインドウのサイズ変更の情報は双方で監視され、そのイベントが発生すると、他のシステムに通知し、それに基づくウインドウサイズの変更を行い、常にウインドウサイズの同期を取っている。そして、何れかのコンピュータシステムにおいてアノテーション開始ボタン３６５がクリックされると、双方のシステムのアプリケーション・ウインドウで透明ウインドウ２０５が生成され、アノテーションが行われる。
【００６９】
なお、本発明の好適な実施例の一態様において、他局側に対応するアプリケーションやファイルが存在しない場、そのアプリケーションやファイルを主局から他のコンピュータシステム側へ送信することもできる。
【００７０】
そして、透明ウィンドウ上に描画されたアノテーション・データ（線分／図形等のデータ）だけを相手側システムに伝送して、相手側システム上の透明ウィンドウで描画を再現する。転送は、片方向でも双方向でも可能である。なお、本発明の好適な実施例の一態様において、他局側でのアノテーションを選択的に禁止し、自局側だけアプリケーションが行えるモードに設定することもできる。
【００７１】
何れかの局でアノテーションが行われると、図形データのみが他局に転送される。この図形データは、たとえば矩形では対角位置の２点の座標、フリーハンドで線を描く場合には、連続した点の座標群といったアノテーション図形を定義するためのデータである。この方式において、図２の受信制御部２３３は、他のコンピュータシステムからの図形データを監視し、図形データを取得した場合には、描画部２０９に、図形データを渡す。
【００７２】
送信制御部２３５は、所定時間毎アノテーションが行われたか否かを監視し、アノテーションが行われた場合には描画部２０９から描画パラメータ情報を、描画制御部２１１から座標変化データを取得し、他のコンピュータに送信する。この送信制御部２３５には、データ圧縮機能、暗号化機能等を持たせてもよい。
【００７３】
Ｃ−３−２．イメージ転送方式
この方式においては、コラボレーション対象のアプリケーションは１つのシステム上でだけ稼働し、他のシステムのユーザーはそのイメージを見ているという形態で動作する。この形態においては、アプリケーションが稼働しているシステムにおいてアプリケーションが表示するイメージを取得し、（一般には圧縮して）他のシステムに転送する。この方式は、「Ｃ−３−１．透明ウィンドウをコラボレーションを行う２つのシステムの双方で使用する方式」に比べ、送信すべきデータ量が増加する点で劣るが、２つのシステムで、（共通のファイルにアクセスする）共通のアプリケーションを双方で同期を取って稼働させることが必要なく、任意のアプリケーション・ウインドウでコラボレーション（アノテーション）を行える点で優れる。このため、図３に示したアプリケーションを選択するためのプルダウン・メニュー３６３の形式ではなく、コラボレーション開始アイコン（図示せず）を所望のアプリケーションにドロップする形式によってコラボレーションを開始することも可能である。
【００７４】
具体的には、図２の送信制御部２３５は、描画部２０９や描画制御部２１１から送信データを受領するのではなく、透明ウインドウ２０５や対象アプリケーション２０１から画像データを受領し、それを合成し、送信データとすることにより実施可能である。
【００７５】
他のコンピュータシステムではそのイメージを表示するウィンドウを表示し、あたかもアプリケーションが稼働しているかのように表示する。また、他のコンピュータシステムにおいて、表示ウィンドウでイベントが発生した場合、この発生したイベントを取得してアプリケーションが稼働しているシステムに転送する。そして、アプリケーションに対してイベントを発生させることにより、双方向のコラボレーションが可能となる。表示ウィンドウへのイベントを取得しなければ、片方向のコラボレーションとなる。この方式においても他局側でのアノテーションを選択的に禁止し、自局側だけアプリケーションが行えるモードに設定することもできる。
【００７６】
この形態で透明ウィンドウを使用する場合には、
１）基本イメージを取得して転送した後に、透明ウィンドウをかぶせ、透明ウィンドウに描画されている図形データだけを転送して、表示ウィンドウのイメージに追加描画する方式と
【００７７】
２）透明ウィンドウを対象アプリケーションにかぶせて描画を行い、描画を含めた最終的なイメージを取得して転送する方式（この場合には、イメージとしての差分をとる等の圧縮方式を使用する）が考えられる。
【００７８】
【発明の効果】
以上説明したように、本発明によれば、ユーザは、画面上の物理的な位置ではなく、アプリケーションという意味のある単位に関連づけを行うことにより、使用するアプリケーションを所望の画面位置に表示しつつ、アプリケーションに対応したユーザに判りやすいアノテーションを行うことがが可能になる。
【００７９】
【図面の簡単な説明】
【図１】ハードウェア構成を示すブロック図である。
【図２】処理要素のブロック図である。
【図３】本発明の好適な実施例におけるユーザインタフェースの一例を示す図である。
【図４】本発明の好適な実施例におけるイベントの処理手順を示す図である。
【図５】本発明の好適な実施例における透明ウィンドウをコラボレーションを行う２つのシステムの双方で使用する方式を示す図である。
【図６】本発明の好適な実施例におけるイメージ転送方式を採用したときのコラボレーションの態様を説明する図である。
【図７】従来のコラボレーションシステムを説明する図である。
【符号の説明】
２０１  対象アプリケーション
２０３  オペレーティング・システム
２０５  透明ウインドウ
２０７  ウインドウ・プロシージャ
２０９  描画部
２１１  描画制御部
２１３  フック
２１５  入出力制御部
２１７  イベント判定部
２１９  サイズ調整部
２２１  再描画制御部
２２３  描画パラメータ制御部
２２５  表示制御部
２３１  インタフェース
２３３  受信制御部
２３５  送信制御部
【図１】
0003546705.tif 000002
【図２】
0003546705.tif 000003
【図３】
0003546705.tif 000004
【図４】
0003546705.tif 000005
【図５】
0003546705.tif 000006
【図６】
0003546705.tif 000007
【図７】
0003546705.tif 000008