(57)【要約】      （修正有）【課題】開発者がホスティッドアプリケーションの独自機能を利用しながら、ＩＤＥによって提供される豊富な機能を活用できるように、アンマネージアプリケーションをホスティッドアプリケーションとして設計環境に統合する構成を提供する。【解決手段】ＩＤＥは、アンマネージアプリケーションからＩＤＥへのインターフェースを提供するアプリケーションアダプタを含むホスティングコンポーネントを含む。ＩＤＥはさらに、ユーザがＩＤＥのデザイナ機能にアクセスできるようにするデザイナフレームワークを含む。ホストアダプタは、直接的におよび／または統合インターフェースを介して、デザイナフレームワークとインターフェースをとる。開発者は、ＩＤＥ機能ばかりでなくアンマネージアプリケーションの独自機能にもアクセスすることができる。開発環境とホスティッドアプリケーションとの高度な統合が提供され、その結果デザイナはＩＤＥと対話を行う。【選択図】図１
2005228345.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの開発環境を使いやすくするシステムであって、
文書を容易に処理できるようにするアンマネージアプリケーションと、
前記開発環境内で前記アンマネージアプリケーションがデザイナとして機能するように、前記アンマネージアプリケーションとのインターフェースをとるホスティングコンポーネントとを含むことを特徴とするシステム。
【請求項２】
前記ホスティングコンポーネントは、ＯＬＥ技術をサポートすることを特徴とする請求項１に記載のシステム。
【請求項３】
前記アンマネージアプリケーションは、文書処理アプリケーションと表計算アプリケーションの少なくとも一方を含むことを特徴とする請求項１に記載のシステム。
【請求項４】
サードパーティのアンマネージアプリケーションをデザイナとして前記開発環境に容易に統合できるようにする統合インターフェースをさらに含むことを特徴とする請求項１に記載のシステム。
【請求項５】
前記開発環境は、統合開発環境であることを特徴とする請求項１に記載のシステム。
【請求項６】
前記アンマネージアプリケーションとのインターフェースをとるホストアダプタであって、前記アンマネージアプリケーションを前記開発環境に容易に統合できるようにする特定アプリケーション向けのホストアダプタをさらに含むことを特徴とする請求項１に記載のシステム。
【請求項７】
前記開発環境で操作できる文書を容易にホストできるようにする文書ホスティングサブコンポーネントをさらに含むことを特徴とする請求項１に記載のシステム。
【請求項８】
前記文書は、前記アンマネージアプリケーションと前記開発環境の少なくとも一方を用いて操作できることを特徴とする請求項１に記載のシステム。
【請求項９】
前記文書は、新規文書と既存文書の一方であることを特徴とする請求項１に記載のシステム。
【請求項１０】
前記ホスティングコンポーネントと前記開発環境とが容易にインターフェースをとれるようにするデザイナフレームワークをさらに含むことを特徴とする請求項１に記載のシステム。
【請求項１１】
複数の異なるアンマネージアプリケーションを容易にホストできるようにすることを特徴とする請求項１に記載のシステム。
【請求項１２】
請求項１に記載のシステムを実施するためのコンピュータ実行可能命令を格納することを特徴とするコンピュータ可読媒体。
【請求項１３】
請求項１に記載のシステムを利用することを特徴とするコンピュータ。
【請求項１４】
ＩＤＥにおいて不可視データを容易に提示できるようにするトレイコンポーネントをさらに含むことを特徴とする請求項１に記載のシステム。
【請求項１５】
ＩＤＥを使いやすくするシステムであって、
文書を容易に処理できるようにするアンマネージアプリケーションと、
前記ＩＤＥ内で前記アンマネージアプリケーションがデザイナとして機能するように、前記アンマネージアプリケーションとのインターフェースをとるホスティングコンポーネントとを含み、前記ホスティングコンポーネントが、
サードパーティのアンマネージアプリケーションをデザイナとして前記開発環境に容易に統合できるようにする統合インターフェースと、
前記アンマネージアプリケーションとのインターフェースをとるホストアダプタであって、前記アンマネージアプリケーションを前記開発環境に容易に統合できるようにする特定アプリケーション向けのホストアダプタと、
前記開発環境で操作できる文書を容易にホストできるようにする文書ホスティングサブコンポーネントとをさらに含むことを特徴とするシステム。
【請求項１６】
前記ホスティングコンポーネントは、前記ホスティングコンポーネントと前記開発環境とが容易にインターフェースをとれるようにするデザイナフレームワークをさらに含むことを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記アンマネージアプリケーションの独自機能が、前記ＩＤＥ内で利用可能であることを特徴とする請求項１５に記載のシステム。
【請求項１８】
前記文書へのコントロールの追加、および前記コントロールのプロパティの編集を容易に行えるようにすることを特徴とする請求項１５に記載のシステム。
【請求項１９】
前記アンマネージアプリケーションと前記ＩＤＥのメニューのマージを容易に行えるようにすることを特徴とする請求項１５に記載のシステム。
【請求項２０】
前記文書は、埋め込みオブジェクトとリンクオブジェクトの少なくとも一方を含むことを特徴とする請求項１５に記載のシステム。
【請求項２１】
分離コードプロジェクト項目のプロパティを表示するプロパティウィンドウを容易に提示できるようにすることを特徴とする請求項１５に記載のシステム。
【請求項２２】
前記デザイナは、設計ビューおよびコードビューで動作することを特徴とする請求項１５に記載のシステム。
【請求項２３】
前記デザイナは、バイナリ形式とＸＭＬ形式の少なくとも一方で前記文書を処理できることを特徴とする請求項１５に記載のシステム。
【請求項２４】
アンマネージアプリケーションを開発環境に統合する方法を実行するためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記方法が、
前記アンマネージアプリケーションを受け入れるステップと、
前記アンマネージアプリケーションが前記開発環境内でデザイナとしてアクセス可能になるように、前記アンマネージアプリケーションと前記アンマネージアプリケーション固有のホストアダプタを含む前記開発環境とのインターフェースをとるステップとを含むことを特徴とするコンピュータ可読媒体。
【請求項２５】
前記アンマネージアプリケーションの独自機能と前記開発環境の機能とを用いて文書が操作されるように、前記開発環境で前記文書をホストするステップをさらに含むことを特徴とする請求項２４に記載の方法。
【請求項２６】
前記開発環境で文書をホストするステップと、前記文書に関連づけられた分離コードファイルを表示して、前記ファイルの内容を操作できるようにするステップとをさらに含むことを特徴とする請求項２４に記載の方法。
【請求項２７】
前記開発環境で文書をホストするステップと、前記文書の各サブ文書に関連づけられた分離コードファイルを表示して、各ファイルの内容を操作できるようにするステップとをさらに含むことを特徴とする請求項２４に記載の方法。
【請求項２８】
イベントに応答して始動するビューコントロールを提供するステップをさらに含むことを特徴とする請求項２４に記載の方法。
【請求項２９】
アンマネージアプリケーションを開発環境に統合する方法であって、
前記アンマネージアプリケーションを受け入れるステップと、
前記アンマネージアプリケーションが前記開発環境内でデザイナとしてアクセス可能になるように、前記アンマネージアプリケーションと前記アンマネージアプリケーション固有のホストアダプタを含む前記開発環境とのインターフェースをとるステップと、
前記開発環境と前記アンマネージアプリケーションの機能とを用いて文書を操作できるように、前記開発環境で前記文書をホストするステップとを含むことを特徴とする方法。
【請求項３０】
コントロールの前記文書上へのドラッグアンドドロップ操作を実行するステップと、
前記文書に関連づけられた分離コードファイルを見るステップと、
前記分離コードファイルにマネージコードを記述するステップと、
前記デザイナを設計モードと実行時モードで動作させるステップと、
不可視データを提示するステップと、
前記文書上にマネージオブジェクトを描画するステップのうち少なくとも１つによって前記文書を操作するステップをさらに含むことを特徴とする請求項２９に記載の方法。
【請求項３１】
前記アンマネージアプリケーションの選好についての専用ページを提供して、前記アンマネージアプリケーションが前記開発環境に統合される際、前記選好に従って動作するようにするステップをさらに含むことを特徴とする請求項２９に記載の方法。
【請求項３２】
アンマネージアプリケーションを開発環境に容易に統合できるようにするシステムであって、
前記アンマネージアプリケーションを受け入れる手段と、
前記アンマネージアプリケーションが前記開発環境内でデザイナとしてアクセス可能になるように、前記アンマネージアプリケーションと前記アンマネージアプリケーション固有のホストアダプタを含む前記開発環境とのインターフェースをとる手段と、
前記開発環境と前記アンマネージアプリケーションの機能とを用いて文書を操作できるように、前記開発環境で前記文書をホストする手段と、
前記文書を操作する手段とを含むことを特徴とするシステム。
【請求項３３】
前記操作する手段が、
コントロールの前記文書上へのドラッグアンドドロップ操作を実行する手段と、
前記文書に関連づけられた分離コードファイルを見る手段と、
前記分離コードファイルにマネージコードを記述する手段と、
前記デザイナを設計モードと実行時モードで動作させる手段と、
不可視データを提示する手段と、
前記文書上にマネージオブジェクトを描画する手段のうち少なくとも１つの操作手段をさらに含むことを特徴とする請求項３２に記載のシステム。
【請求項３４】
前記文書のプロパティとコンポーネントを操作のために表示する手段をさらに含むことを特徴とする請求項３２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発環境に関し、より詳細には、アンマネージアプリケーション（ｕｎｍａｎａｇｅｄ  ａｐｐｌｉｃａｔｉｏｎ）をデザイナ（ｄｅｓｉｇｎｅｒ）としてソフトウェア開発環境に容易に組み込めるようにする構成に関する。
【背景技術】
【０００２】
ソフトウェア統合開発環境（ｉｎｔｅｇｒａｔｅｄ  ｄｅｖｅｌｏｐｍｅｎｔ  ｅｎｖｉｒｏｎｍｅｎｔ）は、これまで、アンマネージホスティッドアプリケーション（ｕｎｍａｎａｇｅｄ  ｈｏｓｔｅｄ  ａｐｐｌｉｃａｔｉｏｎ）の機能を開発ワークスペースに統合することができていない。したがって、操作性の優れたデザイナを記述するには、通常、非常に難しいホスティッドアプリケーションとの統合を考えなければならず、非常に複雑で時間のかかる作業となる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
開発者がホスティッドアプリケーションの独自機能を利用しながら、ＩＤＥによって提供される豊富な生産性機能を活用できるように、統一的で使いやすい方式によって、アンマネージアプリケーションを設計環境に統合する構成が必要とされている。
【課題を解決するための手段】
【０００４】
本発明のいくつかの態様の基本的な理解を提供するため、以下に本発明の簡略な要約を提示する。この要約は、本発明の包括的な概要ではない。この要約は、本発明の主要／重要な要素を識別すること、または本発明の範囲を明確に示すことを意図したものではない。後で提示するより詳細な説明の導入として、本発明のいくつかの概念を、簡略化した形式で提示することを目的としているに過ぎない。
【０００５】
本明細書で開示され、特許請求される本発明は、その一態様において、開発者がホスティッドアプリケーションの独自機能を利用しながら、ＩＤＥによって提供される豊富な生産性機能を活用できるように、統一的で使いやすい方式によって、アンマネージアプリケーションをホスティッドアプリケーションとして設計環境に統合する構成を含む。これを支援するため、ホスティングコンポーネント（ｈｏｓｔｉｎｇ  ｃｏｍｐｏｎｅｎｔ）を有するＩＤＥが提供され、ホスティングコンポーネントは、アンマネージアプリケーションからＩＤＥへのインターフェースを提供するアプリケーションアダプタ（ａｐｐｌｉｃａｔｉｏｎ  ａｄａｐｔｏｒ）を含む。ＩＤＥは、ユーザがＩＤＥのデザイナ機能にアクセスできるようにするデザイナフレームワーク（ｄｅｓｉｇｎｅｒ  ｆｒａｍｅｗｏｒｋ）を含む。ホストアダプタ（ｈｏｓｔ  ａｄａｐｔｏｒ）は、直接的におよび／または統合インターフェースを介して、デザイナフレームワークとインターフェースをとる。したがって、開発者／ユーザは、ＩＤＥ機能ばかりでなく、アンマネージアプリケーションの独自機能にもアクセスすることができる。これによって、開発環境とホスティッドアプリケーションとの高度な統合が提供され、統合の結果、デザイナはＩＤＥと対話を行う。
【０００６】
上記および関連する目的を達成するため、以下の説明と添付の図面に関連して、本発明のいくつかの例示的な態様について説明する。しかし、それらの態様は、本発明の原理を利用できる様々な方法のうちの数例を示したに過ぎず、本発明には、そのようなすべての態様およびその均等物が含まれるものとする。本発明のその他の利点および新規な特徴は、以下の本発明の詳細な説明を図面と併せて考察することによって明らかになるであろう。
【発明を実施するための最良の形態】
【０００７】
以降、本発明について図面を参照しながら説明するが、本明細書の全体にわたって、同じ参照番号は同じ要素を参照するために用いられる。以下の説明においては、本発明の完全な理解を提供するため、説明の便宜上、数々の特殊な詳細について述べている。しかし、それらの特殊な詳細を伴わなくても、本発明を実施できることは明らかであろう。別の例では、本発明の説明を分かりやすくするため、周知の構造および装置がブロック図形式で示されている。
【０００８】
本出願で用いる「コンポーネント」および「システム」という語は、コンピュータ関連エンティティ、すなわち、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中ソフトウェアを表すものとする。例えば、コンポーネントは、プロセッサで実行中のプロセス、プロセッサ、オブジェクト、実行可能形式、実行スレッド（ｔｈｒｅａｄ  ｏｆ  ｅｘｅｃｕｔｉｏｎ）、プログラム、および／またはコンピュータとすることができるが、これらに限定されるものではない。説明上、サーバで実行中のアプリケーションもサーバも共に、コンポーネントとすることができる。１つまたは複数のコンポーネントが、実行プロセスおよび／またはスレッド内に存在することができ、コンポーネントは、１つのコンピュータに配置することができ、かつ／または２以上のコンピュータに分散させることもできる。
【０００９】
図１を参照すると、本発明のシステム１００が示されている。システム１００は、アンマネージアプリケーション１０４の独自機能を開発環境１０２に容易に組み込めるようにする高度統合開発環境（ＩＤＥ）１０２である。この統合を促進するため、ＩＤＥ１０２は、少なくともホストアダプタ１０８を介して、アンマネージアプリケーション１０４とインターフェースをとるホスティングコンポーネント１０６を含む。ホストアダプタ１０８は、ホスティングコンポーネント１０６の一部であり、特定のアンマネージアプリケーション１０４のみを対象とする。すなわち、アンマネージアプリケーション１０４がワードプロセッサであれば、ホストアダプタは、ワードプロセッサアプリケーションに特有のインターフェース機能を提供する。同様に、表計算アプリケーションは、独自機能をＩＤＥ１０２に容易に組み込めるようにする特有のホストアダプタを有する。
【００１０】
ホスティングコンポーネント１０６は、ホストアダプタ１０８とインターフェースをとり、ホスティングコンポーネント１０６とＩＤＥ１０２の間のインターフェースとして機能するデザイナフレームワーク１１０も含む。ホストアダプタ１０８は、統合インターフェース１１２を介しても、デザイナフレームワークとインターフェースをとり、統合インターフェースは、サードパーティアプリケーション対応のホストアダプタ１０８が存在するならば、その独自機能もＩＤＥ１０２に組み込むことのできる、サードパーティアプリケーション用のインターフェースとして機能する。
【００１１】
ホスティングコンポーネント１０６はまた、アプリケーション１０４の関連文書を円滑にホストできるように、デザイナフレームワーク１１０とアンマネージアプリケーション１０４とのインターフェースをとる、文書ホスティングサブコンポーネント（ｄｏｃｕｍｅｎｔ  ｈｏｓｔｉｎｇ  ｓｕｂｃｏｍｐｏｎｅｎｔ）１１４を含む。
【００１２】
先に指摘したように、システム１００は、複数のアンマネージアプリケーション（アンマネージＡｐｐ１．．．アンマネージＡｐｐＮと表記）の独自機能を統合することができる。したがって、ＩＤＥ１０２は、対応する複数のホスティングコンポーネント（ホスティングコンポーネント１．．．ホスティングコンポーネントＸと表記）を含む。各ホスティングコンポーネントは、ホストアダプタ、デザイナフレームワーク、統合インターフェース、および文書ホスティングサブコンポーネントを含む。これらのコンポーネントは別個のエンティティとして示されているが、アンマネージアプリケーションの独自機能をＩＤＥに統合するのに適切と考えられる方式で、これらのエンティティを組み合わせることができることに留意されたい。
【００１３】
システム１００は、ＩＤＥがＯＬＥ（オブジェクトのリンクおよび埋め込み）をサポートし、文書ホスティングサブコンポーネント１１４によってホストされる文書がＯＬＥ文書である場合、ＯＬＥ技術に特に適している。したがって、ＯＬＥ文書インターフェースをサポートするアプリケーションはどれも、ＩＤＥ１０２に統合することができる。しかし、本発明は、そのようなＯＬＥ技術に限定されるものではなく、ＩＤＥで利用するのに適したその他のあらゆる技術を企図している。
【００１４】
文書ベースの機能豊富なアプリケーション（例えば、ワードプロセッサや表計算アプリケーションなど）のＩＤＥ内部におけるホスティングを背後で支える新機軸は、これらのアプリケーションをビジュアルデザイナ（ｖｉｓｕａｌ  ｄｅｓｉｇｎｅｒ）として扱う点にある。ホスティッドアプリケーションは十分な機能を備えているが、ＩＤＥによって提供される豊富な機能も利用する。ＩＤＥにおいてホストする場合、ホスト文書を、様々なツールウィンドウとの対話を介して視覚的に設計することができる。例えば、ツールボックス（Ｔｏｏｌｂｏｘ）を利用して、コントロールおよびコンポーネントをデザイナ上にドラッグし、ドロップすることができる。文書上のコントロールをデザイナ内で選択し、コントロールのプロパティをプロパティ（Ｐｒｏｐｅｒｔｙ）ウィンドウで編集することができる。別の操作は、例えば、データソースピッカツール（Ｄａｔａ  Ｓｏｕｒｃｅ  Ｐｉｃｋｅｒ  Ｔｏｏｌ）ウィンドウを介して、アプリケーションにデータ結合機能（ｄａｔａ  ｂｉｎｄｉｎｇ  ｆｕｎｃｔｉｏｎａｌｉｔｙ）を実装する。
【００１５】
本発明は、ホスティッドアプリケーションによって提供される独自機能を少しも低下させることなく、ホスティッドアプリケーションをビジュアルデザイナにする。これによって、ホスティッドアプリケーションは実際上、速やかにソリューションおよびアプリケーションを作成できるように、開発者がオブジェクトをドラッグし、ドロップすることができるデザイン面（ｄｅｓｉｇｎ  ｓｕｒｆａｃｅ）になる。さらに、開示の手法は、ＩＤＥにおいてアプリケーションを開発する上で、使い慣れた統一のとれた開発モデルを提供する。さらに、本発明の高度ＩＤＥは、概念の数を最小に維持しながら、設計パラダイムの数も最小に抑える。
【００１６】
次に図２を参照すると、アプリケーション独自の機能をＩＤＥに統合するプロセスのフローチャートが示されている。説明を簡潔にするため、例えば、フローチャート形式で本明細書に示される１つまたは複数の方法は、一連の動作として示され、説明されているが、本発明は、そのような動作の順序によって限定されるものではなく、いくつかの動作は、本発明に従って、異なる順序で生じてもよく、かつ／または本明細書に示され、説明されるその他の動作と同時に生じてもよいことを理解し、認識されたい。例えば、ある方法は代替的に、状態図などによって、一連の相互に関係する状態またはイベントとして表せることは、当業者であれば理解され、認識されよう。さらに、本発明による方法を実施するのに、説明されるすべての動作が必ずしも必要でないこともある。
【００１７】
２００において、ＩＤＥが提供される。２０２において、アンマネージアプリケーションを円滑にホストできるように、ＩＤＥ内でホスティングコンポーネントが提供される。２０４において、デザイナフレームワークが提供され、ホスティングコンポーネントとのインターフェースがとられる。２０６において、アンマネージアプリケーション対応のホストアダプタが、ホスティングコンポーネントの一部として提供される。２０８において、ホストアダプタは、直接的におよびサードパーティアプリケーション用の統合インターフェースを介して間接的に、デザイナフレームワークとインターフェースをとる。２１０において、文書ホスティングサブコンポーネントが提供され、デザイナフレームワークおよびアンマネージアプリケーションとインターフェースがとられる。２１２において、ホスティッド文書（ｈｏｓｔｅｄ  ｄｏｃｕｍｅｎｔ）は、デザイナ機能およびアンマネージアプリケーションの独自機能の両方を用いて操作することができる。その後、プロセスは停止ブロックに到達する。
【００１８】
次に図３を参照すると、本発明によるＯＬＥ文書開発のプロセスのフローチャートが示されている。この特有のプロセスの実施においては、ＩＤＥ環境は、ＯＬＥ技術をサポートする。３００において、開発者がＩＤＥ環境を開く。３０２において、アンマネージアプリケーションが選択される。３０４において、新規文書が開かれるか、または既存文書が編集のために開かれる。３０６において、文書が処理される場所に基づいて様々なレベルの許可または制限を設定するため、文書に対してセキュリティ設定を施すことができる。３０８において、開発者／ユーザは、デザイナフレームワークおよびホスティッドアプリケーションの独自機能の一方または両方の機能を用いて、文書および／または文書内容を操作する。その後、プロセスは停止ブロックに到達する。
【００１９】
ホストアダプタ
ホスティッドアプリケーションがデザイナとして開かれた場合、ホスティッドメニュー（ｈｏｓｔｅｄ  ｍｅｎｕ）は、ＩＤＥのメニューとマージされる。ホスティッドアプリケーションにフォーカスが当てられているかどうかに応じて、一部のメニュー項目は使用可能となり、その他のメニュー項目は使用不能となる。すなわち、ＩＤＥにフォーカスが当てられている場合、ホスティッドアプリケーション内の一部のメニュー項目が使用不能となる。反対に、ホスティッドアプリケーションにフォーカスが当てられている場合、ＩＤＥの一部のメニュー項目が使用不能となる。これは、ホストアダプタの機能の１つに過ぎない。
【００２０】
次に図４を参照すると、本発明による統合機能を示すサンプルウィンドウ４００が示されている。ウィンドウ４００は、（例えば、ＥＸＣＥＬ商標の表計算アプリケーションに関する）ホスティッド表計算アプリケーションを表している。ウィンドウ４００には、ＩＤＥのＩＤＥメニュー４０４とマージされたホストメニュー４０２、Ｖｉｅｗ  Ｃｏｄｅコマンド４０８が追加されたホストコンテキストメニュー（ｈｏｓｔ  ｃｏｎｔｅｘｔ  ｍｅｎｕ）４０６、プロジェクト構造４１２を示すＳｏｌｕｔｉｏｎ  Ｅｘｐｌｏｒｅｒ４１０、選択された表計算のプロパティ４１６を示すＰｒｏｐｅｒｔｙウィンドウ４１４、およびホスティッド文書４２２に追加できるコントロールおよびコンポーネント４２０のリストを有するＴｏｏｌｂｏｘ４１８が示されている。
【００２１】
Ｐｒｏｐｅｒｔｙウィンドウは、分離コード（ｃｏｄｅ−ｂｅｈｉｎｄ）プロジェクト項目とその他のデザイナプロジェクト項目とのプロパティを表示する。ホスティッドアプリケーションは、そのプロパティをＰｒｏｐｅｒｔｙウィンドウに加える。ホスティッドアプリケーションは、プロパティをＰｒｏｐｅｒｔｙウィンドウに加えるかどうかを選択することができる。ホスティッドアプリケーションは、プロパティのリスト（例えば、プロパティの名前やプロパティの型）を提供する。
【００２２】
埋め込みオブジェクトまたはリンクオブジェクトを含む文書はどれも、ＩＤＥ内で開くことができる。埋め込みオブジェクトまたはリンクオブジェクトを選択することによって、メニューおよびツールバーが選択オブジェクト用に変更される。
【００２３】
Ｔｏｏｌオプションの第１のラジオボタンが選択された場合、アダプタはすべてのアクセラレータを捕捉し、動的に生成されるＩＤＥ内のショートカット（またはキーマッピング）のテーブルにアクセラレータを転送する。処理できないものは、ＩＤＥテーブルによってホスティッドアプリケーションに差し戻され、ホスティッドアプリケーションで処理される。
【００２４】
デザイナ上で右クリックを行うと、標準の表計算コンテキストメニューが出現する。コンテキストメニューの第１コマンドに、メニューコマンド「Ｖｉｅｗ  Ｃｏｄｅ」が追加されている。「Ｖｉｅｗ  Ｃｏｄｅ」コマンドをリストの先頭に配置することによって、その他のプログラムのコンテキストメニューとの統一が図られる。表計算セルからＶｉｅｗ  Ｃｏｄｅコマンドを選択すると、開発者は、当該ワークシートのコードエディタに導かれる。カーソルは、以前設定されていた位置に設定される。これは、デフォルトでは、カーソルはエディタの先頭に設定されることを意味する。Ｖｉｅｗ  Ｃｏｎｔｒｏｌ上で右クリックを行うと、当該Ｖｉｅｗ  Ｃｏｎｔｒｏｌ用のコンテキストメニューが表示される。Ｖｉｅｗ  ＣｏｎｔｒｏｌからＶｉｅｗ  Ｃｏｄｅコマンドを選択すると、開発者は、ＩＤＥのコードエディタに導かれ、カーソルは、以前設定されていた位置に設定される。
【００２５】
ワークシートタブ上で右クリックを行うと、表計算アプリケーションのコンテキストメニューが出現する。コンテキストメニューは、Ｖｉｅｗ  Ｃｏｄｅコマンドを含んでおり、Ｖｉｅｗ  Ｃｏｄｅコマンドは選択されると、ＩＤＥコードエディタ内の当該表計算シート用の分離コードファイルにユーザを導く。このＶｉｅｗ  Ｃｏｄｅコマンドによって導かれるコードエディタでのカーソル位置付け動作は、デザイナのＶｉｅｗ  Ｃｏｄｅコマンドの場合のカーソル位置付け動作と同じである。
【００２６】
次に図５を参照すると、本発明の統合カスケードメニュー（ｉｎｔｅｇｒａｔｅｄ  ａｎｄ  ｃａｓｃａｄｉｎｇ  ｍｅｎｕ）機能を示すウィンドウ５００が示されている。（サーバアプリケーションとしても知られる）ホスティッドアプリケーションをＩＤＥに統合することによって、名前が類似するメニュー項目間で名前の衝突が発生することがある。その場合、ＩＤＥとホスティッドアプリケーションとの統合は、少なくともＶｉｅｗメニュー項目が衝突するようなメニュー衝突（ｍｅｎｕ  ｃｏｎｆｌｉｃｔ）を引き起こす。ＩＤＥは、ＩＤＥの既存Ｖｉｅｗメニュー５０２を修正して、その中に（Ｓｅｒｖｅｒ  Ｖｉｅｗ  Ｃｏｍｍａｎｄと表記されたコマンドを介してアクセス可能な）ホスティッドアプリケーションのメニュー５０５が含まれるようにする。ＩＤＥは、ＩＤＥのＶｉｅｗメニュー５０２内でサーバのＶｉｅｗメニューオプションの所在を明確に示す文字列をユーザに提示する。Ｓｅｒｖｅｒ  Ｖｉｅｗ  Ｃｏｍｍａｎｄメニューオプションに付された展開矢印（ｅｘｐａｎｓｉｏｎ  ａｒｒｏｗ）が、カスケードサーバサブメニュー（ｃａｓｃａｄｅｄ  ｓｅｒｖｅｒ  ｓｕｂｍｅｎｕ）項目へのアクセスを容易にする。
【００２７】
例示的なシナリオ
ユーザは、ＩＤＥ内で新規の表計算プロジェクトを生成する。表計算関連プロジェクト項目は、ソリューションエクスプローラおよび表計算ワークブック内で生成され、シートがデザイナとして文書ウィンドウ内に表示される。表計算文書はＩＤＥ内で設計される。ＩＤＥとホスティッドアプリケーションのメニューは、開示の構成によってマージされ、ツールバーは、デザイナの表計算アプリケーション内で利用することができるので、生産性機能とＩＤＥ機能のすべてが、１つの環境内で提供される。表計算シートは、マネージコード（ｍａｎａｇｅｄ  ｃｏｄｅ）を用いて表計算シートをカスタマイズするのに、ＩＤＥツールウィンドウおよびエディタを利用することができるばかりでなく、表計算アプリケーションのすべての機能を利用して編集および修正することができる。ユーザは、ツールボックスからマネージボタン（ｍａｎａｇｅｄ  ｂｕｔｔｏｎ）を文書上にドラッグし、ドロップすることができる。ボタンを選択し、そのプロパティをプロパティグリッドを用いて修正することができる。カスタマイズは、ボタン上でダブルクリックを行い、コードビュー（Ｃｏｄｅ  Ｖｉｅｗ）に入ることによって、自動生成イベントハンドラ内で行うことができる。
【００２８】
デザイナのモード
ホスティッドアプリケーションは、設計動作とホスティッドアプリケーション内の実行時動作とを区別する、設計モード（Ｄｅｓｉｇｎ  ｍｏｄｅ）と実行時モード（Ｒｕｎｔｉｍｅ  ｍｏｄｅ）で動作する。ユーザが各モードで実行できる動作の組は、アプリケーション毎に異なり、ＩＤＥ内にいるかどうかに関わらず、ホスティッドアプリケーションに依存する。一実施においては、ホスティッドアプリケーションは設計時モードにあり、ＩＤＥ内でホストされるときは設計時モードに留まる。設計時モードにあるときには、コントロールをデザイナ上にドラッグすること、コントロールを選択してそのプロパティを調べ、編集すること、およびコントロール上でダブルクリックを行ってコードビューに入ることが容易に行える。アンマネージアプリケーション用のホストアダプタは、文書がＩＤＥ内にある場合、文書を設計モードに入れ、入ったままにさせる。
【００２９】
もう１つのモードは、「実行」モードである。実行中またはデバッグ中のアプリケーションは、「実行」モードにある。このモードでは、アプリケーションの独自機能だけが利用できる。デバッグが開始されると、コードエディタがアクティブデザイナになり、すべてのアクセラレータはＩＤＥによって処理される。
【００３０】
文書のビュー
ＩＤＥでホストされる文書は、少なくとも２つのビュー、すなわちデザインビューとコードビューを有することができる。一般に、デザインビューは、アプリケーションの設計／通常ビューである。デザインビューは、ＯＬＥ文書技術をサポートする文書についても使用可能である。これらの文書上で作業を行う際、ユーザは、オリジナルのホスティッドアプリケーションを操作するのと実質的に同じ方法で操作することができる。これは、開発者が、テンプレート／文書を設計でき、文書を作成および修正でき、また書式設定、図表化、およびスキーママッピングなどのホスト固有の機能を使用できることを意味する。このような動作は、ＯＬＥ技術を活用し、ＩＤＥでホスティッドアプリケーションをホストすることによって達成される。
【００３１】
デザインビューは、ホスティッドアプリケーションによってサポートされる形式で、新規および既存文書を表示することができる。例えば、デザイナは、バイナリ形式およびＸＭＬ形式で文書を処理することができる。これは、文書をＩＤＥに完全に統合して、コントロールのデザイナ上へのドラッグアンドドロップ、コンテキストの選択、およびコード記述のためのコントロール上でのダブルクリックなどの操作を可能にする、ＯＬＥ文書技術を活用することによって達成される。デザイナは、書式設定、スタイル、スキーママップ、および埋め込みオブジェクトを含むが、これらに限定されない、文書の全内容を表示することができる。
【００３２】
ＩＤＥ内では、ホスティッドアプリケーションは「設計モード」にある。ＩＤＥ内でホストされるアプリケーションは、そのすべての機能が有効である。すなわち、ＩＤＥ内でソリューションを開発する際、ユーザは、ホスティッドアプリケーションのメニュー、コマンド、コンテキストメニュー、およびアクセラレータをすべて利用することができる。同時に、ホスト独自機能に追加される機能および操作性も存在する。本明細書で指摘するように、その例として、ＩＤＥツールウィンドウとの対話、デザイナ（文書）上で右クリックを行い、「Ｃｏｄｅ  Ｖｉｅｗ」コマンドを選択すると、分離コードファイル（ｃｏｄｅ  ｂｅｈｉｎｄ  ｆｉｌｅ）に導かれる機能、およびファンクションキー（例えば、Ｆ５）を選択すると、デバッグが開始される機能などが挙げられる。これらの機能は、開発者がＩＤＥ内において体験する操作性を著しく向上させ、アプリケーションを設計する際、開発者を強力に支援する。
【００３３】
ホスティッドアプリケーション内でのユーザ操作性が、ＩＤＥでの操作性と異なり得る場合が存在する。例えば、「Ｔｏｏｌ＞Ｍａｃｒｏ」メニューオプションが利用可能でない場合、一定のキーの組合せを用いるなどして、異なる動作で代用することができる（例えば、Ａｌｔ＋Ｆ１１が選択されたら、マクロ環境をロードするなど）。ホスティッドアプリケーションの動作が、ＩＤＥ外部にあるときの動作と異なるような特殊なケースは、ホストアダプタに関連づけられる。ホストアダプタは、そのようなホスト機能を停止させることによって、またはその動作を変更することによって、そうした動作上の差異に対処する。これを行う目的は、開発者が体験する操作性を向上させ、ホスティッドアプリケーションと開発環境の統合をより高度なものにすることにある。
【００３４】
アプリケーション文書が関連する複数の「サブ文書」をもつ場合（例えば、ワークブックに関連づけられた複数のワークシートなど）、各「サブ文書」に関連づけられたコードビュー（すなわち、各ワークシートに関連づけられた分離コードファイル）が存在することに留意されたい。ＩＤＥ内でホストされ、カスタマイズされる文書は、関連するコードビューを有する。
【００３５】
コードビューは、文書に関連づけられた分離コードファイルを表示する。デザイナによって提示される文書に関連づけられたコードウィンドウは、複数の方法で起動することができる。１つの方法は、ソリューションエクスプローラ上の「Ｖｉｅｗ  Ｃｏｄｅ」ボタンをクリックするか、またはソリューションエクスプローラ内でデザイナまたは対応するコードプロジェクト項目が選択されているときに、ＶＳ  Ｖｉｅｗメニューのメニュー項目「Ｃｏｄｅ  Ｖｉｅｗ」を選択するものである。ソリューションエクスプローラ内でデザイナが選択されている場合、現在アクティブなサブ文書に対応するコードウィンドウが開かれる。もう１つの方法は、デザイナのコンテキストメニューから「Ｖｉｅｗ  Ｃｏｄｅ」メニューを選択するものである（カーソルはマップ要素（ｍａｐｐｅｄ  ｅｌｅｍｅｎｔ）上にないことに留意されたい）。また別の方法は、ソリューションエクスプローラ内のプロジェクト項目のコンテキストメニューから「Ｖｉｅｗ  Ｃｏｄｅ」を選択するものである。
【００３６】
上記のすべての動作において、コードウィンドウは、カーソルがウィンドウ先頭に設定された状態でロードされる。デザイナ内のコントロール上でダブルクリックを行うことによってコードウィンドウが出現した場合。次に、コード生成（すなわち、ハンドラ定義）およびコードナビゲーションが行われる。この場合、カーソルは、デフォルトのコントロールイベントハンドラ内に設定される。ハンドラがまだ存在していない場合、ハンドラが生成される。ホスティッドアプリケーションは、どのハンドラを生成したらよいかを知るのに十分なデータをＩＤＥに提供する。デフォルトのイベントハンドラがすでに生成されている場合、コントロール上でダブルクリックを行うことによって、ユーザはコードエディタに導かれ、カーソルがデフォルトイベントハンドラ内に位置付けられる。
【００３７】
ビューコントロール
ビューコントロール（ｖｉｅｗ  ｃｏｎｔｒｏｌ）は、データ結合をサポートするために集められたオブジェクトであり、ビューコントロールによって起動されたイベントに応答するのに開発者が利用できるイベントモデルを提供する。ビューコントロールの見やすさおよび見つけやすさを向上させるため、ビューコントロールは、ユーザがアプリケーションデザイナ上にドラッグし、ドロップできる「コントロール」として、ツールボックス内に配置される。以下の説明は、文書処理アプリケーションにおいて、ビューコントロールの発見、作成、削除、およびビューコントロールを用いた作業をサポートする、設計時ツールについてのものである。しかし、表計算アプリケーションも関連するビューコントロールを有することは理解されよう。
【００３８】
例えば、ビューコントロールの作成およびビューコントロールを用いた作業に利用できる、文書処理アプリケーション（および表計算アプリケーション）独自のサポートには、いくつかのレベルが存在する。操作性を向上させるため、追加のツールサポートが、ビューコントロールに関連して追加され、ビューコントロールを用いて作業する際に開発者が体験する全体的な操作性を向上させるばかりでなく、この機能の見やすさおよび見つけやすさも向上させる。開発者が慣れ親しむモデルを提供するため、ビューコントロール関連の操作性は、マネージコントロールを用いた作業をまねており、例えば、選択コンテキストおよびプロパティウィンドウがサポートされ、ビューコントロールはツールボックスから追加され、ビューコントロール上でダブルクリックを行うことで、コードビューに導かれる。
【００３９】
主な機能には、ツールボックスからのビューコントロールの通常のドラッグアンドドロップのサポート、ツールボックスを介して追加されたビューコントロールへのデフォルト名の付与、ビューコントロールの選択コンテキスト（例えば、デザイナ内でビューコントロールを選択すると、プロパティウィンドウ内にプロパティが表示され、またプロパティグリッドのドロップダウンでビューコントロールを選択すると、デザイナ内でそのビューコントロールが選択されるなど）、ビューコントロール上でのダブルクリックによるコードエディタへの誘導、デフォルトのイベントハンドラの生成、分離コードとデザイナに追加されるビューコントロールとの動的同期、プロパティウィンドウを介したビューコントロール名の変更のサポート、コードエディタにおけるビューコントロール用のイベントドロップダウンのサポートなどが含まれるが、これらに限定されるものではない。その他の機能として、（ビューコントロールを追加するため、ツールボックス内で「Ｅｎｔｅｒ」および「ダブルクリック」をサポートする）ビューコントロールのツールボックスアクセス可能性（Ｔｏｏｌｂｏｘ  ａｃｃｅｓｓｉｂｉｌｉｔｙ）、ブックマークの表示、重複ブックマークの処理、ツールボックス内でのビューコントロール項目用のファンクションキー（Ｆ１）のサポート、（ビューコントロールを追加するため、Ｃｔｒｌ＋ＣおよびＣｔｒｌ＋Ｖをサポートする）ツールボックスアクセス可能性、ブックマークの削除のサポート、（混乱を緩和するための）ビューコントロールの通常ブックマークへの降格オプションのユーザへの提供、ビューコントロール間のタブ移動、および図形用ツールボックスのサポートなどを挙げることができる。ワードプロセッサでは、１文字から複数段落にわたって機能するブックマークビューコントロールがサポートされる。
【００４０】
ＩＤＥ内にある文書にスキーマを適用するため、開発者は、ワードプロセッサのＸＭＬ構造タスクペイン（ＸＭＬ  Ｓｔｒｕｃｔｕｒｅ  ｔａｓｋ  ｐａｎｅ）を使用することができる。マッピングプロセスが、マップ要素毎にＸＭＬノードビューコントロール（ＸＭＬ  ｎｏｄｅ  ｖｉｅｗ  ｃｏｎｔｒｏｌ）を生成する。ＸＭＬノードビューコントロールのデフォルトの名前は、スキーママップ要素と同じとする。スキーママップビューコントロール（ｓｃｈｅｍａ  ｍａｐｐｅｄ  ｖｉｅｗ  ｃｏｎｔｒｏｌ）の変数の一意性を確保するため、衝突が発生した場合、名前にＸが付加される（ただし、Ｘは、さらなる衝突が発生するたびに加算される整数とする）。
【００４１】
表計算アプリケーションのビューコントロールに関しては、名前付き範囲（Ｎａｍｅｄ−Ｒａｎｇｅ）コントロールとリストオブジェクト（ＬｉｓｔＯｂｊｅｃｔ）コントロールが提供される。名前付き範囲は、範囲に簡単に名前を付けると共に、各名前付き範囲が一意に命名されるように保証する名前テーブルを表計算シート毎に維持するメカニズムである。リストオブジェクトは、表計算シート範囲を拡張したものであり、高度なデータ操作性を提供するように設計されており、適用されるデータセットに合わせて自動的に大きくなったり／小さくなったりする機能を含む。リストオブジェクトは、リスト行（ＬｉｓｔＲｏｗ）およびリスト列（ＬｉｓｔＣｏｌｕｍｎ）として表示される行と列を含む。
【００４２】
コンポーネントトレイ
コンポーネントトレイ（Ｃｏｍｐｏｎｅｎｔ  Ｔｒａｙ）は、アプリケーションをホストするときに、不可視コンポーネントを表示または可視化する容易な方法を提供する。データアダプタおよび関連コンポーネントなど、実行時には可視化されない開発用コンポーネントが存在する。コンポーネントトレイは、設計時に不可視コンポーネントを視覚的に認識し、操作するためのメカニズムを提供する。開発者は、こうしたコンポーネントをドラッグおよびドロップし、プロパティを編集し、コンポーネントを視覚化することができる。コンポーネントをビューに追加する１つの方法は、ツールボックスからコンポーネントをドラッグし、それを文書上にドロップし、そのプロパティを設定したり削除したりするものである。不可視コンポーネントは、文書を支援するクラスの命名されたクラスメンバインスタンスとなる。
【００４３】
トレイは、不可視コンポーネントが文書上に存在する場合に存在する。不可視コンポーネントが存在しない場合、トレイは完全に消滅する。不可視コンポーネントをビューのメイン部分にドラッグすることによって、ユーザが最初の不可視コンポーネントをビューに挿入すると、トレイが開かれ、不可視コンポーネントはトレイに移動する。以降、不可視コンポーネントは、ビジュアルフォーム上にドロップすることもでき、またはトレイ上に直接ドロップすることもできる。
【００４４】
可視項目をコンポーネントトレイ上にドラッグした場合、ドロップアイコンは表示されず、ドロップ操作は無視される。最後の不可視コンポーネントがフォームから削除されると、トレイは消滅し、選択対象がデザイナに戻る。トレイの背景色は、システムウィンドウの背景色と同じである。コンポーネントは、トレイの現在の幅に合わせて自動的に配列されるので、水平スクロールは必要ない。垂直スクロールバーは、必要に応じてトレイ内に現れる。トレイの枠内に表示可能なコンポーネントよりも多くのコンポーネントが追加された場合、垂直スクロールバーがトレイに追加される。コンポーネントがコンポーネントトレイの左枠または右枠を超えて配置された場合、水平スクロールバーが追加される。コンポーネントトレイに変更があっても、文書の上が乱雑になることはない。
【００４５】
開示された構成のいくつかの機能について復習すると、ＩＤＥツールボックスウィンドウを利用することで、マネージコントロールのデザイナ面へのドラッグおよびドロップ、または描画が可能になる。データソースウィンドウを利用することで、マネージデータコンポーネントおよびコントロールのデザイナ面へのドラッグおよびドロップが可能になる。ＩＤＥプロパティウィンドウを利用することで、文書および文書上のコンポーネントのプロパティ操作が可能になる。ＩＤＥコンポーネントトレイウィンドウは、例えば、文書上にドロップされたデータアダプタやデータコネクタなどの不可視エレメントをホストする。デザイナを利用することで、開発者は、文書および文書上のコンポーネントから分離されたマネージコードを記述することができる。ツール／オプション（Ｔｏｏｌｓ／Ｏｐｔｉｏｎｓ）ダイアログは、様々な範囲のＩＤＥ機能に特別なオプションを提供する。デザイナに様々な方法で動作できる柔軟性を与えることができるよう、デザイナホスティッドアプリケーション毎に専用ページを設けることができる。専用ページは、ＩＤＥ内でアンマネージアプリケーションがデザイナになった場合、ユーザが呼び出されることを望む選好（ｐｒｅｆｅｒｅｎｃｅ）を含む。
【００４６】
文書ベースのデザイナの場合、ユーザ操作性を向上させるため、ＩＤＥ内でのアプリケーションの動作をカスタマイズする追加の態様が存在する。そのような機能の一例として、文書コンテキストメニューの変更がある。さらに、文書が「設計され」、プログラムできることを反映して、「Ｖｉｅｗ  Ｃｏｄｅ」コマンドが、いくつかのメニューに追加される。さらに、設計環境であることを強調するため、ホスティッドアプリケーション用に専用の「デザイナ」ツールバーが追加される。
【００４７】
図６を参照すると、開示の構成を実行するように動作可能なコンピュータのブロック図が示されている。本発明の様々な態様のためのさらなるコンテキストを提供するため、図６および以下の説明は、本発明の様々な態様を実施できる適切なコンピューティング環境６００についての簡潔で概括的な説明を提供することを意図している。上では本発明を、１つまたは複数のコンピュータで実行可能なコンピュータ実行可能命令という一般的なコンテキストにおいて説明したが、他のプログラムモジュールと組み合わせても、かつ／またはハードウェアとソフトウェアの組合せとしても本発明を実施できることは、当業者であれば理解されよう。
【００４８】
一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造などを含み、これらは特定のタスクを実行したり、特定の抽象データタイプを実装したりする。さらに、各々が１つまたは複数の関連装置に動作可能に結合され得る、シングルプロセッサまたはマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびにパーソナルコンピュータ、ハンドヘルドコンピューティング装置、マイクロプロセッサベースまたはプログラム可能家電機器、その他を始めとする、他のコンピュータシステム構成を用いて、本発明の方法を実施できることも、当業者であれば理解されよう。
【００４９】
例示した本発明の態様は、特定のタスクが通信ネットワークを介して接続されたリモート処理装置によって実行される、分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールは、ローカルメモリ記憶装置とリモートメモリ記憶装置の両方に配置することができる。
【００５０】
コンピュータは一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータによってアクセス可能などのような利用可能媒体ともすることができ、揮発性および不揮発性媒体、着脱可能および着脱不能媒体を共に含む。例えば、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体を含むことができるが、これらに限定されるものではない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータといった情報を記憶するためのあらゆる方法または技術で実施される、揮発性および不揮発性媒体、着脱可能および着脱不能媒体を共に含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくはその他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタルビデオディスク）、もしくはその他の光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶、もしくはその他の磁気記憶装置、または記憶したい情報を記憶するのに利用でき、コンピュータによってアクセスできる、その他のあらゆる媒体を含むが、これらに限定されるものではない。
【００５１】
通信媒体は一般に、搬送波またはその他の移送機構などの変調データ信号によって、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを表すものであり、あらゆる情報送達媒体を含む。「変調データ信号」という語は、信号中に情報を符号化するための方式によって設定または変更された１つまたは複数の信号特性をもつ信号を意味する。例えば、通信媒体は、有線ネットワークまたは直接線接続などの有線媒体、ならびに音響、ＲＦ、赤外線、およびその他の無線媒体などの無線媒体を含むが、これらに限定されるものではない。上記の媒体のどのような組合せも、コンピュータ可読媒体の範囲に含まれるものとする。
【００５２】
図６を再び参照すると、コンピュータ６０２を含む、本発明の様々な態様を実施するための例示的な環境６００が示されており、コンピュータ６０２は、プロセッシングユニット６０４、システムメモリ６０６、およびシステムバス６０８を含む。システムバス６０８は、システムメモリ６０６を含むがそれだけに限定されないシステムコンポーネントを、プロセッシングユニット６０４に結合する。プロセッシングユニット６０４は、様々な市販のプロセッサのいずれとすることもできる。プロセッシングユニット６０４として、デュアルマイクロプロセッサおよびその他のマルチプロセッサ構成も利用することができる。
【００５３】
システムバス６０８は、様々な市販のバス構成のいずれかを用いる（メモリコントローラを備えるまたは備えない）メモリバス、周辺バス、およびローカルバスにさらに相互接続可能な、複数のタイプのバス構造のいずれとすることもできる。システムメモリ６０６は、ＲＯＭ（読み取り専用メモリ）６１０およびＲＡＭ（ランダムアクセスメモリ）６１２を含む。ＢＩＯＳ（基本入出力システム）は、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの不揮発性メモリ６１０に記憶され、起動中などにコンピュータ６０２の要素間の情報伝送を助ける基本ルーチンを含む。ＲＡＭ６１２は、データをキャッシュするためのスタティックＲＡＭなど、高速ＲＡＭを含むこともできる。
【００５４】
コンピュータ６０２はさらに、内部ハードディスクドライブ（ＨＤＤ）６１４（例えば、ＥＩＤＥ、ＳＡＴＡ）、（例えば、着脱可能ディスケット６１８との間で読み書きするための）磁気フロッピディスクドライブ（ＦＤＤ）６１６、および（例えば、ＣＤ−ＲＯＭディスク６２２を読み、またはＤＶＤなどのその他の大容量光媒体との間で読み書きするための）光ディスクドライブ６２０を含み、内部ハードディスクドライブ６１４は、適切な筐体（図示せず）に収容し外付けとして利用するように構成することもできる。ハードディスクドライブ６１４、磁気ディスクドライブ６１６、光ディスクドライブ６２０はそれぞれ、ハードディスクドライブインターフェース６２４、磁気ディスクドライブインターフェース６２６、光ドライブインターフェース６２８によって、システムバス６０８に接続することができる。外部ドライブ実装用のインターフェース６２４は、ＵＳＢ（汎用シリアルバス）とＩＥＥＥ１３９４インターフェース技術の少なくとも一方または両方を含む。
【００５５】
ドライブおよびそれに関連するコンピュータ可読媒体は、データ、データ構造、およびコンピュータ実行可能命令などの不揮発性記憶を提供する。コンピュータ６０２のために、ドライブおよび媒体は、適切なデジタルフォーマットによるあらゆるデータの記憶を可能にする。上述のコンピュータ可読媒体の説明では、ＨＤＤ、着脱可能磁気ディスケット、およびＣＤまたはＤＶＤなどの着脱可能光媒体について言及しているが、ジップドライブ（ｚｉｐ  ｄｒｉｖｅ）、磁気カセット、フラッシュメモリカード、およびカートリッジなど、コンピュータによって可読なその他のタイプの媒体も、例示的な動作環境で利用することができること、またそのような媒体はどれも、本発明の方法を実行するためのコンピュータ実行可能命令を含むことができることは、当業者であれば理解されよう。
【００５６】
オペレーティングシステム６３０、１つまたは複数のアプリケーションプログラム６３２、その他のプログラムモジュール６３４、およびプログラムデータ６３６を始めとする、複数のプログラムモジュールは、ドライブおよびＲＡＭ６１２に格納することができる。オペレーティングシステム、アプリケーション、モジュール、および／またはデータの全部または一部は、ＲＡＭ６１２にキャッシュすることもできる。
【００５７】
様々な市販のオペレーティングシステムを用いて、またはオペレーティングシステムを組み合わせて、本発明を実施できることは理解されよう。
【００５８】
ユーザは、１つまたは複数の有線／無線入力装置、例えば、キーボード６３８、およびマウス６４０などのポインティングデバイスを介して、コンピュータ６０２にコマンドおよび情報を入力することができる。その他の入力装置（図示せず）として、マイクロホン、ＩＲリモコン、ジョイスティック、ゲームパッド、スタイラスペン、またはタッチスクリーンなどを挙げることができる。上記およびその他の入力装置は、システムバス６０８に結合された入力装置インターフェース６４２を介して、しばしばプロセッシングユニット６０４に接続されるが、パラレルポート、ＩＥＥＥ１３９４シリアルポート、ゲームポート、ＵＳＢポート、ＩＲインターネットなど、その他のインターフェースによって接続することもできる。
【００５９】
モニタ６４４またはその他のタイプのディスプレイ装置も、ビデオアダプタ６４６などのインターフェースを介してシステムバス６０８に接続される。モニタ６４４に加え、コンピュータは一般に、スピーカやプリンタなど、その他の周辺出力装置（図示せず）を含む。
【００６０】
コンピュータ６０２は、リモートコンピュータ６４８など１つまたは複数のリモートコンピュータへの、有線通信および／または無線通信を介した論理接続を用いて、ネットワーク環境で動作することができる。リモートコンピュータ６４８は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースの娯楽機器、ピア装置、またはその他の共通ネットワークノードとすることができ、一般に、コンピュータ６０２に関連して説明した要素の多くまたはすべてを含むことができるが、図を簡潔にするため、メモリ記憶装置６５０だけが示されている。図示された論理接続は、ＬＡＮ（ローカルエリアネットワーク）６５２、および／またはより広域のネットワーク、例えば、ＷＡＮ（ワイドエリアネットワーク）６５４への有線／無線接続性を含む。そのようなＬＡＮおよびＷＡＮネットワーク環境は、オフィスや会社で一般的であり、インターネットなどのグローバル通信ネットワークに接続できる、イントラネットなどの企業規模のコンピュータネットワークの実現を容易にする。
【００６１】
ＬＡＮネットワーク環境で使用する場合、コンピュータ６０２は、有線および／または無線通信ネットワークインターフェースまたはアダプタ６５６を介して、ローカルネットワーク６５２に接続される。アダプタ６５６は、ＬＡＮ６５２への有線通信または無線通信を円滑に行えるようにし、ＬＡＮ６５２は、無線アダプタ６５６と通信を行うためにＬＡＮ上に設置される無線アクセスポイントを含むこともできる。ＷＡＮネットワーク環境で使用する場合、コンピュータ６０２は、モデム６５８を含むことができ、またはＬＡＮ上の通信サーバに接続され、またはインターネットなどのＷＡＮ６５４を介して通信を確立するためのその他の手段を有する。モデム６５８は内蔵とも外付けとも有線装置とも無線装置ともすることができ、シリアルポートインターフェース６４２を介して、システムバス６０８に接続することができる。ネットワーク環境では、コンピュータ６０２に関連して示したプログラムモジュールまたはその部分は、リモートメモリ／記憶装置６５０に格納することができる。図示したネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立するために、その他の手段も利用できることは理解されよう。
【００６２】
コンピュータ６０２は、無線通信に動作可能に設置されるあらゆる無線装置またはエンティティ、例えば、プリンタ、スキャナ、デスクトップおよび／またはポータブルコンピュータ、携帯情報端末、通信衛星、無線検知可能タグが関連づけられるあらゆる機器および場所（例えば、キオスク、ニューススタンド、休憩室）、電話などと通信できるように動作可能である。これには、少なくともＷｉ−ＦｉおよびＢｌｕｅｔｏｏｔｈ（商標）無線技術が関与する。したがって、通信は、従来のネットワークのように事前定義された構造とすることも、または単に少なくとも２つの装置間でのその場限りの通信とすることもできる。
【００６３】
Ｗｉ−Ｆｉ、すなわちワイヤレスフィデリティ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）は、自宅のソファから、ホテルルームのベッドから、または職場の会議室から、有線を使用しないでインターネットへの接続を可能にする。Ｗｉ−Ｆｉは、基地局の範囲内であれば屋内または屋外のどこからでも、コンピュータなどの装置がデータを送受信できるようにする、セル電話のような無線技術である。Ｗｉ−Ｆｉネットワークは、安全で信頼性のある高速の無線接続性を提供するため、ＩＥＥＥ８０２．１１（ａ、ｂ、ｇなど）と呼ばれる無線技術を利用する。Ｗｉ−Ｆｉネットワークは、コンピュータを他のコンピュータ、インターネット、および（ＩＥＥＥ８０２．３、すなわちイーサネット（登録商標）を用いる）有線ネットワークに接続するのに利用することができる。Ｗｉ−Ｆｉネットワークは、無認可の２．４ＧＨｚおよび５ＧＨｚの無線帯域で動作し、データ速度は１１Ｍｂｐｓ（８０２．１１ｂ）または５４Ｍｂｐｓ（８０２．１１ａ）であり、両方の帯域（デュアル帯域）に対応する製品も存在する。これによって、Ｗｉ−Ｆｉネットワークは、数多くのオフィスで利用されている基本的な１０ＢａｓｅＴ有線イーサネット（登録商標）と同等の実用上の性能を提供することができる。
【００６４】
次に図７を参照すると、本発明による例示的なコンピューティング環境７００のブロック図が示されている。システム７００は、１つまたは複数のクライアント７０２を含む。クライアント７０２は、ハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティング装置）とすることができる。クライアント７０２は、例えば、本発明を利用することによって、クッキーおよび／または関連コンテキスト情報を保管することができる。システム７００は、１つまたは複数のサーバ７０４も含む。サーバ７０４も、ハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティング装置）とすることができる。サーバ７０４は、例えば、本発明を利用することによって、変換を実行するスレッドを保管することができる。クライアント７０２とサーバ７０４の間で可能な通信の１つは、２以上のコンピュータプロセス間で伝送されるように適合させたデータパケットの形態で行うことができる。データパケットは、例えば、クッキーおよび／または関連コンテキスト情報を含むことができる。システム７００は、クライアント７０２とサーバ７０４の間で容易に通信を行えるようにするのに利用できる、通信フレームワーク７０６（例えば、インターネットなどのグローバル通信ネットワーク）を含む。
【００６５】
通信は、有線技術（光ファイバを含む）および／または無線技術によって容易に行うことができる。クライアント７０２は、クライアント７０２側に情報（例えば、クッキーおよび／または関連コンテキスト情報）を保存するのに利用できる１つまたは複数のクライアントデータ記憶７０８に動作可能に接続される。同様に、サーバ７０４は、サーバ７０４側に情報を保存するのに利用できる１つまたは複数のサーバデータ記憶７１０に動作可能に接続される。
【００６６】
上述の内容には、本発明の例が含まれている。もちろん、本発明を説明するために、コンポーネントまたは方法の考え得るあらゆる組合せを説明することはできないが、本発明に関して多くのさらなる組合せおよび順列が可能であることは、当業者であれば理解されよう。したがって、本発明は、添付の特許請求の範囲の主旨および範囲に含まれる、そのような代替、修正、および変形を包含することを意図している。さらに、詳細な説明または特許請求の範囲において「含む（ｉｎｃｌｕｄｅｓ）」という語が用いられる場合、この語は、「含む（ｃｏｍｐｒｉｓｉｎｇ）」という語が、特許請求の範囲において接続語（ｔｒａｎｓｉｔｉｏｎａｌ  ｗｏｒｄ）として用いられる際になされる解釈と同様の意味において包含的であることが意図されている。
【図面の簡単な説明】
【００６７】
【図１】本発明のシステムを示した図である。
【図２】アプリケーション独自の機能をＩＤＥに統合するプロセスのフローチャートである。
【図３】本発明によるＯＬＥ文書開発のプロセスのフローチャートである。
【図４】本発明による統合機能を示したサンプルウィンドウである。
【図５】本発明による統合カスケードメニュー機能を示したウィンドウである。
【図６】開示の構成を実行するように動作可能なコンピュータのブロック図である。
【図７】本発明による例示的なコンピューティング環境の概略ブロック図である。
【図１】
2005228345.tif 000003
【図２】
2005228345.tif 000004
【図３】
2005228345.tif 000005
【図４】
2005228345.tif 000006
【図５】
2005228345.tif 000007
【図６】
2005228345.tif 000008
【図７】
2005228345.tif 000009