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

head2.gif 2.1.3 COMオブジェクト
 このように,COMの世界では,COMコンポーネントを使いたいもの――すなわちCOMクライアント――がCOMサーバーのなかから使いたい部品を探し出し,それを利用することになる。しかし実際には,COMコンポーネントをそのまま使うことはない。

 なぜならば,複数のCOMクライアントが1つのCOMコンポーネントを同時に使うときに問題が生じるからである。

 たとえば,ユーザーから文字を入力してもらい,その文字を保持するようなCOMコンポーネントがあったとしよう。このCOMコンポーネントをCOMクライアントAとCOMクライアントBから同時に使ったとする。もし1つのCOMコンポーネントを共有して利用するのであれば,COMクライアントA側に入力された文字とCOMクライアントB側に入力された文字とが混じってしまい,都合が悪い(Fig.2-4)。

Fig.2-4 COMコンポーネントの共有

fig2-04.gif

 そこで一般的には,COMコンポーネントをそのまま使うのではなく,それを複製して使う(正確にいえば,COMコンポート全体を複製するのではなく,保持するデータ領域部分だけを複製することが多い)。この作業を「インスタンスを作る」もしくは「実体化する」と呼ぶ。そして,実体化されたCOMコンポーネントのことを「COMオブジェクト」と呼ぶ(Fig.2-5)。

Fig.2-5 COMオブジェクト

fig2-05.gif

 このように複製を作って使うことで,複数のCOMクライアントが同じCOMコンポーネントを同時に使っても,互いにデータが交じり合ってしまうことはなくなる。

prevpg.gif Chapter 2 4/15 nextpg.gif