Object Linking and Embedding
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Object Linking and Embedding (OLE、オブジェクトのリンクと埋め込み)は、マイクロソフトが作った、オブジェクトをやり取りするための仕組み・規約である。
OLEは文書の一部分を他のソフトで編集させ、それを元の文書に取り込むことも可能にしている。たとえば、DTPでは、テキストをワープロソフト、図をペイントツールで編集するといった具合である。また、他のデータへの参照を文書に含めることもでき、その場合参照先のデータが変更されると、参照が含まれる文書にも即座にその変更が反映される。
OLEの初期の用途は複合文書の管理のためであるが、ドラッグアンドドロップやクリップボードによるアプリケーション間でデータの転送のためにも使われた。
[編集] 歴史
OLE 1.0は1990年、動的データ交換 (DDE)の後継として公開された。DDEが2つのアプリケーションの間で限定的なデータ転送を行う仕組みだったのに対し、OLEは2つのドキュメント間の連携(リンク)や、あるドキュメントに別のドキュメントを埋め込みを管理する機能を持った仕組みであった。
OLEサーバとクライアント間の通信には、システムライブラリを介すが、これには仮想関数テーブル (VTBL)が用いられた。VTBLには、OLEシステムがサーバやクライアントとの通信に用いる関数へのポインタが所定の構造に従って収められている。サーバとクライアントに対応するシステムライブラリは、OLESVR.DLLとOLECLI.DLLで、当初はこの2つの間の通信にWM_DDE_EXECUTEメッセージが利用されていた。
OLE 1.0は後にCOMやDCOMとしてソフトウェアの部品化のアーキテクチャとなっていった。
OLEオブジェクトがクリップボードやドキュメントに埋め込まれる形で存在するとき、2つのWindowsネイティブな表現形式(ビットマップとメタファイル)も保存されている。これは、オブジェクトをメモリ上に作成せずとも表示を可能にするためである。さらに、そのOLEオブジェクトに関連するアプリケーションがインストールされていれば、オブジェクトを編集できる。
次に出たOLE 2.0は、その目指すところはOLE 1.0と大きな違いはないが、実装面では、生のVTBLではなくCOMを使って実装しなおされたという大きな違いがある。また、OLEオートメーション、ドラッグ・アンド・ドロップ、インプレースアクティベーションなどの新機能が加わった。

