| |||||||||||||||||||||||||||||
サイト内検索
カスタム検索
|
IUnknown とは? ~ 作ってわかる COM の基礎ここでは単純な COM コンポーネントを作成することによって、COM とは何か? COM コンポーネントには最低でも何が必要かを理解しましょう。 ゼロから COM コンポーネントを作ろう!ここで作る COM コンポーネントは?ここでは現実世界の「車」をイメージしたコンポーネントを作ります。 そこで、 Car という名前の COM コンポーネントを作ります。クラス名は Car とします。 Car コンポーネントには、Run メソッドおよび Stop メソッドの二つを持つ ICar インターフェイスを持たせることにします。 COM プログラミングではインターフェイスの接頭辞として I (アルファベットの大文字の I) が付けられるのが普通です。 IUnknown インターフェイスの実装は必須Car を COM コンポーネントと呼ぶためには、自分で定義する ICar インターフェイスの他に COM コンポーネントとしての最低条件として IUnknown インターフェイスを持たせなければいけません。 IUnknown インターフェイスは、次のメソッドから成ります。
表に書いたように IUnknown インターフェイスの QueryInterface メソッドを使うと、 「インターフェイスの問い合わせ」が可能になります。例えば、ある COM オブジェクトへのポインタを取得したときに、 「この COM オブジェクトって、XXX インターフェイスを実装してますか?」 という問い合わせができます。 QueryInterface メソッドはインターフェイスの切換え器のように使えます。 上で述べたように、IUnknown インターフェイスは全ての COM コンポーネントで実装しなければなりません。 逆にいえば、あるモジュールが COM コンポーネントであるならば、IUnknown インターフェイスは必ず実装されていることを想定して良いということを意味します。 Unknown (分らない) という名前に反して、IUnknown インターフェイスが一番確実に存在するというわけです。 その意味では、IUnknown ではなく IWellknown (よく知られている) なんて名前でもよさそうですけどね(笑) でも、この名前はもう決まっていて動かせません。 | ||||||||||||||||||||||||||||
© 2008-2010 小山圭介 All Rights Reserved. |
|||||||||||||||||||||||||||||