c++ - 使用 ATL 进行 COM 枚举时按需获取数据
问题描述
使用CComEnum / CComEnumOnSTL 类在 C++ ATL 中进行枚举相对容易。
这些类的问题是您必须在迭代之前将数据存储在数组或列表中。这对我们来说是不可能的,因为检索列表的所有数据非常耗时,因此我们不想从底层系统中获取不必要的信息。此外,我们的 COM 接口的使用者通常不会迭代整个列表。
这个想法是IEnumXXXX接口的实现有一个指向列表中当前条目的指针。如果消费者想要列表中的下一个条目,它会搜索下一个条目并返回该条目的内容(是的,底层系统可以在许多层面上进行改进,但现在就是这样)
所以我的问题是,是否有任何使用 ATL 实现IEnumXXXX的好方法,其中从迭代开始就无法知道完整的数组。或者我是否必须为每个正在处理的列表(相当多的列表)实现一个IEnumXXXX
解决方案
推荐阅读
- sql - 我们可以在 PostgreSql 的类型表中添加列吗?
- android - 如何根据 Cloud Firestore 中的日期读取数据
- mysql - 如何为第一个表的空白或空值应用左连接?
- android - 在旧版 Android 上使用 PdfDocument 生成巨大的 PDF 文件
- javascript - 如何为 Gmail 应用程序使用访问令牌?
- flutter - Flutter 中的 RangeError 不超过 Range
- xslt - 删除 '.' 之前的前缀 (点)
- php - laravel 单行动态值
- export - 使用 AnyChart 通过 jpg/png 导出图表图,得到输出的一半
- javascript - 反应 setState 方法不更新状态