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
方法 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();
备注
设置集合以保存nMaxSize
IUnknown
指针,并将指针初始化为 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。