IDispEventSimpleImpl选件类
此选件类提供 IDispatch 方法的实现,这样,而不会获得类型信息从类型库。
重要
此选件类及其成员不能在 Windows 运行时执行的应用程序。
template <
UINT nID,
class T,
const IID* pdiid
>
class ATL_NO_VTABLE IDispEventSimpleImpl :
public _IDispEventLocator<nID, pdiid>
参数
nID
源对象的唯一标识符。 当 IDispEventSimpleImpl 是复合控件时基类,提供此参数将所需包含控件的资源ID。 在某些情况下,使用一个随机的正整数。T
用户的选件类,从 IDispEventSimpleImpl派生。pdiid
此选件类实现事件的调度接口的IID的指针。
成员
公共方法
名称 |
说明 |
---|---|
生成与默认事件源的连接。 |
|
生成与事件源的连接。 |
|
中断与事件源的连接。 |
|
返回 E_NOTIMPL。 |
|
返回 E_NOTIMPL。 |
|
返回 E_NOTIMPL。 |
|
在事件接收器映射调用事件处理程序的列表。 |
|
中断与默认事件源的连接。 |
备注
IDispEventSimpleImpl 提供实现事件调度接口方法,无需提供每个方法/事件的代码实现该接口。 IDispEventSimpleImpl 提供 IDispatch 方法的实现。 只需提供事件的实现您对处理感兴趣。
IDispEventSimpleImpl 与您的选件类的 事件接收器映射 一起使用路由事件到适当的处理程序函数。 使用此选件类:
添加一 SINK_ENTRY_INFO 宏到每个事件接收器映射在要处理的每个对象。
通过将指针提供每个事件的类型信息。_ATL_FUNC_INFO 结构作为参数传递给每项。 在x86平台上,_ATL_FUNC_INFO.cc 值必须与调用__stdcall的方法回调函数的CC_CDECL。
调用 DispEventAdvise 生成源对象和基类之间的连接。
调用 DispEventUnadvise 中断连接。
必须从 IDispEventSimpleImpl 派生(使用 nID的单个值)需要处理事件的每个对象的。 可以通过unadvising重新使用基类源对象并建议不同的源对象,但是,的源对象的最大数可由单个对象处理一次由 IDispEventSimpleImpl 基类的数目。
IDispEventSimplImpl 提供功能和 IDispEventImpl相同,除此之外,而不是接口的访问类型信息从类型库。 向导生成基于 IDispEventImpl仅的代码,但是,您可以手动添加代码使用 IDispEventSimpleImpl。 当您没有类型描述事件接口的库也不要避免开销与使用类型库时,请使用 IDispEventSimpleImpl。
备注
IDispEventImpl 和 IDispEventSimpleImpl 提供自己 IUnknown::QueryInterface 的实现使每个 IDispEventImpl 或 IDispEventSimpleImpl 基类为单独的标识,同时仍允许直接访问类您的主程序COM对象时成员。
CE ActiveX事件接收器的ATL实现仅支持返回类型HRESULT或无效的值从您的事件处理程序方法的;任何其他返回值不受支持,并且其行为不确定。
有关更多信息,请参见 支持IDispEventImpl。
继承层次结构
_IDispEvent
_IDispEventLocator
IDispEventSimpleImpl
要求
Header: atlcom.h