用ATL编写SHELL扩展时,要从好几个接口分别继承,例如
class CExtractIcon::public IExtractIcon
class CShellFolder::public IShellFolder
class CShellView::public IShellView等等在这些类和接口中,我只需要暴露IShellFolder组件。而其他的很多接口又几乎都有"虚接口"(不知道是不是这么说的),所以一定要派生一个类来实现。结果我在生成这些类时,如果用“New ATl Object”向导添加的话,向导为每一个组件都暴露接口,什么接口映射,注册文件等等我都得手动去删掉。如果手工生成类,又必须要自己去写AddRef,QueryInterface,Release那些东西。我第一次用ATL,各位大侠,有没有好一点的办法?
class CExtractIcon::public IExtractIcon
class CShellFolder::public IShellFolder
class CShellView::public IShellView等等在这些类和接口中,我只需要暴露IShellFolder组件。而其他的很多接口又几乎都有"虚接口"(不知道是不是这么说的),所以一定要派生一个类来实现。结果我在生成这些类时,如果用“New ATl Object”向导添加的话,向导为每一个组件都暴露接口,什么接口映射,注册文件等等我都得手动去删掉。如果手工生成类,又必须要自己去写AddRef,QueryInterface,Release那些东西。我第一次用ATL,各位大侠,有没有好一点的办法?
别人就QUERY不到了
用New Class,不用实现IUNKnown的方法!