很久以前,在非常黑暗的过去,Nigel Thompson写了一系列关于被称为"OLE傻瓜书"的OLE编程的技术笔记。当时走廊的上上下下都能听到他痛苦地叫喊着忘记了要正确地添加或释放一个接口。我想本应该有一些方法在使用C++中巧妙的指针时能自动释放组件对象模型(COM)元件,使得组件对象模型元件的使用更为容易一些。不过,我开始研究的却是Microsoft 基础类库(MFC),在这个课题中引用计算并不是一个重点,因为它隐藏在MFC类之中。
在写完文章"MFC/COM对象8:重访无MFC的多重继承"之后,我决定再考虑使用巧妙的指针类简化使用组件对象模型(COM)接口。研究的结果并没有实现我的愿望,我开始怀疑是否能在我自己的代码中使用巧妙的指针接口。不过,你的组件对象模型(COM)项目可能与我的不一样,所以我决定不用组件对象模型(COM)元件也许并不会影响你。
在这篇文章中,我将讨论下列主题:
在这篇文章的源代码中,我使用前缀PI指示一个指向接口的指针,例如:
IPersist* pIPersist ; I use the prefix SI to refer to a smart interface pointer: CSmartInterfaceSIPersist ;