(57)【要約】  マネージド・ランタイム環境で、ユーザーインターフェースが２つ以上の異なる分割されたプロセス空間からコンテンツを表示することを可能とするさまざまな技術および技法が開示される。ユーザーインターフェースを有するソフトウェアアプリケーションが、マネージド・ランタイム環境において動作する。ウィンドウハンドルにより、アプリケーションのユーザーインターフェースが、同時に２つ以上の異なる分割されたプロセス空間からコンテンツを表示することを可能とする。分割されたプロセス空間の間で分離のレベルを保ちながら、分割されたプロセス空間からの情報を、ユーザーインターフェース内で統合することができる。これは、ホストコントロールを有する、ユーザーインターフェースのためのコンテンツコンテナの第１の部分を提供することにより達成される。ホストコントロールは、ウィンドウハンドルを含み、およびメインウィンドウの第１の分割されたプロセス空間に存在する。コンテンツコンテナの第２の部分は、ソースコントロールとともに提供される。ソースコントロールは、ウィンドウハンドルを提供し、およびメインウィンドウの第２の分割されたプロセス空間に存在する。
2010521033.tif 000002
【特許請求の範囲】
【請求項１】
コンピューターに
マネージド・ランタイム環境において動作する特定のソフトウェアアプリケーションを提供するステップであって、前記特定のソフトウェアアプリケーションはユーザーインターフェースを有する、ステップと、
ウィンドウハンドルを使用して、前記特定のソフトウェアアプリケーションのユーザーインターフェースが２つ以上の異なる分割されたプロセス空間から同時にコンテンツを表示することを可能とするステップと、
前記２つ以上の異なる分割されたプロセス空間の間で分離のレベルを保ちながら、前記２つ以上の分割されたプロセス空間からの情報を前記マネージド・ランタイム環境において動作する前記ソフトウェアアプリケーションの前記ユーザーインターフェース内で統合することを可能とするステップと
を実行させるためのコンピューター実行可能な命令を有するコンピューター読み取り可能な媒体。
【請求項２】
前記ウィンドウハンドルは、Ｗｉｎｄｏｗｓ  ＨＷＮＤ  ｈａｎｄｌｅであることを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項３】
前記マネージド・ランタイム環境は、マネージド．ＮＥＴ  Ｆｒａｍｅｗｏｒｋ環境であることを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項４】
１つまたは複数の分割されたプロセス空間は、前記マネージド・ランタイム環境におけるアプリケーションドメインであることを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項５】
参照プロセスがマーシャルを実行することによって、第１の前記分割されたプロセス空間が第２の前記分割されたプロセス空間と通信するよう作動することを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項６】
前記参照プロセスによる前記マーシャルは、ウィンドウズオペレーティングシステム内のＭａｒｓｈａｌＢｙＲｅｆＯｂｊｅｃｔを使用することを特徴とする請求項５に記載のコンピューター読み取り可能な媒体。
【請求項７】
第１の前記分割されたプロセス空間が、ウィンドウハンドルを含むホストコントロールを有する前記ユーザーインターフェースのためのコンテンツコンテナの第１の部分を有し、第２の前記分割されたプロセス空間が、前記ウィンドウハンドルを提供するソースコントロールを有する前記ユーザーインターフェースのための前記コンテンツコンテナの第２の部分を有することを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項８】
前記コンテンツコンテナの前記第１の部分が従う第１のセキュリティレベルが、前記コンテンツコンテナの前記第２の部分が従う第２のセキュリティレベルと異なっていることを特徴とする請求項７に記載のコンピューター読み取り可能な媒体。
【請求項９】
前記コンテンツコンテナの前記第２の部分が、信頼できないソースからのコンテンツを表示することを特徴とする請求項８に記載のコンピューター読み取り可能な媒体。
【請求項１０】
異なる分割されたプロセス空間からのユーザーインターフェースコンテンツを単一のユーザーインターフェース内で統合する方法であって、
マネージド・ランタイム環境において動作する特定のソフトウェアアプリケーションを提供するステップであって、前記特定のソフトウェアアプリケーションはユーザーインターフェースを有する、ステップと、
前記ユーザーインターフェースのためのコンテンツコンテナの第１の部分を、ウィンドウハンドルを含み、およびメインウィンドウの第１の分割されたプロセス空間に存在するホストコントロールとともに提供するステップと、
前記ユーザーインターフェースのための前記コンテンツコンテナの第２の部分を、前記ウィンドウハンドルを提供し、および前記メインウィンドウの第２の分割されたプロセス空間に存在するソースコントロールとともに提供するステップであって、前記第２の部分は表示のためのコンテンツを有する、ステップと、
前記コンテンツコンテナの前記第１の部分および前記第２の部分の間で分離のレベルを保ちながら、前記第１の分割されたプロセス空間および前記第２の分割されたプロセス空間からの情報を、前記マネージド・ランタイム環境において動作する前記ソフトウェアアプリケーションの前記ユーザーインターフェース内で統合することを可能とするステップと
を含むことを特徴とする方法。
【請求項１１】
前記マネージド・ランタイム環境は、マネージド．ＮＥＴ  Ｆｒａｍｅｗｏｒｋ環境であることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記第１の分割されたプロセス空間および前記第２の分割されたプロセス空間は、前記マネージド・ランタイム環境におけるアプリケーションドメインであることを特徴とする請求項１０に記載の方法。
【請求項１３】
前記ウィンドウハンドルは、Ｗｉｎｄｏｗｓ  ＨＷＮＤ  ｈａｎｄｌｅであることを特徴とする請求項１０に記載の方法。
【請求項１４】
前記コンテンツコンテナの前記第１の部分が従う第１のセキュリティレベルが、前記コンテンツコンテナの前記第２の部分が従う第２のセキュリティレベルと異なっていることを特徴とする請求項１０に記載の方法。
【請求項１５】
コンピューターに請求項１０に記載の前記ステップを実行させるためのコンピューター実行可能な命令を有するコンピューター読み取り可能な媒体。
【請求項１６】
異なる分割されたプロセス空間からのユーザーインターフェースコンテンツを単一のユーザーインターフェース内で統合する方法であって、
マネージド．ＮＥＴ  Ｆｒａｍｅｗｏｒｋ環境において動作する特定のソフトウェアアプリケーションを提供するステップであって、前記特定のソフトウェアアプリケーションはユーザーインターフェースを有する、ステップと、
前記ユーザーインターフェースのためのコンテンツコンテナの第１の部分を、Ｗｉｎｄｏｗｓ  ＨＷＮＤ  ｈａｎｄｌｅを含み、およびメインウィンドウの第１の分割されたプロセス空間に存在するホストコントロールとともに提供するステップと、
前記ユーザーインターフェースのための前記コンテンツコンテナの第２の部分を、前記Ｗｉｎｄｏｗｓ  ＨＷＮＤ  ｈａｎｄｌｅを提供し、および前記メインウィンドウの第２の分割されたプロセス空間に存在するソースコントロールとともに提供するステップであって、前記コンテンツコンテナの前記第２の部分は表示のためのコンテンツを有する、ステップと
を含むことを特徴とする方法。
【請求項１７】
前記コンテンツコンテナの前記第１の部分および前記第２の部分の間で分離のレベルを保ちながら、前記コンテンツコンテナの前記第１の部分および前記第２の部分からの前記Ｗｉｎｄｏｗｓ  ＨＷＮＤ  ｈａｎｄｌｅを使用することによって、２つ以上の分割されたプロセス空間からの情報を、前記マネージド．ＮＥＴ  Ｆｒａｍｅｗｏｒｋ環境において動作する前記ソフトウェアアプリケーションの前記ユーザーインターフェース内で統合することを可能とすることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記第１の分割されたプロセス空間および前記第２の分割されたプロセス空間は、前記マネージド．ＮＥＴ  Ｆｒａｍｅｗｏｒｋ環境におけるアプリケーションドメインであることを特徴とする請求項１６に記載の方法。
【請求項１９】
ＭａｒｓｈａｌＢｙＲｅｆＯｂｊｅｃｔプロセスを実行することによって、前記第１の分割されたプロセス空間が前記第２の分割されたプロセス空間と通信するよう作動することを特徴とする請求項１６に記載の方法。
【請求項２０】
コンピューターに請求項１６に記載の前記ステップを実行させるためのコンピューター実行可能な命令を有するコンピューター読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザーインターフェース要素を用いた分離、管理および通信に関する。
【背景技術】
【０００２】
現代のソフトウェア開発では、多くのアプリケーションが、Ｍｉｃｒｏｓｏｆｔ（登録商標）  ．ＮＥＴ  Ｆｒａｍｅｗｏｒｋなどの、マネージド・ランタイム環境内で実行するように作成される。マネージド・ランタイム環境は、アプリケーションがシステムリソース、強制セキュリティポリシーなどにアクセスすることを可能とする方法として役立つ。マネージド・ランタイム環境は、アプリケーションが実行される「分割されたプロセス空間」を作成することにより、これを達成する。分割されたプロセス空間は、コンピューターがその時点で実行することができるプロセスの、他の任意の分割された空間から分離される方法で、アプリケーションを実行することを可能にする。Ｍｉｃｒｏｓｏｆｔ  ．ＮＥＴ  Ｆｒａｍｅｗｏｒｋでは、これらの分割されたプロセス空間を「アプリケーションドメイン」と呼ばれる。
【０００３】
アプリケーションが１つの分割されたプロセス空間内で実行され、およびコンテンツを別の分割されたプロセス空間内で実行する必要があるとき、問題が生じる。前に論じたマネージド・ランタイム環境を支配する分離および他の規則を考慮すると、アプリケーションは、異なる分割されたプロセス空間のコンテンツと通信することも、アプリケーションの一部として示されているコンテンツと通信することもできないだろう。
【発明の概要】
【０００４】
マネージド・ランタイム環境で、ユーザーインターフェースが２つ以上の異なる分割されたプロセス空間からコンテンツを表示することを可能とするさまざまな技術および技法が開示される。マネージド・ランタイム環境において動作する、ユーザーインターフェースを有する特定のソフトウェアアプリケーションが提供される。ウィンドウハンドルを使用して、特定のソフトウェアアプリケーションのユーザーインターフェースが、同時に２つ以上の異なる分割されたプロセス空間からコンテンツを表示することを可能とする。２つ以上の異なる分割されたプロセス空間の間で分離のレベルを保ちながら、２つ以上の分割されたプロセス空間からの情報を、ソフトウェアアプリケーションのユーザーインターフェース内で統合することができる。これは、ホストコントロールを有する、ユーザーインターフェースのためのコンテンツコンテナの第１の部分を提供することにより達成される。ホストコントロールは、子ウィンドウとして提供されたウィンドウを含み、およびメインウィンドウの第１の分割されたプロセス空間に存在する。ユーザーインターフェースのためのコンテンツコンテナの第２の部分は、ソースコントロールとともに提供される。ソースコントロールは、ウィンドウハンドルを提供し、およびメインウィンドウの第２の分割されたプロセス空間に存在する。一実施例では、コンテンツコンテナの第２の部分は、分離したフレームコントロールなどの、表示のためのコンテンツを有することができる。
【０００５】
本概要は、以下の発明を実施するための形態でさらに説明されている選択した概念を簡略化した形式で紹介するために提供するものである。本概要は、特許請求の範囲に記載されている主題事項の重要な特徴または本質的な特徴を特定することを目的とするものでも、特許請求の範囲に記載されている主題事項の範囲の決定に際して、補助として使用することを目的とするものでもない。
【図面の簡単な説明】
【０００６】
【図１】一実施例のコンピューターシステムの線図である。
【図２】図１のコンピューターシステム上で動作する一実施例のマネージド・ソフトウェアアプリケーションの線図である。
【図３】図１のシステムの一実施例にかかわる高レベルステージを例示するプロセスフロー図である。
【図４】コンテンツが異なる分割されたプロセス空間からともに表示され、および互いに通信することを可能とすることにかかわるステージを例示する図１のシステムの一実施例のためのプロセスフロー図である。
【図５】コンテンツが異なる分割されたプロセス空間から異なるセキュリティのレベルで一緒に表示されることを可能とすることにかかわるステージを例示する図１のシステムの高レベルステージの一実施例のためのプロセスフロー図である。
【図６】分離したフレームコントロール内に現れる外部コンテンツを示す一実施例の論理図を示す図である。
【図７】ウィンドウハンドルを使用して、異なる分割されたプロセス空間から同一のユーザーインターフェース内にコンテンツを表示させることを可能とすることを例示する一実施例のための論理図である。
【発明を実施するための形態】
【０００７】
本発明の原理の理解を促すために、ここで図面中に例示される実施形態を参照し、特定の言葉を用いて同一のものを説明する。しかし、それによる範囲の限定を意図しないことは理解されるであろう。当業者であれば、説明される実施形態の任意の変更およびさらなる修正、および本明細書で説明される原理のさらなる応用が、通常可能であると考えられる。
【０００８】
マネージド・ランタイム空間において、異なる分割されたプロセス空間から同一のユーザーインターフェース内にコンテンツを表示させることを可能とするアプリケーションとして、一般的な状況でシステムを説明することができるが、システムは、これらの目的に加えて他の目的にも役立つ。一実施例では、本明細書で説明されている１つまたは複数の技術を、Ｍｉｃｒｏｓｏｆｔ  ．ＮＥＴ  Ｆｒａｍｅｗｏｒｋなどのフレームワーク環境内の、または任意の他の種類のプログラムもしくはソフトウェアの実行およびまたは開発を可能とするサービスからの機能として実装することができる。
【０００９】
図１に示すように、システムの１つまたは複数の部分を実装するために使用する例示的なコンピューターシステムは、コンピューターデバイス１００などの、コンピューターデバイスを含む。最も基本的な構成では、コンピューターデバイス１００は、一般的に、少なくとも１つの処理ユニット１０２およびメモリ１０４を含む。正確な構成およびコンピューターデバイスの種類に依存して、メモリ１０４は、（ＲＡＭなどの）揮発性、（ＲＯＭ、フラッシュメモリなどの）不揮発性またはこれらの組み合わせとすることができる。この最も基本的な構成を、破線１０６によって図１に例示する。
【００１０】
さらに、デバイス１００は、追加の特徴／機能性を有することもできる。例えば、デバイス１００は、磁気ディスクもしくは光ディスクまたはテープを含むがこれらに限定されない、追加の（取り外し可能なおよび／または取り外し不可能な）記憶装置を含むこともできる。このような追加の記憶装置を、取り外し可能な記憶装置１０８および取り外し不可能な記憶装置１１０によって図１に例示する。コンピューター記憶媒体には、コンピューター読み取り可能な命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装された、揮発性および不揮発性、取り外し可能なおよび取り外し不可能な媒体が含まれる。メモリ１０４、取り外し可能な記憶装置１０８および取り外し不可能な記憶装置１１０は、すべてコンピューター記憶媒体の例である。コンピューター記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（Digital Versatile Disk）もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または、所望の情報を記憶するために使用でき、およびデバイス１００によってアクセスすることができる他の任意の媒体が含まれるが、これらに限定されない。任意のこのようなコンピューター記憶媒体をデバイス１００の一部とすることができる。
【００１１】
コンピューターデバイス１００は、１つまたは複数の通信接続１１４を含む。これにより、コンピューターデバイス１００は、他のコンピューター／アプリケーション１１５と通信することが可能となる。また、デバイス１００は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置１１２を有することができる。また、ディスプレイ、スピーカー、プリンタなどの出力装置１１１を含むこともできる。これらのデバイスは当技術分野において周知であり、ここで詳細に論じる必要はない。一実施例では、コンピューターデバイス１００は、マネージド・ソフトウェアアプリケーション２００を含む。マネージド・ソフトウェアアプリケーション２００は、図２においてさらに詳細に説明する。
【００１２】
引き続き図１に関連して図２を参照すると、コンピューターデバイス１００上で動作するマネージド・ソフトウェアアプリケーション２００が図示されている。マネージド・ソフトウェアアプリケーション２００は、コンピューターデバイス１００に存在するアプリケーションプログラムの１つである。一方、マネージド・ソフトウェアアプリケーションを、１つまたは複数のコンピューター上のおよび／または図１に示されるものとは異なるバリエーション内のコンピューター実行可能な命令として代替的に、または付加的に具現化することができることを理解されたい。代替的にまたは付加的に、マネージド・ソフトウェアアプリケーション２００の１つまたは複数の部分は、他のコンピューターおよび／またはアプリケーション１１５、または本コンピューターソフトウェア分野の当業者が思い付くようなこれらの他のバリエーション上のシステムメモリ１０４の一部とすることができる。
【００１３】
マネージド・ソフトウェアアプリケーション２００は、本明細書で説明される技術の一部またはすべてを実行することに関与するプログラムロジック２０４を含む。プログラムロジック２０４は、マネージド・ランタイム環境（．ＮＥＴ  Ｆｒａｍｅｗｏｒｋなど）において動作する、およびユーザーインターフェースを有する特定のソフトウェアアプリケーションを提供するためのロジック２０６、ウィンドウハンドル（例えば、ＭＩＣＲＯＳＯＦＴ  Ｗｉｎｄｏｗｓ（登録商標）  ＨＷＮＤ  ｈａｎｄｌｅ）を使用して特定のソフトウェアアプリケーションのユーザーインターフェースが２つ以上の異なる分割されたプロセス空間（例えば、アプリケーションドメイン）から同時にコンテンツを表示することを可能にするためのロジック２０８、２つ以上の異なる分割されたプロセス空間の間で分離のレベルを保ちながら、２つ以上の分割されたプロセス空間からの情報をマネージド・ランタイム環境において動作するソフトウェアアプリケーションのユーザーインターフェース内で統合するためのロジック２１０、参照プロセス（ウィンドウズオペレーティングシステム内のＭａｒｓｈａｌＢｙＲｅｆＯｂｊｅｃｔ）がマーシャルを実行することによって、第１の分割されたプロセス空間が第２の分割されたプロセス空間と通信することを可能とするためのロジック２１２、第１の分割されたプロセス空間が、提供されたウィンドウハンドルを含むホストコントロールを有するコンテンツコンテナの第１の部分を有することを可能とし、第２の分割されたプロセス空間が、ウィンドウハンドルを提供するソースコントロールを有するコンテンツコンテナの第２の部分を有することを可能とするためのロジック２１４、コンテンツコンテナの第１の部分が従う第１のセキュリティレベルが、コンテンツコンテナの第２の部分が従う第２のセキュリティレベルと異なっていることを可能とするためのロジック２１６、およびアプリケーション２００を動作するための他のロジック２２０を含む。一実施例では、プログラムロジック２０４は、プログラムロジック２０４内のプロシージャへの単一の呼び出しを使用することなど、別のプログラムからプログラムで呼び出されるよう作動する。
【００１４】
引き続き図１〜２に関連して図３〜５を参照すると、マネージド・ソフトウェアアプリケーション２００の１つまたは複数の実施例を実装するためのステージをさらに詳細に説明する。図３は、図１のシステムの一実施例にかかわる高レベルステージを例示するプロセスフロー図である。一形態では、図３の処理は、コンピューターデバイス１００の動作ロジックにおいて少なくとも部分的に実装される。処理は開始点２５０で始まり、マネージド・ランタイム環境（．ＮＥＴ  Ｆｒａｍｅｗｏｒｋなど）において動作する、ユーザーインターフェースを有する特定のソフトウェアアプリケーションを提供する（ステージ２５２）。ユーザーインターフェースのためのコンテンツコンテナの第１の部分は、提供されたウィンドウハンドル（例えば、ＭＩＣＲＯＳＯＦＴ  Ｗｉｎｄｏｗｓ  ＨＷＮＤ  ｈａｎｄｌｅ）を含み、およびメインウィンドウの第１の分割されたプロセス空間（例えば、アプリケーションドメインなど）に存在するホストコントロールを有する（ステージ２５４）。ユーザーインターフェースのためのコンテンツコンテナの第２の部分は、ウィンドウハンドルを提供し、およびメインウィンドウの第２の分割されたプロセス空間に存在するソースコントロールとともに提供される。第２の部分は、表示のためのコンテンツを有する（ステージ２５６）。コンテンツコンテナの第１の部分および第２の部分の間で分離のレベルを保ちながら、第１の分割されたプロセス空間および第２の分割されたプロセス空間からの情報を、ユーザーインターフェース内で統合する（ステージ２５８）。異なるセキュリティレベルを、第１の分割されたプロセス空間および第２の分割されたプロセス空間（例えば、信頼できないソースまたは未知のソースからであるときなど）のために任意で提供／強制することができる（ステージ２６０）。処理は、終点２６２で終わる。
【００１５】
図４は、コンテンツが異なる分割されたプロセス空間からともに表示され、および互いに通信することを可能とすることにかかわるステージを例示する図１のシステムの一実施例のためのプロセスフロー図である。一形態では、図４の処理は、コンピューターデバイス１００の動作ロジックにおいて少なくとも部分的に実装される。処理は開始点２７０で始まり、マネージド．ＮＥＴ  Ｆｒａｍｅｗｏｒｋ環境において動作する、ユーザーインターフェースを有する特定のソフトウェアアプリケーションを提供する（ステージ２７２）。ユーザーインターフェースのためのコンテンツコンテナの第１の部分は、ＭＩＣＲＯＳＯＦＴ  Ｗｉｎｄｏｗｓ  ＨＷＮＤ  ｈａｎｄｌｅを含み、およびメインウィンドウの第１の分割されたプロセス空間（例えば、アプリケーションドメインなど）に存在するホストコントロールとともに提供される（ステージ２７４）。ユーザーインターフェースのためのコンテンツコンテナの第２の部分は、ＭＩＣＲＯＳＯＦＴ  Ｗｉｎｄｏｗｓ  ＨＷＮＤ  ｈａｎｄｌｅを提供し、およびメインウィンドウの第２の分割されたプロセス空間に存在するソースコントロールとともに提供される（ステージ２７６）。一実施例では、コンテンツコンテナの第２の部分は、分離したフレームコントロールなどの、表示のためのコンテンツを有する（ステージ２７６）。ＭａｒｓｈａｌＢｙＲｅｆＯｂｊｅｃｔプロセスを実行することによって、第１の分割されたプロセス空間は、第２の分割されたプロセス空間と通信することができる（ステージ２７８）。処理は終点２８０で終わる。
【００１６】
図５は、コンテンツが異なる分割されたプロセス空間から異なるセキュリティのレベルで一緒に表示されることを可能とすることにかかわるステージを例示する図１のシステムの高レベルステージの一実施例のためのプロセスフロー図である。一形態では、図５の処理は、コンピューターデバイス１００の動作ロジックにおいて少なくとも部分的に実装される。処理は開始点２９０で始まり、マネージド・フレームワーク環境において動作する特定のソフトウェアアプリケーションを提供する（ステージ２９２）。特定のソフトウェアアプリケーションのユーザーインターフェースは、ＭＩＣＲＯＳＯＦＴ  Ｗｉｎｄｏｗｓ  ＨＷＮＤ  ｉｎｔｅｒｏｐを使用することによって、複数のアプリケーションドメインによってもたらされるコンテンツ領域を有することができる（ステージ２９４）。アプリケーションドメインによって提供される分離機能および管理機能を維持しながら、参照によるマーシャリングを使用するアプリケーションドメインの間の双方向通信を可能としながら、視覚要素をまとめて同一のユーザーインターフェースとすることができる（ステージ２９６）。任意で、ソフトウェア開発者などのユーザーは、使用するセキュリティレベル、および／またはコンテンツ領域の１つまたは複数に関する他の詳細を宣言することができる（ＸＡＭＬファイル、またはさまざまな他の形式で）（ステージ２９８）。これにより、コンテンツ領域が要求通りセキュリティ権限の変化するレベルとともに表示される（ステージ２９８）。例えば、コンテンツが信頼できないソースまたは未知のソースからであるか否か、などに依存してセキュリティレベルを変えることが望ましい場合がある。処理は終点２９９で終わる。
【００１７】
図６は、分離したフレームコントロール内に現れる外部コンテンツを示す一実施例の論理図を示す図である。アプリケーションのメインウィンドウ３００は、ウィンドウコンテンツ３０５を含むいくつかのグラフィックアプリケーションである。ウィンドウコンテンツ３０５は、ユーザーに表示される任意の種類の視覚要素とすることができる。アプリケーションのメインウィンドウ３００は、分離したフレームコントロール３１０も含む。分離したフレームコントロール３１０は、全体のアプリケーションの外部にあるコンテンツ３２０を含む。分離したフレームコントロール３１０は、ユーザーに見えないとすることができる。一実施例では、本明細書で論じられる技術の一部またはすべてを使用して、コンテンツ３２０（信頼できない個々のエンティティからなど）が、ウィンドウコンテンツ３０５ではなく異なる分割された空間内において動作する分離したフレームコントロール内に表示されることを可能とする。
【００１８】
図７は、ウィンドウハンドルを使用して、異なる分割されたプロセス空間から同一のユーザーインターフェース内にコンテンツを表示させることを可能とすることを例示する一実施例のための論理図である。プロセス３５０は、第１の分割されたプロセス空間をマネージド・ランタイム環境３５２内に生成する。この分割されたプロセス空間３５８内では、アプリケーション３６０が実行される。アプリケーション３６０は、ハンドルソース３６６が存在する分離したフレームコントロール３６２を含む。分離したフレームコントロールによりコンテンツ３６４がロードされ、ユーザーに見えるようになる。コンテンツ３６４は、アプリケーション３６０の外部に存在し、そのため、コンテンツ３６４が実行されるべき第２の分割されたプロセス空間３５６を生成するためにプロセス３５０を必要とする。コンテンツ２６４がロードされると、そのコンポーネントの１つである、ハンドルホスト３６８は、ハンドルプロバイダー３５４とともに自身を、ウィンドウハンドル３７０として登録する。ハンドルソース３６６は、ウィンドウハンドル３７０にアクセスし、コンテンツ３６４をアプリケーション３６０に含まれる分離したフレームコントロール内に表示することができる。
【００１９】
本発明の主題事項を構造的特徴および／または方法論的動作に固有の言語で説明したが、添付の特許請求の範囲で定義される本発明の主題事項は、必ずしも説明した特定の特徴または動作に必ずしも限定されないことを理解されたい。むしろ、特定の特徴および動作は、本発明を実装する例示的な形態として開示されている。本明細書で、および／または以下の請求項によって説明される実装の範囲内に入るすべての同等物、変更および修正が保護されることを望む。
【００２０】
例えば、当業者であれば、本明細書で論じた実施例中で説明されるようなクライアントおよび／またはサーバー配置、ユーザーインターフェーススクリーンコンテンツおよび／またはデータレイアウトを異なって編成し、実施例で表現されるより少ないまたは追加のオプションまたは機能を含む可能性があることを認識するだろう。
【図１】
2010521033.tif 000003
【図２】
2010521033.tif 000004
【図３】
2010521033.tif 000005
【図４】
2010521033.tif 000006
【図５】
2010521033.tif 000007
【図６】
2010521033.tif 000008
【図７】
2010521033.tif 000009
【国際調査報告】
2010521033.tif 000010
2010521033.tif 000011