在C++中挂接COM的连接点比起VB中要麻烦很多,在VB中只需要Dim WithEvents就可以轻松搞定,在C++中方法有很多种,但都很麻烦,微软的ATLEVNT事例演示了种种方法。
其中方法二,比较适合我,但是在使用AtlGetObjectSourceInterface函数时要确保事件类实现了IProvideClassInfo2或IPersist*接口,否则就会连接失败。
实现类需要实现 IPersist接口,即类从public IPersistImpl 派生
BEGIN_COM_MAP(CUser)
....
COM_INTERFACE_ENTRY(IPersist)
COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer)
END_COM_MAP()
本文介绍了在C++中实现COM连接点的方法,对比了VB中的简单实现,并强调了在C++中使用AtlGetObjectSourceInterface函数时需要确保事件类已实现IProvideClassInfo2或IPersist*接口。
15万+

被折叠的 条评论
为什么被折叠?



