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
方法 begin 和 end 可用于循环访问所有连接点(例如,当触发事件时)。
有关自动创建连接点代理的详细信息,请参阅向对象添加连接点。
注意
注意:创建具有连接点的控件时,“添加类”向导使用类 CComDynamicUnkArray
。 如果要手动指定连接点数,请将引用从 CComDynamicUnkArray
n 更改为 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。