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