COMでインスタンスを作る関数はCoCreateInstanceですが、その裏では様々な作業が行われています。 その中でも、実際にインスタンスを作る段階ではIClassFactoryインタフェースが関係してきます。このIClassFactoryは、ずばりCreateInstanceというメソッドを持っているのです。
そのインタフェースを拡張したIClassFactory2というインタフェースもあります。こちらはライセンス管理の機能を備えているそうです。きちんとリファレンスを見たことも勿論使ったこともないので、詳しくは知りませんが。
そして今日IClassFactory3まであるのを知りました。どういう使い道があるのかよくわかりませんけど。共通状況の共有?無理やり全て漢字にしたところでさっぱりなことに変わりありませんが。
それにしても2、3という命名はどうにかならないのでしょうか。たとえばIClassFactory2ならIClassFactoryWithLicensingなどという風に内容を反映させた名前のほうが良いと私は思うのです(強いて言えば名称が長くなるのは問題かもしれませんけど)。
スポンサード リンク |
この記事のカテゴリ
- COM ⇒ IClassFactory3
>2、3という命名はどうにかならないのでしょうか
拙者は通番で良いと思います。下記のためです。
A. 改版された( = 先代のCOM I/Fから機能が追加されていった )順番が分かり、それが重要な事があるため。通番以外の命名だと、COM I/Fの進化( = 改版 )順が分からなくなってしまう。
B. 短くて済むため。
C. 他の識別子にも言えるが、「名が体を十分に表すような、端的な語彙を見つける事は、至難の業である 」ため。
それにDirect3Dに見られるように、劇的に変わる場合は、接尾辞の変更としてでなく、名前を頭から丸ごと変えれば良いだけではないか、とも思います。