OLE / ActiveX / COM


History

 OLE / ActiveX / COM のそれぞれの解説ドキュメントを順に見ていくと、歴史的な背景と技術変遷の経緯が見えてきます。以下でそれぞれのテクノロジが初登場したと思われる頃のドキュメントへのリンクとともに考察してみます。

OLE (Object Linking and Embedding)

・まず OLE ありき

 下記リンク先のドキュメントによれば、Windows 3.1 の新機能として、OLE が紹介されています。COM も ActiveX も Win32 (Windows 95 以降) で発表されたテクノロジであることを考えると、最初に OLE ありき、すなわち COM や ActiveX の原点が OLE と言えるのではないでしょうか。

 当然と言えば当然ですが、下の OLE に関するドキュメントには、ActiveX も COM も登場しません。また、OLE に関することしか書かれていないので、非常にわかりやすいのが新たな発見かもしれません。

OLE 機能の使い方 (Microsoft サイト)

 その昔、メモ帳で開けるファイルサイズの上限が 64KB だった頃、ワードパッドで開こうと、テキストファイルをワードパッドにドラッグ&ドロップすると…、OLE ドキュメントになってしまい、ファイルが開けません。ツールバーにドロップするなんて思いもつかず、数時間悩んだことを思い出しました。ちなみですが、Unix 形式の改行コードが LF だけのファイルはメモ帳で開くと改行されませんが、ワードパッドで開くとちゃんと改行されます。そこからメモ帳にコピー&ペーストすれば行末コードの変換が一丁あがり。知ってました?

ActiveX

・確か。。。

 インターネットの利用が本格化し始めた頃、「ブラウザ戦争」などと言う言葉で、IE (Internet Explorer) と NN (Netscape Navigator) がシェア争いをしていて、先行していた NN は、「プラグイン」という呼び名で、コンテンツを拡張していました。それに対抗した Microsoft は、NN のプラグインに相当する機能を「ActiveX」という呼び名で提供していたように思います。下の 「ActiveX テクノロジの概要」にも Web に特化したような記述があるし、これらの事から考えると OLE をインターネット対応にしたものが ActiveX だと言えるのではないでしょうか。

 ちなみに下のドキュメントには OLE は登場するが、COM は登場しません。このことから、OLE → ActiveX という歴史をたどったことがわかります。

 この2つの記事はバージョン違い。KB 番号が違い、中身も微妙に違います。どうでも良いかもしれませんが、両方を載せておきます。

ActiveX テクノロジの概要 (Microsoft サイト KB:154544)

ActiveX テクノロジの概要 (Microsoft サイト KB:879760)

COM (Component Object Model)

・ COM / DCOM / COM+ その先は

 一言で COM とは何かと問われれば、その答えは「テクノロジ」の名称となるでしょう。IUnknown に代表されるレイトバインディングインタフェースを持つオブジェクトのインタフェースを実現するテクノロジと言えます。

COM テクノロジ ホーム(Microsoft サイト)

Microsoft サイト ADO (MSDN ライブラリサイト)用語集