CComUnkArray 类

此类存储 IUnknown 指针,设计为用作 IConnectionPointImpl 模板类的参数。

语法

template<unsigned int nMaxSize>
class CComUnkArray

参数

nMaxSize
静态数组中可以保存的最大 IUnknown 指针数。

成员

公共构造函数

名称 描述
CComUnkArray::CComUnkArray 构造函数。

公共方法

名称 描述
CComUnkArray::Add 调用此方法可向数组添加 IUnknown 指针。
CComUnkArray::begin 返回一个指针,指向集合中第一个 IUnknown 指针。
CComUnkArray::end 返回指向集合中最后一个 IUnknown 指针之后的指针。
CComUnkArray::GetCookie 调用此方法可获取与给定 IUnknown 指针关联的 Cookie。
CComUnkArray::GetUnknown 调用此方法可获取与给定 cookie 关联的 IUnknown 指针。
CComUnkArray::Remove 调用此方法从数组中删除 IUnknown 指针。

备注

CComUnkArray 保存固定数量的 IUnknown 指针,每个指针都是一个连接点上的接口。 CComUnkArray 可以用作 IConnectionPointImpl 模板类的参数。 CComUnkArray<1> 是针对一个连接点优化的 CComUnkArray 模板专用化。

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

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

注意

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

要求

标头:atlcom.h

CComUnkArray::Add

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

DWORD Add(IUnknown* pUnk);

参数

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

返回值

返回与新添加的指针关联的 cookie,如果数组不足以包含新指针,则返回 0。

CComUnkArray::begin

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

IUnknown**
    begin();

返回值

指向 IUnknown 接口指针的指针。

注解

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

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

CComUnkArray::CComUnkArray

构造函数。

CComUnkArray();

备注

设置集合以保存 nMaxSizeIUnknown 指针,并将指针初始化为 NULL。

CComUnkArray::end

返回指向集合中最后一个 IUnknown 指针之后的指针。

IUnknown**
    end();

返回值

指向 IUnknown 接口指针的指针。

注解

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

IUnknown** p = m_vec.begin();
while(p != m_vec.end())
{
   // Do something with *p
   p++;
}

CComUnkArray::GetCookie

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

DWORD WINAPI GetCookie(IUnknown** ppFind);

参数

ppFind
需要关联 cookie 的 IUnknown 指针。

返回值

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

注解

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

CComUnkArray::GetUnknown

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

IUnknown* WINAPI GetUnknown(DWORD dwCookie);

参数

dwCookie
需要关联 IUnknown 指针的 Cookie。

返回值

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

CComUnkArray::Remove

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

BOOL Remove(DWORD dwCookie);

参数

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

返回值

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

另请参阅

CComDynamicUnkArray 类
类概述