オブジェクト ハンドラー
OLE サーバー アプリケーションがローカル サーバーである場合は、独自のプロセス空間で実行されることを意味します。コンテナーとサーバー間の通信は、プロセスの境界を越えて行う必要があります。 このプロセスはコストがかかるため、OLE はコンテナーのプロセス領域に読み込まれたサロゲート オブジェクトに依存して、ローカル サーバー アプリケーションに代わって動作します。 このサロゲート オブジェクトは、オブジェクト ハンドラーと呼ばれ、描画要求など、サーバー アプリケーションの注意を必要としないコンテナー要求を処理します。 コンテナーがオブジェクト ハンドラーで提供できないものを要求すると、ハンドラーは COM のアウトプロセス通信メカニズムを使用してサーバー アプリケーションと通信します。
オブジェクト ハンドラーは、オブジェクト クラスに固有です。 あるクラスのハンドラーのインスタンスを作成する場合、別のクラスに使用することはできません。 複合ドキュメントに使用する場合、オブジェクト ハンドラーは、特定のクラスのオブジェクトがリモートでアクセスされるときに、コンテナー側のデータ構造を実装します。
OLE には、ローカル サーバー アプリケーションで使用できる既定のオブジェクト ハンドラーが用意されています。 特別な動作を必要とするアプリケーションの場合、開発者は、既定のハンドラーを置き換えるか、それを使用して特定の既定の動作を提供するカスタム ハンドラーを実装できます。
オブジェクト ハンドラーは、いくつかの対話コンポーネントを含む DLL です。 これらのコンポーネントには、ハンドラーとそのサーバー アプリケーション間の通信を管理するためのリモート処理部分、オブジェクトのデータを格納するためのキャッシュ、そのデータの書式設定と表示方法に関する情報、および DLL の他のコンポーネントのアクティビティを調整する制御オブジェクトが含まれます。 さらに、オブジェクトがリンクの場合、DLL にはリンク コンポーネント、またはリンク ソースの名前と場所を追跡するリンク オブジェクト も含まれます。
キャッシュ には、ハンドラーがコンテナー内の読み込まれたオブジェクト (実行中ではない) を表示するのに十分なデータとプレゼンテーション情報が含まれています。 OLE は、OLE の既定のオブジェクト ハンドラーとリンク オブジェクトによって使用されるキャッシュの実装を提供します。 キャッシュは、コンテナー描画要求を満たすためにオブジェクト ハンドラーが必要とする形式でデータを格納します。 オブジェクトのデータが変更されると、オブジェクトは更新を実行できるようにキャッシュに通知を送信します。 キャッシュの詳細については、「キャッシュの表示」を参照してください。
詳細については、次のトピックを参照してください。
- 既定のハンドラーとカスタム ハンドラーの を する
関連トピック
-
複合ドキュメント を する