CBaseList 类

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

cbaselist 类层次结构

CBaseList 方法实现 abtract 列表。 派生自 CBaseListCGenericList 类模板提供类型检查和比 CBaseList 类更简单的接口。

CBaseList 类是在 Microsoft 基础类 (MFC) 库中的 CObList 类之后建模的。 列表中的位置由 POSITION 结构表示。 调用方不应访问 POSITION 结构的内部成员;将其视为指向列表节点的指针。 在删除对象之前,对象在列表中的位置保持有效。

列表不需要其包含的对象的任何支持。 它不对对象执行存储管理或复制。 对象可以位于多个列表中。

此类中大约一半的方法作用于单个对象。 这些方法在方法名称中带有后缀 - I。 其他方法作用于整个列表。 例如, CBaseList::AddAfter 方法将列表追加到另一个列表。 单对象操作在失败时返回 POSITION 值或 NULL 。 如果成功,则列表操作返回 TRUE ,否则返回 FALSE

受保护的成员变量 说明
m_Count 列表中的项数。
m_pFirst 指向列表中第一个节点的指针。
m_pLast 指向列表中最后一个节点的指针。
受保护的方法 说明
GetNextI 检索位于指定位置的项,并前进位置。
GetI 检索位于指定位置的项。
FindI 检索保存指定项的第一个位置。
RemoveHeadI 删除列表中的第一项。
RemoveTailI 删除列表中的最后一项。
RemoveI 移除位于指定位置的项。
AddTailI 将项添加到列表的末尾。
AddHeadI 将项添加到列表的前面。
AddAfterI 在指定位置之后插入项。
AddBeforeI 在指定位置之前插入项。
公共方法 说明
CBaseList 构造函数方法。
~ CBaseList 析构函数方法。
RemoveAll 从列表中删除所有节点。
GetHeadPositionI 检索列表中第一项的位置。
GetTailPositionI 检索列表最后一项的位置。
GetCountI 检索列表中的项数。
下一篇 检索列表中的下一个位置。
昨日 检索列表中的上一个位置。
AddHead 在此列表的前面插入另一个列表。
AddTail 将另一个列表追加到此列表的末尾。
AddAfter 在指定位置之后插入列表。
AddBefore 在指定位置之前插入列表。
MoveToTail 拆分列表并将头部分追加到另一个列表的尾部。
MoveToHead 拆分列表并将尾部插入另一个列表的头部。
反向 反转列表的顺序。

要求

要求
标头
Wxlist.h (包括 Streams.h)

Strmbase.lib (零售版本) ;
Strmbasd.lib (调试生成)

另请参阅

DirectShow 基类