OLE の背景知識
更新 : 2007 年 11 月
OLE は、複数のアプリケーションで作成したアイテム、つまり "オブジェクト" を含んだドキュメントを作成、編集するためのしくみです。
メモ : |
---|
OLE は当初、オブジェクトのリンクと埋め込み (Object Linking and Embedding) の略称でした。現在では OLE と呼ばれています。OLE のうち、リンクと埋め込みに関連しない部分は、現在は Active テクノロジの一部となっています。 |
OLE ドキュメント、つまり、複合ドキュメントには、各種のデータ (つまり、コンポーネント) が継目なく統合されます。OLE ドキュメントに含まれるコンポーネントの代表例として、サウンド クリップ、スプレッドシート、ビットマップなどがあります。アプリケーションで OLE をサポートしている場合、複数のアプリケーション間の切り替えを OLE が自動的に行います。
複合ドキュメントを作成するには、コンテナ アプリケーションを使います。コンテナ ドキュメント内の各アイテムを作成するには、サーバー アプリケーションまたはコンポーネント アプリケーションを使います。アプリケーションは、コンテナにもサーバーにもできます。両方を兼ねることもできます。
OLE には、アプリケーション間の連係を無理なく行うために必要な以下の概念が組み込まれています。
リンクと埋め込み
リンクも埋め込みも、別のアプリケーションで作成された OLE ドキュメントにアイテムを保存するための方法です。この 2 つの方法の違いについては、「OLE 概要 : リンクと埋め込み」を参照してください。詳細については、「コンテナ」および「サーバー」を参照してください。埋め込み先編集の有効化 (ビジュアル編集)
コンテナ ドキュメントのコンテキストにある埋め込みアイテムをアクティブにする操作は、埋め込み先編集の有効化またはビジュアル編集と呼ばれています。コンテナ アプリケーションのインターフェイスが変化して、アイテムを作成したコンポーネント アプリケーションの機能が組み込まれます。リンク アイテムを埋め込み先編集が有効なにすることはできません。アイテムの実データが、リンクを持っているコンテナ アプリケーションとは別のコンテキストで作られた別のファイルに保存されているからです。埋め込み先編集の有効化の詳細については、「アクティベーション」を参照してください。メモ : リンクと埋め込みおよび埋め込み先編集の有効化は、OLE ビジュアル編集の主要機能です。
オートメーション
オートメーションを使うと、アプリケーションから別のアプリケーションを制御できます。制御するアプリケーションはオートメーション クライアントと呼ばれ、制御されるアプリケーションはオートメーション サーバーまたはオートメーション コンポーネントと呼ばれます。オートメーションの詳細については、「オートメーション クライアント」と「オートメーション サーバー」を参照してください。メモ : オートメーションは、OLE のコンテキストでも Active テクノロジのコンテキストでも機能します。COM ベースのオブジェクトの場合は、いずれもオートメーションで利用できます。
複合ファイル
複合ファイルは、OLE アプリケーション用の複合ドキュメントを簡単に構造化して保存するための標準ファイル形式です。複合ファイルでは、ストレージとストリームがそれぞれディレクトリとファイルに相当する役割を果たします。この技法は構造化記憶とも呼ばれます。複合ファイルの詳細については、「コンテナ : 複合ファイル」を参照してください。汎用データ転送
汎用データ転送 (UDT: Uniform Data Transfer) とは、データ転送を実際の転送手段とは無関係に、標準化された方法で行うためのインターフェイスです。ドラッグ アンド ドロップによるデータ転送は、UDT を使って実現されています。UDT は、クリップボードやダイナミック データ エクスチェンジ (DDE: Dynamic Data Exchange) などの既存の Windows データ転送にも使われるようになりました。UDT の詳細については、「データ オブジェクトとデータ ソース (OLE)」を参照してください。ドラッグ アンド ドロップ
ドラッグ アンド ドロップを使うと、簡単で直接的な操作で、アプリケーション間、ウィンドウ間、またはウィンドウ内でデータを転送できます。転送するデータを選択して目的の位置にドラッグするだけです。ドラッグ アンド ドロップは、汎用データ転送をベースにしています。ドラッグ アンド ドロップの詳細については、「ドラッグ アンド ドロップ (OLE)」を参照してください。コンポーネント オブジェクト モデル
コンポーネント オブジェクト モデル (COM: Component Object Model) は、OLE オブジェクトが相互に通信するときに使うインフラストラクチャを提供します。MFC の OLE 関連クラスを利用すると、OLE のプログラミングを簡略化できます。COM オブジェクトは OLE と Active テクノロジの両方の基礎となる要素であるため、COM は Active テクノロジの一部になっています。COM の詳細については、「ATL」を参照してください。
以下のトピックでは、OLE に関する要点について説明します。
これらの項目に記載されていない、OLE の一般的な説明については、MSDN で OLE を検索してください。