发表于:2003-01-20 22:52:00
楼主
以前没用过枚举器,因此这个枚举器(IOPCServer::CreateGroupEnumerator)的问题困扰我两天了:-)
枚举器是用于枚举一个容器中的对象(或数据)的,在COM中的枚举器为IEnumXXXX接口,它有一个Reset()方法。在MSDN资料库中关于Reset()方法有这样一句话“Reset复位序列,不保证复位后能够枚举到同样的序列,因为这决定于枚举的容器”。我们暂且称不保证枚举序列的枚举器为动态枚举器,而保证枚举序列的为静态枚举器。
我的问题就是在此处应该建立静态还是动态的枚举器?静态的枚举器可将当前存在的组的相关内容复制,再对这些复制的内容进行枚举;而动态的枚举器,则需直接对容器中的内容进行枚举,这样当容器中的内容发生变化时,不需要重新建枚举器也可反映出来(如果确实需要这样,DA规范中为什么不直接给OPCServer对象加一个IEnumXXXX接口?)。
要命的是我为公用组和私有组各建了一个容器,实现起来真是麻烦的很啊:-(