この特集のトップページへ
Chapter 2:Component Object Model

head2.gif 2.3.3 COMコンポーネントとActiveXの違い
 いままでCOMについて説明してきたわけだが,ここで,COMとActiveXの違いについて説明しておく。ActiveXはVisual Basicの開発者にとって馴染み深いものであろう。実際,メニューから[プロジェクト]−[コンポーネント]を選択してActiveXコントロールを参照し,フォームに貼り付けて使うことは多いと思われる(Fig.2-12)。

Fig.2-12 コンポーネント

fig2-12.gif

 ActiveXとはCOMを使ったプログラムのことであり,ActiveXとCOMの唯一の違いは,自らレジストリにCOMの情報を登録する機能をもっているか否かである。ActiveXは,自らレジストリにCOMの情報を登録する機能をもっている(この機能については,「2.4.4 COMサーバーの登録と登録解除」で説明する)。そのため,たとえば,Internet ExplorerなどActiveXに対応したWebブラウザは,インターネットからActiveXコントロールをダウンロードしたのち,システムのレジストリにそれを登録して,即座に使うことができる。

 Visual Basicで作成したCOMコンポーネントは,レジストリに対してCOMの情報を自動的に登録する機能をもつ。よって,Visual Basicで作成したCOMコンポーネントは,ActiveXでもある。そういった意味では,「COM=ActiveX」と思ってもらってかまわない。

 ただし,最近の風潮としては,ウィンドウを表示するようなユーザーインタフェースをもつものをActiveX,そうではなく,ユーザーインタフェースをもたず,ある機能だけを提供するものをCOM,と呼ぶようになってきている。

prevpg.gif Chapter 2 9/15 nextpg.gif