在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()