CComDynamicUnkArray 类

此类存储 IUnknown 指针数组。

语法

class CComDynamicUnkArray

成员

公共构造函数

名称 描述
CComDynamicUnkArray::CComDynamicUnkArray 构造函数。 将集合值初始化为 NULL,并将集合大小初始化为零。
CComDynamicUnkArray::~CComDynamicUnkArray 析构函数。

公共方法

名称 描述
CComDynamicUnkArray::Add 调用此方法可向数组添加 IUnknown 指针。
CComDynamicUnkArray::begin 返回一个指针,指向集合中第一个 IUnknown 指针。
CComDynamicUnkArray::clear 清空数组。
CComDynamicUnkArray::end 返回指向集合中最后一个 IUnknown 指针之后的指针。
CComDynamicUnkArray::GetAt 检索指定索引处的元素。
CComDynamicUnkArray::GetCookie 调用此方法可获取与给定 IUnknown 指针关联的 Cookie。
CComDynamicUnkArray::GetSize 返回数组可以存储的元素数。
CComDynamicUnkArray::GetUnknown 调用此方法可获取与给定 cookie 关联的 IUnknown 指针。
CComDynamicUnkArray::Remove 调用此方法从数组中删除 IUnknown 指针。

备注

CComDynamicUnkArray 保存一个动态分配的 IUnknown 指针数组,每个连接点上一个接口。 CComDynamicUnkArray 可以用作 IConnectionPointImpl 模板类的参数。

CComDynamicUnkArray 方法 beginend 可用于循环访问所有连接点(例如,当触发事件时)。

有关自动创建连接点代理的详细信息,请参阅向对象添加连接点

注意

注意:创建具有连接点的控件时,“添加类”向导使用类 CComDynamicUnkArray。 如果希望手动指定连接点的数量,请将引用从 CComDynamicUnkArray 更改为 CComUnkArray<n>,其中 n 是所需的连接点的数量。

要求

标头:atlcom.h

CComDynamicUnkArray::Add

调用此方法可向数组添加 IUnknown 指针。

DWORD Add(IUnknown* pUnk);

参数

pUnk
要添加到数组的 IUnknown 指针。

返回值

返回与新添加的指针关联的 Cookie。 使用此 Cookie 通过CComDynamicUnkArray::GetAt从数组中检索指针。

备注

如果之前在此数组上调用了Remove(),则插入此项的位置不一定直接在上次插入的项之后。 使用返回的 Cookie 可靠地访问插入的指针。 数组的大小可能会增加以容纳更多项。 使用GetSize()获取新大小。

CComDynamicUnkArray::begin

返回指向接口指针集合开头的 IUnknown 指针。

IUnknown**
    begin();

返回值

指向 IUnknown 接口指针的指针。

备注

该集合包含指向本地存储为 IUnknown 的接口的指针。 你将每个 IUnknown 接口转换为真正的接口类型,然后通过它调用。 无需先查询接口。

在使用 IUnknown 接口之前,应检查该接口是否为 NULL。

CComDynamicUnkArray::clear

清空数组。 将大小重置为 0。

void clear();

CComDynamicUnkArray::CComDynamicUnkArray

构造函数。

CComDynamicUnkArray();

注解

将集合大小设置为零,并将值初始化为 NULL。 如有必要,析构函数释放集合。

CComDynamicUnkArray::~CComDynamicUnkArray

析构函数。

~CComDynamicUnkArray();

注解

释放类构造函数分配的资源。

CComDynamicUnkArray::end

返回指向数组的分配缓冲区中最后一个元素下一位置的指针。

注意:这意味着无法保证最后插入的指针位于end()-1中,因为数组可能无法填充到容量。

IUnknown**
    end();

返回值

指向 IUnknown 接口指针的指针。

CComDynamicUnkArray::GetAt

检索指定索引处的元素。

IUnknown* GetAt(int nIndex);

参数

nIndex
要检索的元素的索引。

返回值

如果之前添加了元素且该元素存在于此索引处,则为指向IUnknown接口的指针;否则,为NULL

CComDynamicUnkArray::GetCookie

调用此方法可获取与给定 IUnknown 指针关联的 Cookie。

DWORD WINAPI GetCookie(IUnknown** ppFind);

参数

ppFind
需要关联 cookie 的 IUnknown 指针。

返回值

返回与 IUnknown 指针关联的 cookie,如果没有找到匹配的 IUnknown 指针,则返回 0。

备注

如果同一 IUnknown 指针有多个实例,则此函数返回第一个的 cookie。

CComDynamicUnkArray::GetSize

返回数组的已分配容量。

注意:这与数组中当前非 NULL 元素的数量不同。

int GetSize() const;

返回值

数组可以存储的元素数。 GetSize() == end() - begin()

CComDynamicUnkArray::GetUnknown

调用此方法可获取与给定 cookie 关联的 IUnknown 指针。

IUnknown* WINAPI GetUnknown(DWORD dwCookie);

参数

dwCookie
需要关联 IUnknown 指针的 Cookie。

返回值

返回 IUnknown 指针,如果没有找到匹配的 cookie,则返回 NULL。

CComDynamicUnkArray::Remove

调用此方法从数组中删除 IUnknown 指针。

所有其他元素都保持不变,并保留其索引和 Cookie。

BOOL Remove(DWORD dwCookie);

参数

dwCookie
引用要从数组中删除的 IUnknown 指针的 cookie。

返回值

如果指针被删除,则返回 TRUE,否则返回 FALSE。

另请参阅

CComUnkArray 类
类概述